/**
  * 媒体文章详情
  * @param HttpRequest $request
  */
 public function detail(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     if ($id <= 0) {
         page404();
     }
     $articleService = Beans::get("article.article.service");
     $tagService = Beans::get('article.tags.service');
     $condi = getMediaArticleConds();
     $conditions = array('id' => $id, 'media_id' => $this->loginMedia['id']);
     $condi = array_merge($conditions, $condi);
     $item = $articleService->getItem($condi, 'id,title,media_chanel,bcontent,tags,kwords,author, add_time, update_time');
     if (!$item) {
         page404();
     }
     //更新文章点击率
     $articleService->increase('hits', 1, $id);
     if ($item['tags'] != '') {
         $tagids = explode(',', $item['tags']);
         $item['tags'] = $tagService->getItems($tagids, 'id,name');
     }
     $this->assign('item', $item);
     //注册页面seo信息
     $this->assign('seoTitle', $item['title'] . '-' . $this->mediaConfigs['sitename']);
     $this->assign('seoKwords', $item['kwords']);
     $this->assign('seoDesc', $item['bcontent']);
     $this->assign("chanelId", $item["media_chanel"]);
     $this->setView('article_detail');
 }
 /**
  * 首页
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $page = $request->getParameter('page', 'intval');
     //获取轮播图
     $mediaService = Beans::get("media.media.service");
     $casoulItems = $mediaService->getMediaCarousel(5, $this->loginMedia['id']);
     $this->assign("casoulItems", $casoulItems);
     $condi = getMediaArticleConds();
     $condi['media_id'] = $this->loginMedia['id'];
     $this->loadMediaArticles($condi, $page, 'sort_num DESC, id DESC');
     //注册页面seo信息
     $this->assign('seoTitle', $this->mediaConfigs['sitetitle']);
     $this->assign('seoKwords', $this->mediaConfigs['siteseo']);
     $this->assign('seoDesc', $this->mediaConfigs['sitedescription']);
     $this->setView('index');
 }
 /**
  * 获取热点文章
  * @param HttpRequest $request
  */
 private function getHotArticles(HttpRequest $request)
 {
     $mediaId = $request->getParameter('media_id', 'intval');
     $articleService = Beans::get('article.article.service');
     $articleRecService = Beans::get('media.articleRec.service');
     $baseCondi = getMediaArticleConds();
     //1. 首先获取推荐位的文章
     $rcondi = array('media_id' => $mediaId, 'position' => 2, 'status' => 1);
     $item = $articleRecService->getItem($rcondi, 'aids');
     $field = 'id, title, thumb, bcontent, hits, author';
     if ($item && $item['aids']) {
         $conditions = $baseCondi;
         $conditions['id'] = '#IN' . $item['aids'];
         $items = $articleService->getItems($conditions, $field);
         if ($items) {
             //按照ID排序
             $ids = explode(',', $item['aids']);
             $newsItems = array();
             $items = ArrayUtils::changeArrayKey($items, 'id');
             foreach ($ids as $value) {
                 if ($items[$value]) {
                     $newsItems[] = $items[$value];
                 }
             }
         }
     }
     //2. 推荐位的文章不够,再从最热门搜索补上
     if (count($newsItems) < 10) {
         $conditions = $baseCondi;
         $conditions['media_id'] = $mediaId;
         if ($item['aids']) {
             $conditions['id'] = '#NI' . $item['aids'];
         }
         $hotArticles = $articleService->getItems($conditions, $field, "hits desc", 1, 10 - count($newsItems));
     }
     $result = array();
     if ($newsItems) {
         $result = array_merge($result, $newsItems);
     }
     if ($hotArticles) {
         $result = array_merge($result, $hotArticles);
     }
     $this->assign('hotArticles', $result);
 }
 /**
  * @see \media\service\interfaces\IMediaService::getMediaCarousel
  */
 public function getMediaCarousel($rows, $mediaId)
 {
     $articleService = Beans::get('article.article.service');
     $articleRecService = Beans::get('media.articleRec.service');
     $baseCondi = getMediaArticleConds();
     //1. 先读取轮播图推荐位
     $rcondi = array('media_id' => $mediaId, 'position' => 1, 'status' => 1);
     $item = $articleRecService->getItem($rcondi, 'aids');
     $field = 'id, title, thumb, bcontent, hits, author';
     if ($item && $item['aids']) {
         $conditions = $baseCondi;
         $conditions['id'] = '#IN' . $item['aids'];
         $items = $articleService->getItems($conditions, $field, null, 1, $rows);
         if ($items) {
             //按照ID排序
             $ids = explode(',', $item['aids']);
             $newsItems = array();
             $items = ArrayUtils::changeArrayKey($items, 'id');
             foreach ($ids as $value) {
                 if ($items[$value]) {
                     $newsItems[] = $items[$value];
                 }
             }
         }
     }
     //2. 推荐位的文章不够,再从最热门搜索补上
     if (count($newsItems) < $rows) {
         $conditions = $baseCondi;
         $conditions['media_id'] = $mediaId;
         if ($item['aids']) {
             $conditions['id'] = '#NI' . $item['aids'];
         }
         $conditions['thumb'] = "!=''";
         $__items = $articleService->getItems($conditions, $field, "id desc", 1, $rows - count($newsItems));
     }
     $result = array();
     if ($newsItems) {
         $result = array_merge($result, $newsItems);
     }
     if ($__items) {
         $result = array_merge($result, $__items);
     }
     return $result;
 }