Top10Controller.php 7.6 KB

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