Преглед изворни кода

wesmiler 新增页面模板缓存更新

wesmiler пре 5 година
родитељ
комит
ef02aa120e

+ 20 - 36
app/index/controller/IndexController.php

@@ -16,17 +16,18 @@ class IndexController extends HomeBaseController
 {
     public function index()
     {
+        $cacheKey = 'cache:index_pages:index';
+        $pageHtml = RedisService::get($cacheKey);
+        if($pageHtml){
+            return $pageHtml;
+        }
 
-        $time = microtime(true);
         // 热门分类
         $recCates = CategoryService::getRecCates(6);
         $recCates = $recCates? array_chunk($recCates, 3) : [];
 
         // 最新招商
         $brandNews = JiamengService::getNewList(10);
-        $endtime = microtime(true);
-        $stime = ($endtime-$time);
-//        echo '分类访问时间:'.$stime;
 
         /*  轮播广告 */
         //横幅广告位
@@ -36,17 +37,14 @@ class IndexController extends HomeBaseController
         $bannerMin = AdvertService::getListBySlide(2, 5);
 
         // 特许加盟
-        $banner1 = AdvertService::getListBySlide(3, 1);
-
+        $banners = AdvertService::getListBySlides([3,4,5,6], 1);
+        $banner1 = isset($banners[3])? $banners[3] : [];
         // 严选品牌上方广告
-        $banner2 = AdvertService::getListBySlide(4, 1);
-
+        $banner2 = isset($banners[4])? $banners[4] : [];
         // 品牌排行榜下方广告
-        $banner3 = AdvertService::getListBySlide(6, 1);
-
+        $banner3 = isset($banners[6])? $banners[6] : [];
         // 加盟动态下方广告
-        $banner4 = AdvertService::getListBySlide(5, 1);
-
+        $banner4 = isset($banners[5])? $banners[5] : [];
 
         /* 品牌栏位列表数据 */
         // 今日之星
@@ -67,18 +65,13 @@ class IndexController extends HomeBaseController
 
         // 最新品牌
         $brand8 = JiamengService::getNewList(12);
-        $endtime = microtime(true);
-        $stime = ($endtime-$time);
-//        echo '轮播访问时间:'.$stime;
 
         /*  人气排行榜1  */
         $phb1 = JiamengService::getTopList('touzi_level <= 2');
         $phb2 = JiamengService::getTopList('touzi_level = 3');
         $phb3 = JiamengService::getTopList('touzi_level >= 4');
 
-        $endtime = microtime(true);
-        $stime = ($endtime-$time);
-//        echo '排行榜访问时间:'.$stime;
+
         /* 新闻资讯 */
         // 分类1
         $cateNews1 = $cateNews2 = [];
@@ -103,9 +96,6 @@ class IndexController extends HomeBaseController
             }
         }
 
-        $endtime = microtime(true);
-        $stime = ($endtime-$time);
-//        echo '资讯分类访问时间:'.$stime;
         // 热点新闻
         $recNews = NewsService::getNewList(6);
 
@@ -115,7 +105,6 @@ class IndexController extends HomeBaseController
             ->order('create_time desc')
             ->limit(13)
             ->select();
-//        $answerList = NewsService::getListByLevel(1, 13);
 
         // 课堂列表
         $courseList = NewsService::getListByLevel(1, 8);
@@ -136,25 +125,16 @@ class IndexController extends HomeBaseController
                 }
             }
         }
-        $endtime = microtime(true);
-        $stime = ($endtime-$time);
-//        echo '资讯访问时间:'.$stime;
+
         // 热门品牌
         $brandHot = JiamengService::getTopList([], 16);
 
         // 加盟动态
-//        $jmMessages = MessageService::getList(['type'=> 1], 10);
         $jmMessages = NewsService::getRandList(10);
 
         // 友情链接
         $links = LinkService::getList(['catname'=> 'index'], 50);
 
-        $endtime = microtime(true);
-
-        $stime = ($endtime-$time);
-//        echo '访问时间:'.$stime;
-//        echo '访问时间:'.$endtime."\n";
-
         // 新增
         $this->assign('banner',$banner);
         $this->assign('banner1',$banner1);
@@ -197,7 +177,11 @@ class IndexController extends HomeBaseController
         $this->assign('phb3',$phb3);
         // end
 
-        return $this->fetch();
+        $pageHtml = $this->fetch();
+
+        // 页面缓存
+        RedisService::set($cacheKey, $pageHtml , 24*3600);
+        return $pageHtml;
     }
 
 
@@ -312,9 +296,9 @@ class IndexController extends HomeBaseController
             $img = str_replace('https:','http:', $img);
             $paths = parse_url($img);
             $filename = isset($paths['path'])? $paths['path'] : '';
-            $path = $filename? './xm13/'.dirname($filename) : '';
+            $path = $filename? './xm12/'.dirname($filename) : '';
             echo '抓取到图片:'."<br>";
-            if($filename && !file_exists('./xm13/'.$filename) ){
+            if($filename && !file_exists('./xm12/'.$filename) ){
                 $content = file_get_contents('http://www.91jmls.com/'.$img);
                 if($content){
                     if(!is_dir($path)){
@@ -322,7 +306,7 @@ class IndexController extends HomeBaseController
                     }
 
                     echo "下载保存图片:".'./imgs'.$filename."<br>";
-                     file_put_contents('./xm13/'.$filename, $content);
+                     file_put_contents('./xm12/'.$filename, $content);
                 }
             }
         }

+ 254 - 248
app/index/controller/JiamengController.php

@@ -1,5 +1,7 @@
 <?php
+
 namespace app\index\controller;
+
 use app\index\service\CategoryService;
 use app\index\service\IpService;
 use app\index\service\JiamengService;
@@ -10,6 +12,7 @@ use app\index\service\PageService;
 use app\index\service\RedisService;
 use cmf\controller\HomeBaseController;
 use think\Db;
+
 class JiamengController extends HomeBaseController
 {
     public function index()
@@ -17,21 +20,23 @@ class JiamengController extends HomeBaseController
         return $this->fetch();
     }
 
-    public function home(){
+    public function home()
+    {
         //二级分类
         $param = $this->request->param();
         isset($param['enname']) or $this->error('需要父分类');
-        $curarr = Db::name('category')->where('enname',$param['enname'])->find();
-        if($curarr['parent_id']>0){
-            header("Location:".url('/404'));
+        $curarr = Db::name('category')->where('enname', $param['enname'])->find();
+        if ($curarr['parent_id'] > 0) {
+            header("Location:" . url('/404'));
             exit;
         }
-        $sonarr = Db::name('category')->where('parent_id',$curarr['id'])->order('list_order')->limit(10)->select();
-        $this->assign('sonarr',$sonarr);
+        $sonarr = Db::name('category')->where('parent_id', $curarr['id'])->order('list_order')->limit(10)->select();
+        $this->assign('sonarr', $sonarr);
         return $this->fetch();
     }
 
-    public function category(){
+    public function category()
+    {
         return $this->fetch();
     }
 
@@ -42,51 +47,58 @@ class JiamengController extends HomeBaseController
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-    public function lists(){
-        $param = $this->request->param();  
+    public function lists()
+    {
+        $param = $this->request->param();
+        $cacheKey = 'cache:jiameng_pages:list:' . md5(json_encode($param));
+        $pageHtml = RedisService::get($cacheKey);
+        if ($pageHtml) {
+            return $pageHtml;
+        }
+
         //var_dump($param);die();
-        $enname = isset($param['enname'])? trim($param['enname']) : '';
-        $pcid = isset($param['pcid'])? intval($param['pcid']) : 0;
-       
+        $enname = isset($param['enname']) ? trim($param['enname']) : '';
+        $pcid = isset($param['pcid']) ? intval($param['pcid']) : 0;
+
         $param = [
-            'kw'=> isset($param['kw'])? trim($param['kw']) : '',
-            'enname'=> isset($param['enname'])? trim($param['enname']) : '',
-            'catid'=> isset($param['catid'])? intval($param['catid']) : 0,
-            'pcid'=> isset($param['pcid'])? intval($param['pcid']) : 0,
-            'lv'=> isset($param['lv'])? intval($param['lv']) : '-1',
-            'aid'=> isset($param['aid'])? intval($param['aid']) : 0,
+            'kw' => isset($param['kw']) ? trim($param['kw']) : '',
+            'enname' => isset($param['enname']) ? trim($param['enname']) : '',
+            'catid' => isset($param['catid']) ? intval($param['catid']) : 0,
+            'pcid' => isset($param['pcid']) ? intval($param['pcid']) : 0,
+            'lv' => isset($param['lv']) ? intval($param['lv']) : '-1',
+            'aid' => isset($param['aid']) ? intval($param['aid']) : 0,
         ];
-        $sonid = 0; 
-        if($enname || $pcid){
+        $sonid = 0;
+        if ($enname || $pcid) {
             $where = [];
-            if($enname){
+            if ($enname) {
                 $where['enname'] = $enname;
             }
-            if($pcid){
+            if ($pcid) {
                 $where['id'] = $pcid;
             }
-            $cateData = Db::name('category')->where($where)->find(); 
-            $this->assign('hangye',$cateData['catname']);
-            $enname = isset($cateData['enname'])? $cateData['enname'] : '';
-            $param['sid'] = $cateData['parent_id']? $cateData['id'] : 0;
-            $param['pid'] = $cateData['parent_id']? $cateData['parent_id'] : $cateData['id'];
-            $seo_title = str_replace('|',$cateData['catname'],$cateData['seo_title']);
-            $seo_keywords = str_replace('|',$cateData['catname'],$cateData['seo_keywords']);
-            $seo_desc = str_replace('|',$cateData['catname'],$cateData['seo_desc']);
-            $this->assign('catname',$cateData['catname']);
-            $this->assign('seo_title',$seo_title);
-            $this->assign('seo_keywords',$seo_keywords);
-            $this->assign('seo_desc',$seo_desc);
-        }else{
+            $cateData = Db::name('category')->where($where)->find();
+            $this->assign('hangye', $cateData['catname']);
+            $enname = isset($cateData['enname']) ? $cateData['enname'] : '';
+            $param['sid'] = $cateData['parent_id'] ? $cateData['id'] : 0;
+            $param['pid'] = $cateData['parent_id'] ? $cateData['parent_id'] : $cateData['id'];
+            $seo_title = str_replace('|', $cateData['catname'], $cateData['seo_title']);
+            $seo_keywords = str_replace('|', $cateData['catname'], $cateData['seo_keywords']);
+            $seo_desc = str_replace('|', $cateData['catname'], $cateData['seo_desc']);
+            $this->assign('catname', $cateData['catname']);
+            $this->assign('seo_title', $seo_title);
+            $this->assign('seo_keywords', $seo_keywords);
+            $this->assign('seo_desc', $seo_desc);
+        } else {
             $param['sid'] = 0;
             $param['pid'] = 0;
         }
-       //   echo $seo_title;die();
+        //   echo $seo_title;die();
 
-        if($param['pid']){
-            $sonlist = Db::name('category')->where('parent_id',$param['pid'])->select();
-        }else{
-            $sonlist = Db::name('category')->where('parent_id','gt',0)->order('list_order')->limit(20)->select();
+        if ($param['pid']) {
+            $sonlist = Db::name('category')->where('parent_id', $param['pid'])->select();
+        } else {
+            $sonlist = Db::name('category')->where('parent_id', 'gt', 0)->order('list_order')->limit(20)->select();
         }
 
         $param['pageType'] = 1;
@@ -100,47 +112,48 @@ class JiamengController extends HomeBaseController
         $cateList = CategoryService::getCates();
 
 
-
         // 获取最新品牌
-        $brandNews = JiamengService::getNewList(cmf_is_mobile()? 5: 10);
+        $brandNews = JiamengService::getNewList(cmf_is_mobile() ? 5 : 10);
 
         //阅读排行
-        // $paihang = JiamengService::getHotList(cmf_is_mobile()? 5: 18);
-        $paihang = NewsService::getRankList(cmf_is_mobile()? 5: 18);
+        $paihang = JiamengService::getHotList(cmf_is_mobile() ? 5 : 18);
+//        $paihang = NewsService::getRankList(cmf_is_mobile()? 5: 18);
 
-        $result = $result? $result->toArray() : [];
-        $lists = isset($result['data'])? $result['data'] : [];
-        foreach ($lists as &$item){
+        $result = $result ? $result->toArray() : [];
+        $lists = isset($result['data']) ? $result['data'] : [];
+        foreach ($lists as &$item) {
             $touziLevel = isset($item['touzi_level']) ? $item['touzi_level'] : '-1';
             $item['touzi_level_name'] = isset($touziarr[$touziLevel]) ? $touziarr[$touziLevel] : '';
-            $areaId = isset($item['area_id']) && $item['area_id']>0? intval($item['area_id']) : '-1';
+            $areaId = isset($item['area_id']) && $item['area_id'] > 0 ? intval($item['area_id']) : '-1';
 
             $item['area_name'] = isset($areaList[$areaId]) ? $areaList[$areaId] : '';
         }
 
         // 友情链接
         $links = [];
-        if($enname){
-            $links = LinkService::getList(['catname'=> $enname], 50);
+        if ($enname) {
+            $links = LinkService::getList(['catname' => $enname], 50);
         }
 
         //通过传入的参数获取中文
-        $this->assign('dtite',$page);
+        $this->assign('dtite', $page);
 
-       // var_dump($param);die();
-        $this->assign('page',$page);
-        $this->assign('data',$result);
+        // var_dump($param);die();
+        $this->assign('page', $page);
+        $this->assign('data', $result);
         $this->assign('lists', $lists);
-        $this->assign('paihang',$paihang);
-        $this->assign('param',$param);
-
-        $this->assign('brandNews',$brandNews);
-        $this->assign('touziarr',$touziarr);
-        $this->assign('areaList',$areaList);
-        $this->assign('cateList',$cateList);
-        $this->assign('sonlist',$sonlist);
-        $this->assign('links',$links);
-        return $this->fetch('list');
+        $this->assign('paihang', $paihang);
+        $this->assign('param', $param);
+
+        $this->assign('brandNews', $brandNews);
+        $this->assign('touziarr', $touziarr);
+        $this->assign('areaList', $areaList);
+        $this->assign('cateList', $cateList);
+        $this->assign('sonlist', $sonlist);
+        $this->assign('links', $links);
+        $pageHtml = $this->fetch('list');
+        RedisService::set($cacheKey, $pageHtml, 24*3600);
+        return $pageHtml;
     }
 
     /**
@@ -150,10 +163,18 @@ class JiamengController extends HomeBaseController
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-	public function search(){
-		$param = $this->request->param();
-		$result = JiamengService::getList($param);
-		$page = $result->render();
+    public function search()
+    {
+        $param = $this->request->param();
+        $cacheKey = 'cache:jiameng_pages:search:' . md5(json_encode($param));
+        $pageHtml = RedisService::get($cacheKey);
+        if ($pageHtml) {
+            return $pageHtml;
+        }
+
+
+        $result = JiamengService::getList($param);
+        $page = $result->render();
 
         // 参数
         $touziarr = config('params.touziLevels');
@@ -161,81 +182,84 @@ class JiamengController extends HomeBaseController
         $cateList = CategoryService::getCates();
 
 
-		// 获取最新品牌
-		$brandNews = JiamengService::getNewList(10);
+        // 获取最新品牌
+        $brandNews = JiamengService::getNewList(10);
 
-		//加盟排行
+        //加盟排行
         //$paihang = JiamengService::getHotList(18);
-        $paihang = NewsService::getRankList(cmf_is_mobile()? 5: 18);
+        $paihang = NewsService::getRankList(cmf_is_mobile() ? 5 : 18);
 
         $param = [
-            'kw'=> isset($param['kw'])? trim($param['kw']) : '',
-            'enname'=> isset($param['enname'])? trim($param['enname']) : '',
-            'catid'=> isset($param['catid'])? intval($param['catid']) : 0,
-            'pcid'=> isset($param['pcid'])? intval($param['pcid']) : 0,
-            'lv'=> isset($param['lv'])? intval($param['lv']) : '-1',
-            'aid'=> isset($param['aid'])? intval($param['aid']) : 0,
+            'kw' => isset($param['kw']) ? trim($param['kw']) : '',
+            'enname' => isset($param['enname']) ? trim($param['enname']) : '',
+            'catid' => isset($param['catid']) ? intval($param['catid']) : 0,
+            'pcid' => isset($param['pcid']) ? intval($param['pcid']) : 0,
+            'lv' => isset($param['lv']) ? intval($param['lv']) : '-1',
+            'aid' => isset($param['aid']) ? intval($param['aid']) : 0,
         ];
 
-        $result = $result? $result->toArray() : [];
-        $lists = isset($result['data'])? $result['data'] : [];
-        foreach ($lists as &$item){
+        $result = $result ? $result->toArray() : [];
+        $lists = isset($result['data']) ? $result['data'] : [];
+        foreach ($lists as &$item) {
             $touziLevel = isset($item['touzi_level']) ? $item['touzi_level'] : '-1';
             $areaId = isset($item['area_id']) ? $item['area_id'] : '-1';
             $item['touzi_level_name'] = isset($touziarr[$touziLevel]) ? $touziarr[$touziLevel] : '';
-            $item['area_name'] = isset($areaList[$areaId]) && $item['area_id']>0? $areaList[$areaId] : '';
+            $item['area_name'] = isset($areaList[$areaId]) && $item['area_id'] > 0 ? $areaList[$areaId] : '';
         }
 
-        $enname = isset($param['enname'])? trim($param['enname']) : '';
-        if($enname){
+        $enname = isset($param['enname']) ? trim($param['enname']) : '';
+        if ($enname) {
             $pcatid = Db::name('category')->where('enname', $enname)->value('id');
         }
 
         $pcid = isset($param['pcid']) ? intval($param['pcid']) : 0;
-        $pcid = $pcid>0? $pcid : $pcatid;
-        if($pcid){
+        $pcid = $pcid > 0 ? $pcid : $pcatid;
+        if ($pcid) {
             $cateData = Db::name('category')->where('id', $pcid)->find();
-            $enname = isset($cateData['enname'])? $cateData['enname'] : '';
-            $param['sid'] = $cateData['parent_id']? $cateData['id'] : 0;
-            $param['pid'] = $cateData['parent_id']? $cateData['parent_id'] : $cateData['id'];
-            $seo_title = str_replace('|',$cateData['catname'],$cateData['seo_title']);
-            $seo_keywords = str_replace('|',$cateData['catname'],$cateData['seo_keywords']);
-            $seo_desc = str_replace('|',$cateData['catname'],$cateData['seo_desc']);
-            $this->assign('seo_title',$seo_title);
-            $this->assign('seo_keywords',$seo_keywords);
-            $this->assign('seo_desc',$seo_desc);
-        }else{
+            $enname = isset($cateData['enname']) ? $cateData['enname'] : '';
+            $param['sid'] = $cateData['parent_id'] ? $cateData['id'] : 0;
+            $param['pid'] = $cateData['parent_id'] ? $cateData['parent_id'] : $cateData['id'];
+            $seo_title = str_replace('|', $cateData['catname'], $cateData['seo_title']);
+            $seo_keywords = str_replace('|', $cateData['catname'], $cateData['seo_keywords']);
+            $seo_desc = str_replace('|', $cateData['catname'], $cateData['seo_desc']);
+            $this->assign('seo_title', $seo_title);
+            $this->assign('seo_keywords', $seo_keywords);
+            $this->assign('seo_desc', $seo_desc);
+        } else {
             $param['sid'] = 0;
             $param['pid'] = 0;
 
         }
 
-        if($param['pid']){
-            $sonlist = Db::name('category')->where('parent_id',$param['pid'])->select();
-        }else{
-            $sonlist = Db::name('category')->where('parent_id','gt',0)->order('list_order')->limit(20)->select();
+        if ($param['pid']) {
+            $sonlist = Db::name('category')->where('parent_id', $param['pid'])->select();
+        } else {
+            $sonlist = Db::name('category')->where('parent_id', 'gt', 0)->order('list_order')->limit(20)->select();
         }
 
         // 友情链接
         $links = [];
-        if($enname){
-            $links = LinkService::getList(['catname'=> $enname], 50);
+        if ($enname) {
+            $links = LinkService::getList(['catname' => $enname], 50);
         }
 
-        $this->assign('page',$page);
-        $this->assign('data',$result);
-		$this->assign('lists', $lists);
-		$this->assign('paihang',$paihang);
-		$this->assign('param',$param);
-
-        $this->assign('brandNews',$brandNews);
-        $this->assign('touziarr',$touziarr);
-        $this->assign('areaList',$areaList);
-        $this->assign('cateList',$cateList);
-        $this->assign('sonlist',$sonlist);
-        $this->assign('links',$links);
-		return $this->fetch();
-	}
+        $this->assign('page', $page);
+        $this->assign('data', $result);
+        $this->assign('lists', $lists);
+        $this->assign('paihang', $paihang);
+        $this->assign('param', $param);
+
+        $this->assign('brandNews', $brandNews);
+        $this->assign('touziarr', $touziarr);
+        $this->assign('areaList', $areaList);
+        $this->assign('cateList', $cateList);
+        $this->assign('sonlist', $sonlist);
+        $this->assign('links', $links);
+        $pageHtml = $this->fetch();
+
+        RedisService::set($cacheKey, $pageHtml, 24*3600);
+        return $pageHtml;
+    }
 
     /**
      * 详情
@@ -244,136 +268,119 @@ class JiamengController extends HomeBaseController
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-    public function show(){    
-        $param = $this->request->param(); 
+    public function show()
+    {
+        $param = $this->request->param();
         isset($param['id']) or $this->error('需要id');
-        $cacheKey = "cache:jiameng:show:id_".intval($param['id']);
-        $datas = RedisService::get($cacheKey);
-        $info = isset($datas['info'])? $datas['info'] : [];
-        $touziarr = config('params.touziLevels'); 
-        if(empty($info) || empty($datas)){
-            $info = Db::name('jiameng')
-                ->where('id',$param['id'])
-                ->where('status', 1)
-                ->find();
-            if(empty($info)){
-                header("Location:".url('/404'));
-                exit;
-            }
-            //内容
-            $content = Db::name('jiameng_data')->where('id',$param['id'])->find();
-            $info['content'] = $content['content'];
-            $info['youshi'] = $content['youshi'];
-            $info['tiaojian'] = $content['tiaojian'];
-            $info['liucheng'] = $content['liucheng'];
-            $jmSupport = [];
-            $supports = config('params.supports');
-            $support = isset($info['jm_support']) && $info['jm_support']? explode(',', $info['jm_support']) : [];
-            foreach ($support as $val){
-                $name = isset($supports[$val])? $supports[$val] : '';
-                if($name){
-                    $jmSupport[] = $name;
-                }
-            }
+        $cacheKey = 'cache:jiameng_pages:show_' . $param['id'];
+        $pageHtml = RedisService::get($cacheKey);
+        //更新点击次数
+        Db::name('jiameng')->where('id', $param['id'])->setInc('hits', 1);
+
+        if ($pageHtml) {
+            return $pageHtml;
+        }
+
+        $touziarr = config('params.touziLevels');
 
-            unset($supports[0]);
-            $info['jm_support'] = $jmSupport? $jmSupport : $supports;
-            $areaList = config('params.areaList');
-            $areaId = isset($info['area_id']) && $info['area_id']? intval($info['area_id']) : '-1';
-            $area = isset($areaList[$areaId])? $areaList[$areaId] : '不限';
-            $info['area'] = $info['area']? $info['area'] : $area;
-
-            $catinfo = Db::name('category')->where('id',$info['catid'])->find();
-
-            $parinfo = Db::name('category')->where('id',$catinfo['parent_id'])->find();
-
-            //热门行业
-            $hot_cate = Db::name('category')->where('parent_id',$parinfo['id'])->order('list_order')->limit(12)->select();
-            //排行
-            $paihang = Db::name('jiameng')->field('id,title,logo,touzi_level,mendian,hits')->where('catid',$info['catid'])->where('status', 1)->order('hits desc')->limit(5)->select(); 
-            //动态
-            $about_news = Db::name('news')->field('id,title,thumb,create_time')->where(['ncatid'=>1,'status'=> 1])->order('id desc')->limit(6)->select();
-            $brand_news = Db::name('news')->field('id,title,thumb,create_time')->where(['catid'=>$info['catid'],'status'=> 1])->order('id desc')->limit(6)->select();
-            //热门加盟
-            $hot_jm = Db::name('jiameng')->field('id,title,hits')->where('catid',$info['catid'])->where('status', 1)->order('hits desc')->limit(20)->select();
-            //最新加盟
-            $zx_jm = $brand8 = JiamengService::getNewList(20);
-            //精选加盟
-            $jx_jm = Db::name('jiameng')
-                ->field('id,title')
-                ->where('catid',$info['catid'])
-                ->where('status', 1)
-                ->orderRaw('rand()')->limit(20)->select();
-
-
-            $datas = [
-                'info'=> $info,
-                'catinfo'=> $catinfo,
-                'hot_jm'=> $hot_jm,
-                'zx_jm'=> $zx_jm,
-                'jx_jm'=> $jx_jm,
-                'about_news'=> $about_news,
-                'brand_news'=> $brand_news,
-                'paihang'=> $paihang,
-                'hot_cate'=> $hot_cate,
-                'parinfo'=> $parinfo,
-            ];
-
-            // 缓存
-            RedisService::set($cacheKey, $datas, 2*3600);
-        }else{
-
-            $catinfo = isset($datas['catinfo'])? $datas['catinfo'] : [];
-            $hot_jm = isset($datas['hot_jm'])? $datas['hot_jm'] : [];
-            $zx_jm = isset($datas['zx_jm'])? $datas['zx_jm'] : [];
-            $jx_jm = isset($datas['jx_jm'])? $datas['jx_jm'] : [];
-            $about_news = isset($datas['about_news'])? $datas['about_news'] : [];
-            $brand_news = isset($datas['brand_news'])? $datas['brand_news'] : [];
-            $paihang = isset($datas['paihang'])? $datas['paihang'] : [];
-            $hot_cate = isset($datas['hot_cate'])? $datas['hot_cate'] : [];
-            $parinfo = isset($datas['parinfo'])? $datas['parinfo'] : [];
+        $info = Db::name('jiameng')
+            ->where('id', $param['id'])
+            ->where('status', 1)
+            ->find();
+        if (empty($info)) {
+            header("Location:" . url('/404'));
+            exit;
         }
 
+        //内容
+        $content = Db::name('jiameng_data')->where('id', $param['id'])->find();
+        $info['content'] = $content['content'];
+        $info['youshi'] = $content['youshi'];
+        $info['tiaojian'] = $content['tiaojian'];
+        $info['liucheng'] = $content['liucheng'];
+        $jmSupport = [];
+        $supports = config('params.supports');
+        $support = isset($info['jm_support']) && $info['jm_support'] ? explode(',', $info['jm_support']) : [];
+        foreach ($support as $val) {
+            $name = isset($supports[$val]) ? $supports[$val] : '';
+            if ($name) {
+                $jmSupport[] = $name;
+            }
+        }
+
+        unset($supports[0]);
+        $info['jm_support'] = $jmSupport ? $jmSupport : $supports;
+        $areaList = config('params.areaList');
+        $areaId = isset($info['area_id']) && $info['area_id'] ? intval($info['area_id']) : '-1';
+        $area = isset($areaList[$areaId]) ? $areaList[$areaId] : '不限';
+        $info['area'] = $info['area'] ? $info['area'] : $area;
+
+        $catinfo = Db::name('category')->where('id', $info['catid'])->find();
+
+        $parinfo = Db::name('category')->where('id', $catinfo['parent_id'])->find();
+
+        //热门行业
+        $hot_cate = Db::name('category')->where('parent_id', $parinfo['id'])->order('list_order')->limit(12)->select();
+        //排行
+        $paihang = Db::name('jiameng')->field('id,title,logo,touzi_level,mendian,hits')->where('catid', $info['catid'])->where('status', 1)->order('hits desc')->limit(5)->select();
+        //动态
+        $about_news = Db::name('news')->field('id,title,thumb,create_time')->where(['ncatid' => 1, 'status' => 1])->order('id desc')->limit(6)->select();
+        $brand_news = Db::name('news')->field('id,title,thumb,create_time')->where(['catid' => $info['catid'], 'status' => 1])->order('id desc')->limit(6)->select();
+        //热门加盟
+        $hot_jm = Db::name('jiameng')->field('id,title,hits')->where('catid', $info['catid'])->where('status', 1)->order('hits desc')->limit(20)->select();
+        //最新加盟
+        $zx_jm = $brand8 = JiamengService::getNewList(20);
+        //精选加盟
+        $jx_jm = Db::name('jiameng')
+            ->field('id,title')
+            ->where('catid', $info['catid'])
+            ->where('status', 1)
+            ->orderRaw('rand()')->limit(20)->select();
+
 
         //seo
-        $seo_title = str_replace('|',$info['title'],$catinfo['seo_title']);
-        $seo_keywords = str_replace('|',$info['title'],$catinfo['seo_keywords']);
+        $seo_title = str_replace('|', $info['title'], $catinfo['seo_title']);
+        $seo_keywords = str_replace('|', $info['title'], $catinfo['seo_keywords']);
         $seo_desc = trim(strip_tags($info['content']));
-        $seo_desc = mb_substr($seo_desc,0,200,'utf8');
-
-
-        $this->assign('seo_title',$seo_title);
-        $this->assign('seo_keywords',$seo_keywords);
-        $this->assign('seo_desc',$seo_desc);
-        $this->assign('hot_jm',$hot_jm);
-        $this->assign('zx_jm',$zx_jm);
-        $this->assign('jx_jm',$jx_jm);
-        $this->assign('about_news',$about_news);
-        $this->assign('brand_news',$brand_news);
-        $this->assign('paihang',$paihang);
-        $this->assign('hot_cate',$hot_cate);
-        $this->assign('touziarr',$touziarr);
-        $this->assign('catinfo',$catinfo);
-        $this->assign('parinfo',$parinfo);
-        $this->assign('info',$info);    
-        return $this->fetch();
+        $seo_desc = mb_substr($seo_desc, 0, 200, 'utf8');
+
+
+        $this->assign('seo_title', $seo_title);
+        $this->assign('seo_keywords', $seo_keywords);
+        $this->assign('seo_desc', $seo_desc);
+        $this->assign('hot_jm', $hot_jm);
+        $this->assign('zx_jm', $zx_jm);
+        $this->assign('jx_jm', $jx_jm);
+        $this->assign('about_news', $about_news);
+        $this->assign('brand_news', $brand_news);
+        $this->assign('paihang', $paihang);
+        $this->assign('hot_cate', $hot_cate);
+        $this->assign('touziarr', $touziarr);
+        $this->assign('catinfo', $catinfo);
+        $this->assign('parinfo', $parinfo);
+        $this->assign('info', $info);
+        $pageHtml = $this->fetch();
+
+        RedisService::set($cacheKey, $pageHtml, 24*3600);
+        return $pageHtml;
     }
 
-    public function message(){
+    public function message()
+    {
         $param = $this->request->param();
         $orignUrl = $this->request->header('origin');
         // isset($param['name'])&&$param['name']!='' or $this->error('请填写姓名');
-        isset($param['mobile'])&&$param['mobile']!='' or $this->error('请填写手机号');
+        isset($param['mobile']) && $param['mobile'] != '' or $this->error('请填写手机号');
         $param['create_time'] = time();
         $param['ip'] = get_client_ip();
         $param['address'] = IpService::getAddress(get_client_ip());
         $todaytime = strtotime(date('Y-m-d'));
-        if(strlen($param['content'])>300){
-        	$this->error('字符长度不超过300个');
+        if (strlen($param['content']) > 300) {
+            $this->error('字符长度不超过300个');
             exit;
         }
 
-        if(isset($param['tzed']) && $param['tzed']<=0){
+        if (isset($param['tzed']) && $param['tzed'] <= 0) {
             $this->error('请选择投资额度');
             exit;
         }
@@ -388,36 +395,35 @@ class JiamengController extends HomeBaseController
 
         // print_r($param);exit;
         //判断是否已超过10次  今天这个ip是否留言过
-       /* $sum = MessageService::getTodyCount(['ip'=> $param['ip'],'type'=> 1]);
-        if($sum>0){
-            $this->error('今日留言已超过1次,明天再来吧!');
-        }
-        //判断手机号本周内是否留过
-		$sum = MessageService::getWeekCount(['mobile'=> $param['mobile'],'type'=> 1]);
-        if($sum>0){
-            $this->error('您的手机号在本周内已预留过,下周再来吧!');
-        }*/
-		 $week_time=time()-604800;
-
-        $res_mobile=Db::name('message')->where('mobile',$param['mobile'])->where('create_time','>',$week_time)->find();
-        if($res_mobile)
-        {
+        /* $sum = MessageService::getTodyCount(['ip'=> $param['ip'],'type'=> 1]);
+         if($sum>0){
+             $this->error('今日留言已超过1次,明天再来吧!');
+         }
+         //判断手机号本周内是否留过
+         $sum = MessageService::getWeekCount(['mobile'=> $param['mobile'],'type'=> 1]);
+         if($sum>0){
+             $this->error('您的手机号在本周内已预留过,下周再来吧!');
+         }*/
+        $week_time = time() - 604800;
+
+        $res_mobile = Db::name('message')->where('mobile', $param['mobile'])->where('create_time', '>', $week_time)->find();
+        if ($res_mobile) {
             $this->error('手机号码一个周内只能留一次');
         }
-        $ip=get_client_ip();
-        $start_time=strtotime(date('Y-m-d') );
-        $ip_count=Db::name('message')->where('ip',$ip)->where('create_time','>',$start_time)->count();
-        if($ip_count>1)
-        {
+        $ip = get_client_ip();
+        $start_time = strtotime(date('Y-m-d'));
+        $ip_count = Db::name('message')->where('ip', $ip)->where('create_time', '>', $start_time)->count();
+        if ($ip_count > 1) {
             $this->error('同一个ip一天只可以留言2次');
         }
         $res = Db::name('message')->insert($param);
-        if($res){
+        if ($res) {
             $this->success('咨询成功');
-        }else{
+        } else {
             $this->error('咨询失败');
         }
 
     }
 }
+
 ?>

+ 30 - 9
app/index/controller/NewsController.php

@@ -5,6 +5,7 @@ use app\index\service\JiamengService;
 use app\index\service\LinkService;
 use app\index\service\NewsCategoryService;
 use app\index\service\NewsService;
+use app\index\service\RedisService;
 use cmf\controller\HomeBaseController;
 use think\Db;
 class NewsController extends HomeBaseController
@@ -17,7 +18,7 @@ class NewsController extends HomeBaseController
 
         $catinfo = array('id'=>0);
         //排行
-        $paihang = JiamengService::getHotList(18);
+        $paihang = NewsService::getRankList(cmf_is_mobile()? 5: 18);
 
         // 最新入驻
         $brand_jx = JiamengService::getNewList(12);
@@ -39,7 +40,7 @@ class NewsController extends HomeBaseController
         $this->assign('catinfo',$catinfo);
         $this->assign('searchType', 3);
         $this->assign('links',$links);
-    
+
         return $this->fetch();
     }
 
@@ -54,6 +55,15 @@ class NewsController extends HomeBaseController
     public function show(){
         $param = $this->request->param();
         isset($param['id']) or $this->error('非法访问');
+        $cacheKey = 'cache:news_pages:show_' . $param['id'];
+        $pageHtml = RedisService::get($cacheKey);
+        //更新点击次数
+        Db::name('jiameng')->where('id', $param['id'])->setInc('hits', 1);
+
+        if ($pageHtml) {
+            return $pageHtml;
+        }
+
         $info = Db::name('news')->where('id',$param['id'])->where('status',1)->find();
         if(empty($info)){
             header("Location:".url('/404'));
@@ -64,9 +74,6 @@ class NewsController extends HomeBaseController
         $bcate = Db::name('category')->where('id',$info['catid'])->find();
         $info['catname'] = $bcate['catname'];
 
-        //更新点击次数
-        Db::name('news')->where('id',$param['id'])->setInc('hits',1);
-
         //内容
         $content = Db::name('news_data')->where('id',$param['id'])->find();
         $info['content'] = $content['content'];
@@ -122,7 +129,7 @@ class NewsController extends HomeBaseController
         $this->assign('jm_news',$jm_news);
         $this->assign('other_news',$other_news);
         $this->assign('keywords',$keywords);
-      //var_dump($info);die();
+
         //seo
         $this->assign('about_news',$about_news);
         $this->assign('brand_news',$brand_news);
@@ -135,12 +142,22 @@ class NewsController extends HomeBaseController
         $this->assign('seo_keywords',$info['keywords']);      //2020/8/16
         $this->assign('seo_desc',$seo_desc);
         $this->assign('searchType', 3);
-        return $this->fetch();
+        $pageHtml = $this->fetch();
+
+        RedisService::set($cacheKey, $pageHtml, 24*3600);
+        return $pageHtml;
     }
 
     public function lists(){
         $catinfo = [];
         $param = $this->request->param();
+
+        $cacheKey = 'cache:news_pages:list:' . md5(json_encode($param));
+        $pageHtml = RedisService::get($cacheKey);
+        if ($pageHtml) {
+            return $pageHtml;
+        }
+
         $map['status'] = 1;
         if(isset($param['catname'])){
             $catinfo = Db::name('news_category')->where('enname',$param['catname'])->find();
@@ -164,7 +181,8 @@ class NewsController extends HomeBaseController
         $lists = NewsService::getList($map, 10);
 
         //排行
-        $paihang = JiamengService::getHotList(18);
+        $paihang = NewsService::getRankList(cmf_is_mobile()? 5: 18);
+//        $paihang = JiamengService::getHotList(18);
 
         // 最新入驻
         $brand_jx = JiamengService::getNewList(12);
@@ -199,7 +217,10 @@ class NewsController extends HomeBaseController
         $this->assign('seo_keywords',$seo_keywords);
         $this->assign('seo_desc',$seo_desc);
         $this->assign('searchType', 3);
-        return $this->fetch('list');
+        $pageHtml = $this->fetch('list');
+
+        RedisService::set($cacheKey, $pageHtml, 24*3600);
+        return $pageHtml;
     }
     
     public function message(){

+ 9 - 1
app/index/controller/Top10Controller.php

@@ -9,6 +9,12 @@ class Top10Controller extends HomeBaseController
 {
     public function index()
     {
+        $cacheKey = "cache_top_pages:index";
+        $pageHtml = RedisService::get($cacheKey);
+        if($pageHtml){
+            return $pageHtml;
+        }
+
         $areaList = config('params.areaList');
         //top10
         $top10 = Db::name('jiameng')
@@ -88,7 +94,9 @@ class Top10Controller extends HomeBaseController
         $this->assign('zengzhang10',$zengzhang10);
         $this->assign('touziarr',$touziarr);
         $this->assign('top10',$top10);
-        return $this->fetch();
+        $pageHtml = $this->fetch();
+        RedisService::set($cacheKey, $pageHtml,  24 * 3600);
+        return $pageHtml;
     }
     public function show(){
         return $this->fetch();

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
app/index/service/AdvertService.php


+ 7 - 3
app/index/service/JiamengService.php

@@ -59,17 +59,21 @@ class JiamengService
         $cacheKey = "cache:jiameng:hotlist_".$num;
         $dataList = RedisService::get($cacheKey);
         if ($dataList) {
-            return $dataList;
+//            return $dataList;
         }
         $dataList = Db::name('jiameng')
             ->field('id,title,thumb,hits,zhiying')
-            ->where(['status' => 1])->order('hits desc')
+            ->where(['status' => 1])
+            ->order('hits desc')
             ->limit($num)
             ->select();
 
         $dataList = $dataList ? $dataList->toArray() : [];
         if ($dataList) {
-            RedisService::set($cacheKey, $dataList, 7 * 24 * 3600);
+            foreach ($dataList as &$item){
+                $item['hits'] = intval($item['hits']) + 100;
+            }
+            RedisService::set($cacheKey, $dataList,  600);
         }
 
         return $dataList;

+ 15 - 15
public/themes/mjmls/index/index/floor/phb.html

@@ -6,13 +6,13 @@
             <div class="rank-list">
                 <div class="rank-box">
                     <strong>10万以下</strong>
-                    <ul>
-                        <foreach name="phb1" id="v">
-                        <li <if condition="$key eq 0">class="active"</if>>
+                    <ol class="rank-item">
+                        <foreach name="phb1" id="v" key="k">
+                        <li <if condition="$k eq 0">class="active"</if>>
                             <a href="/b{$v.id}/" target="">
                                 <img class="fl lazyload" data-src="{:cmf_get_image_preview_url($v.logo)}" width="100" height="75" alt="{$v.title}" onerror="imageError(this)">
                                 <div>
-                                    <i></i>
+                                    <i>{$k+1}</i>
                                     <span class="nowrap">{$v.title}</span>
                                     <em class="nowrap"><if condition="$v.pcatname">{$v.pcatname}></if>{$v.catname}</em>
                                     <em class="nowrap dn">门店:{$v.mendian}家</em>
@@ -20,17 +20,17 @@
                             </a>
                         </li>
                         </foreach>
-                    </ul>
+                    </ol>
                 </div>
                 <div class="rank-box">
                     <strong>10-20万</strong>
-                    <ul>
-                        <foreach name="phb2" id="v">
-                            <li <if condition="$key eq 0">class="active"</if>>
+                    <ol class="rank-item">
+                        <foreach name="phb2" id="v" key="k">
+                            <li <if condition="$k eq 0">class="active"</if>>
                             <a href="/b{$v.id}/" target="">
                                 <img class="fl lazyload" data-src="{:cmf_get_image_preview_url($v.logo)}" width="100" height="75" alt="{$v.title}" onerror="imageError(this)">
                                 <div>
-                                    <i></i>
+                                    <i>{$k+1}</i>
                                     <span class="nowrap">{$v.title}</span>
                                     <em class="nowrap"><if condition="$v.pcatname">{$v.pcatname}></if>{$v.catname}</em>
                                     <em class="nowrap dn">门店:{$v.mendian}家</em>
@@ -38,17 +38,17 @@
                             </a>
                             </li>
                         </foreach>
-                    </ul>
+                    </ol>
                 </div>
                 <div class="rank-box">
                     <strong>20万以上</strong>
-                    <ul>
-                        <foreach name="phb3" id="v">
-                            <li <if condition="$key eq 0">class="active"</if>>
+                    <ol class="rank-item">
+                        <foreach name="phb3" id="v" key="k">
+                            <li <if condition="$k eq 0">class="active"</if>>
                             <a href="/b{$v.id}/" target="">
                                 <img class="fl lazyload" data-src="{:cmf_get_image_preview_url($v.logo)}" width="100" height="75" alt="{$v.title}" onerror="imageError(this)">
                                 <div>
-                                    <i></i>
+                                    <i>{$k+1}</i>
                                     <span class="nowrap">{$v.title}</span>
                                     <em class="nowrap"><if condition="$v.pcatname">{$v.pcatname}></if>{$v.catname}</em>
                                     <em class="nowrap dn">门店:{$v.mendian}家</em>
@@ -56,7 +56,7 @@
                             </a>
                             </li>
                         </foreach>
-                    </ul>
+                    </ol>
                 </div>
             </div>
             <div class="hot-item">

+ 1 - 1
public/themes/mjmls/index/jiameng/list.html

@@ -123,7 +123,7 @@
                 <foreach name="paihang" id="v" key="k">
                     <li>
                         <i><if condition="$k egt 3">{$k+1}</if></i>
-                        <a href="/news{$v.id}/" title="{$v.title},{$v.company},{$v.catname}">{$v.title}</a>
+                        <a href="/b{$v.id}/" title="{$v.title},{$v.company},{$v.catname}">{$v.title}</a>
                         <span class="fr">{$v.hits|default='0'}</span>
                     </li>
                 </foreach>

Разлика између датотеке није приказан због своје велике величине
+ 1 - 104
public/themes/mjmls/index/news/index.html


Разлика између датотеке није приказан због своје велике величине
+ 1 - 104
public/themes/mjmls/index/news/list.html


+ 26 - 25
public/themes/mjmls/static/css/index.css

@@ -1038,30 +1038,30 @@
 	overflow: hidden;
 }
 
-.rank-list ul {
+.rank-list .rank-item {
 	padding: 0 20px;
 }
 
-.rank-list ul li {
+.rank-list .rank-item li {
 	margin-top: 12px;
 	overflow: hidden;
 }
 
-.rank-list ul li img {
+.rank-list .rank-item li img {
 	display: none;
 	margin-right: 12px;
 }
 
-.rank-list ul li.active img {
+.rank-list .rank-item li.active img {
 	display: block;
 }
 
-.rank-list ul li div {
+.rank-list .rank-item li div {
 	line-height: 20px;
 	overflow: hidden;
 }
 
-.rank-list ul li div i {
+.rank-list .rank-item li div i {
 	position: relative;
 	width: 16px;
 	height: 20px;
@@ -1070,85 +1070,86 @@
 	color: #fff;
 }
 
-.rank-list ul li span {
+.rank-list .rank-item li span {
 	float: left;
 	width: 100px;
 	color: #fff;
 }
 
-.rank-list ul li em {
+.rank-list .rank-item li em {
 	float: right;
 	font-size: 12px;
 	color: #DFDFDF;
 }
 
-.rank-list ul li .dn {
+.rank-list .rank-item li .dn {
 	display: none;
 }
 
-.rank-list ul li.active span {
+.rank-list .rank-item li.active span {
 	margin-bottom: 10px;
 }
 
-.rank-list ul li.active em {
+.rank-list .rank-item li.active em {
 	display: block;
 	float: left;
 	width: 100%;
 }
 
-.rank-list ul li div i::before {
+.rank-list .rank-item li div i::before {
 	position: absolute;
-	content: '1';
+	content: '';
 	color: #fff;
 	width: 16px;
 	height: 20px;
 	text-align: center;
 }
 
-.rank-list ul li:nth-of-type(1) div i::before {
+.rank-list .rank-item li:nth-of-type(1) div i::before {
+	content: '1';
 	color: #666;
 	background: url(../images/icon-sign.png) no-repeat;
 }
 
-.rank-list ul li:nth-of-type(2) div i::before {
+.rank-list .rank-item li:nth-of-type(2) div i::before {
 	content: '2';
 	color: #666;
 	background: url(../images/icon-sign.png) no-repeat;
 }
 
-.rank-list ul li:nth-of-type(3) div i::before {
+.rank-list .rank-item li:nth-of-type(3) div i::before {
 	content: '3';
 	color: #666;
 	background: url(../images/icon-sign.png) no-repeat;
 }
-
-.rank-list ul li:nth-of-type(4) div i::before {
+/*
+.rank-list .rank-item li:nth-of-type(4) div i::before {
 	content: '4';
 }
 
-.rank-list ul li:nth-of-type(5) div i::before {
+.rank-list .rank-item li:nth-of-type(5) div i::before {
 	content: '5';
 }
 
-.rank-list ul li:nth-of-type(6) div i::before {
+.rank-list .rank-item li:nth-of-type(6) div i::before {
 	content: '6';
 }
 
-.rank-list ul li:nth-of-type(7) div i::before {
+.rank-list .rank-item li:nth-of-type(7) div i::before {
 	content: '7';
 }
 
-.rank-list ul li:nth-of-type(8) div i::before {
+.rank-list .rank-item li:nth-of-type(8) div i::before {
 	content: '8';
 }
 
-.rank-list ul li:nth-of-type(9) div i::before {
+.rank-list .rank-item li:nth-of-type(9) div i::before {
 	content: '9';
 }
 
-.rank-list ul li:nth-of-type(10) div i::before {
+.rank-list .rank-item li:nth-of-type(10) div i::before {
 	content: '10';
-}
+}*/
 
 .hot-item {
 	width: 900px;