Top10Controller.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. namespace app\index\controller;
  3. use app\index\service\AdvertService;
  4. use app\index\service\JiamengService;
  5. use app\index\service\NewsService;
  6. use app\index\service\RedisService;
  7. use cmf\controller\HomeBaseController;
  8. use think\Db;
  9. class Top10Controller extends HomeBaseController
  10. {
  11. public function index()
  12. {
  13. $cacheKey = "cache:top_pages:index";
  14. $pageHtml = RedisService::get($cacheKey);
  15. if($pageHtml){
  16. return $pageHtml;
  17. }
  18. $areaList = config('params.areaList');
  19. //top10
  20. $top10 = Db::name('jiameng')
  21. ->where('status', 1)
  22. ->field('id,title,logo,hits,area_id,mendian,touzi_level,product,thumb')
  23. ->order('hits desc')->limit(10)
  24. ->select()
  25. ->each(function($item, $k) use ($areaList){
  26. $cacheKey = 'jiameng:searchCount1:'.$item['id'];
  27. $searchCount = RedisService::get($cacheKey);
  28. if($searchCount){
  29. $item['search_count'] = $searchCount;
  30. }else{
  31. $item['search_count'] = rand(2000,200000);
  32. RedisService::set($cacheKey, $item['search_count'], 3600);
  33. }
  34. $areaId = isset($item['area_id']) && $item['area_id']? intval($item['area_id']) : '-1';
  35. $item['area'] = isset($areaList[$areaId])? $areaList[$areaId] : '不限';
  36. return $item;
  37. });
  38. //飙升榜
  39. $zengzhang10 = Db::name('jiameng')->where('status',1)
  40. ->field('id,title,logo,area_id,hits,mendian,touzi_level,product')
  41. ->order('list_order')
  42. ->limit(10)
  43. ->select()
  44. ->each(function($item, $k) use ($areaList){
  45. $cacheKey = 'jiameng:searchCount2:'.$item['id'];
  46. $searchCount = RedisService::get($cacheKey);
  47. if($searchCount){
  48. $item['search_count'] = $searchCount;
  49. }else{
  50. $item['search_count'] = rand(2000,200000);
  51. RedisService::set($cacheKey, $item['search_count'], 3600);
  52. }
  53. $areaId = isset($item['area_id']) && $item['area_id']? intval($item['area_id']) : '-1';
  54. $item['area'] = isset($areaList[$areaId])? $areaList[$areaId] : '不限';
  55. return $item;
  56. });;
  57. //推荐
  58. $tuijian = JiamengService::getNewList(cmf_is_mobile()? 6 : 15);
  59. $touziarr = config('params.touziLevels');
  60. // 最新新闻
  61. $zuixin_news = NewsService::getRandList(cmf_is_mobile()? 6 : 16);
  62. // 轮播
  63. $banner = AdvertService::getListBySlide(7, 1);
  64. // 新品推荐上方广告
  65. $banner1 = AdvertService::getListBySlide(9, 1);
  66. // 品牌严选
  67. $brands4 = JiamengService::getListByLevel(4, 14);
  68. $this->assign('banner',$banner);
  69. $this->assign('banner1',$banner1);
  70. $this->assign('brands4',$brands4);
  71. $this->assign('zuixin_news',$zuixin_news);
  72. $this->assign('tuijian',$tuijian);
  73. $this->assign('zengzhang10',$zengzhang10);
  74. $this->assign('touziarr',$touziarr);
  75. $this->assign('top10',$top10);
  76. $pageHtml = $this->fetch();
  77. RedisService::set($cacheKey, $pageHtml, 24 * 3600);
  78. return $pageHtml;
  79. }
  80. public function show(){
  81. return $this->fetch();
  82. }
  83. public function cate(){
  84. $param = $this->request->param();
  85. $lists = array();
  86. //字分类
  87. $soncate = array();
  88. if(isset($param['catname'])){
  89. $catinfo = Db::name('category')->where('enname',$param['catname'])->find();
  90. if(empty($catinfo)){
  91. header("Location:".url('/404'));
  92. exit;
  93. }
  94. $map = array();
  95. $new_map['status'] = 3;
  96. if($catinfo['parent_id']>0){
  97. $new_map['catid'] = $catinfo['id'];
  98. //字分类
  99. $map['catid'] = $catinfo['id'];
  100. $soncate = Db::name('category')->where('parent_id',$catinfo['parent_id'])->order('list_order')->limit(14)->select();
  101. }else{
  102. //父分类
  103. $map['pcatid'] = $catinfo['id'];
  104. $soncate = Db::name('category')->where('parent_id',$catinfo['id'])->order('list_order')->limit(14)->select();
  105. // $new_map['catid'] = $soncate[0]['id'];
  106. $soncate_arr = array();
  107. foreach($soncate as $kk=>$vv){
  108. $soncate_arr[] = $vv['id'];
  109. }
  110. // print_r($soncate_arr);exit;
  111. $new_map = [['catid','in',$soncate_arr]];
  112. }
  113. $lists = Db::name('jiameng')->field('id,title,thumb,area,touzi_level,fromyear,company,product')->where($map)->order('hits desc')->limit(10)->select();
  114. //排行
  115. $paihang = Db::name('jiameng')->field('id,title,touzi_level,touzi')->where($map)->order('list_order desc')->limit(10)->select();
  116. $zuixin = Db::name('jiameng')->field('id,title,touzi_level,touzi')->where($map)->order('id desc')->limit(10)->select();
  117. //火热招生
  118. $huore = Db::name('jiameng')->field('id,title,touzi_level,product,mendian,thumb')->where($map)->orderRaw('rand()')->limit(10)->select();
  119. }else{
  120. $lists = Db::name('jiameng')->field('id,title,thumb,area,touzi_level,fromyear,company,product')->order('hits desc')->limit(10)->select();
  121. }
  122. $touziarr = array(
  123. '1万元以下',
  124. '1~5万元',
  125. '5~10万元',
  126. '10~20万元',
  127. '20~50万元',
  128. '50~100万元',
  129. '100万元以上',
  130. '200万元以上',
  131. '300万元以上'
  132. );
  133. $parcate = Db::name('category')->where('parent_id',0)->order('list_order')->select();
  134. $this->assign('soncate',$soncate);
  135. //最新新闻
  136. $zuixin_news = Db::name('news')->where($new_map)->order('id desc')->limit(10)->select();
  137. //最热新闻
  138. $hot_news = Db::name('news')->where($new_map)->order('hits desc')->limit(10)->select();
  139. //推荐
  140. $tuijian = Db::name('jiameng')->field('id,title,logo,hits,touzi_level,mendian')->where($map)->orderRaw('rand()')->limit(4)->select();
  141. $article_cates = ['加盟快讯','新店开业','店铺选址','加盟指南','品牌新闻','品牌人物'];
  142. // $article_encate = ['zixun'=>0,'kaiye'=>1,'xuanzhi'=>2,'zhinan'=>3,'xinwen'=>4,'renwu'=>5];
  143. $article_encate = ['zixun','kaiye','xuanzhi','zhinan','xinwen','renwu'];
  144. $this->assign('parcate',$parcate);
  145. $this->assign('article_cates',$article_cates);
  146. $this->assign('article_encate',$article_encate);
  147. $this->assign('huore',$huore);
  148. $this->assign('zuixin',$zuixin);
  149. $this->assign('paihang',$paihang);
  150. $this->assign('tuijian',$tuijian);
  151. $this->assign('zuixin_news',$zuixin_news);
  152. $this->assign('hot_news',$hot_news);
  153. $this->assign('touziarr',$touziarr);
  154. $this->assign('lists',$lists);
  155. $this->assign('catinfo',$catinfo);
  156. //seo
  157. $site_info = cmf_get_site_info();
  158. $seo_title = str_replace('|',$catinfo['catname'],$site_info['site_seo_title_toplist']);
  159. $seo_keywords = str_replace('|',$catinfo['catname'],$site_info['site_seo_keywords_toplist']);
  160. $seo_desc = str_replace('|',$catinfo['catname'],$site_info['site_seo_desc_toplist']);
  161. $this->assign('seo_title',$seo_title);
  162. $this->assign('seo_keywords',$seo_keywords);
  163. $this->assign('seo_desc',$seo_desc);
  164. return $this->fetch();
  165. }
  166. }
  167. ?>