Top10Controller.php 7.8 KB

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