wesmiler 5 лет назад
Родитель
Сommit
09ee385c63

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

@@ -20,12 +20,13 @@ class IndexController extends HomeBaseController
         $time = microtime(true);
         // 热门分类
         $recCates = CategoryService::getRecCates(6);
-        $recCates = $recCates? $recCates->toArray() : [];
         $recCates = $recCates? array_chunk($recCates, 3) : [];
 
         // 最新招商
         $brandNews = JiamengService::getNewList(10);
-
+        $endtime = microtime(true);
+        $stime = ($endtime-$time);
+//        echo '分类访问时间:'.$stime;
 
         /*  轮播广告 */
         //横幅广告位
@@ -62,18 +63,22 @@ class IndexController extends HomeBaseController
 
         // 品牌聚焦
         $brand7 = JiamengService::getListByLevel(7, 56);
-        $brand7 = $brand7? array_chunk($brand7->toArray(), 28, true) : [];
+        $brand7 = $brand7? array_chunk($brand7, 28, true) : [];
 
         // 最新品牌
         $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 = [];
@@ -84,8 +89,7 @@ class IndexController extends HomeBaseController
             foreach($newsCates1 as $k=>$v){
                 $catid = isset($v['id'])? intval($v['id']): 0;
                 if($catid){
-                    $dataList = NewsService::getListByCate($catid, 6);
-                    $cateNews1[] = $dataList? $dataList->toArray() : [];
+                    $cateNews1[] = NewsService::getListByCate($catid, 6);
                 }
             }
         }
@@ -94,13 +98,14 @@ class IndexController extends HomeBaseController
             foreach($newsCates2 as $k=>$v){
                 $catid = isset($v['id'])? intval($v['id']): 0;
                 if($catid){
-                    $dataList = NewsService::getListByCate($catid, 7);
-                    $cateNews2[] = $dataList? $dataList->toArray() : [];
+                    $cateNews2[] = NewsService::getListByCate($catid, 7);
                 }
             }
         }
 
-
+        $endtime = microtime(true);
+        $stime = ($endtime-$time);
+//        echo '资讯分类访问时间:'.$stime;
         // 热点新闻
         $recNews = NewsService::getNewList(6);
 
@@ -117,7 +122,6 @@ class IndexController extends HomeBaseController
 
         // 参数
         $cateList = CategoryService::getCates();
-        $cateList = $cateList? $cateList->toArray() : [];
         $touziarr = config('params.touziLevels');
 
         // 分类品牌
@@ -132,7 +136,9 @@ class IndexController extends HomeBaseController
                 }
             }
         }
-
+        $endtime = microtime(true);
+        $stime = ($endtime-$time);
+//        echo '资讯访问时间:'.$stime;
         // 热门品牌
         $brandHot = JiamengService::getTopList([], 16);
 
@@ -145,10 +151,9 @@ class IndexController extends HomeBaseController
 
         $endtime = microtime(true);
 
-        $time = (($endtime-$time)).'s';
-        exit;
+        $stime = ($endtime-$time);
+//        echo '访问时间:'.$stime;
 //        echo '访问时间:'.$endtime."\n";
-//        echo '访问时间:'.$time;
 
         // 新增
         $this->assign('banner',$banner);
@@ -195,10 +200,6 @@ class IndexController extends HomeBaseController
         return $this->fetch();
     }
 
-    public function ws()
-    {
-        return $this->fetch(':ws');
-    }
 
     /**
      * 投诉

+ 1 - 2
app/index/controller/NewsController.php

@@ -14,7 +14,6 @@ class NewsController extends HomeBaseController
     {
         $map['status'] = 1;
         $cate_list = NewsCategoryService::getCates(20);
-        $cate_list = $cate_list? $cate_list->toArray() : [];
 
         $catinfo = array('id'=>0);
         //排行
@@ -23,7 +22,7 @@ class NewsController extends HomeBaseController
         // 最新入驻
         $brand_jx = JiamengService::getNewList(12);
         
-        $news1 = NewsService::getList(['level'=> 1], 18);
+        $news1 = NewsService::getList(['level'=> 1], 10);
 
         $newsHot = NewsService::getHotList();
 

Разница между файлами не показана из-за своего большого размера
+ 1 - 37
app/index/service/AdvertService.php


+ 41 - 5
app/index/service/CategoryService.php

@@ -111,8 +111,14 @@ class CategoryService
      * @throws \think\exception\DbException
      */
     public static function getCates($num=30, $pid=0, $field=''){
+        $cacheKey = "cache:cates:list_byparent_".$pid.'_n'.$num.($field? ':'.md5($field) : '');
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+
         $field = $field? $field : 'id,catname,enname';
-        return Db::name('category')
+        $dataList = Db::name('category')
             ->where(function($query) use ($pid){
                 if($pid>=0){
                     $query->where('parent_id', $pid);
@@ -122,6 +128,12 @@ class CategoryService
             ->order('list_order')
             ->limit($num)
             ->select();
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 6 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -133,7 +145,12 @@ class CategoryService
      * @throws \think\exception\DbException
      */
     public static function getRecCates($num=6){
-        return Db::name('category')
+        $cacheKey = "cache:cates:recommend_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+        $dataList = Db::name('category')
             ->where('parent_id',0)
             ->field('id,catname,enname')
             ->order('list_order')
@@ -143,11 +160,17 @@ class CategoryService
                 $id = isset($item['id'])? intval($item['id']) : 0;
                 $item['subList'] = [];
                 if($id){
-                    $subList = CategoryService::getCates(12, $id);
-                    $item['subList'] = $subList? $subList->toArray() : [];
+                    $item['subList'] = CategoryService::getCates(12, $id);
                 }
                 return $item;
             });
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 3 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -159,6 +182,12 @@ class CategoryService
      * @throws \think\exception\DbException
      */
     public static function getHotCates($num=6){
+        $cacheKey = "cache:cates:hots_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+
         $catIds = Db::name('jiameng')
             ->where('status',1)
             ->order(db()->raw("sum('hits')"))
@@ -169,12 +198,19 @@ class CategoryService
         if(empty($catIds)){
             return false;
         }
-        return Db::name('category')
+        $dataList = Db::name('category')
             ->whereIn('id',$catIds)
             ->field('id,catname,enname')
             ->order('list_order')
             ->limit($num)
             ->select();
 
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 3 * 3600);
+        }
+
+        return $dataList;
+
     }
 }

+ 95 - 34
app/index/service/JiamengService.php

@@ -3,7 +3,9 @@
  * 加盟品牌服务
  * @author wesmielr
  */
+
 namespace app\index\service;
+
 use think\Db;
 
 class JiamengService
@@ -18,6 +20,11 @@ class JiamengService
      */
     public static function getNewList($num = 10)
     {
+        $cacheKey = "cache:jiameng:newlist_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
         $touziarr = config('params.touziLevels');
         $dataList = Db::name('jiameng')
             ->field('id,title,touzi_level,logo,mendian,hits')
@@ -31,6 +38,11 @@ class JiamengService
                 return $item;
             });
 
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 6 * 3600);
+        }
+
         return $dataList;
     }
 
@@ -44,11 +56,23 @@ class JiamengService
      */
     public static function getHotList($num = 20)
     {
-        return Db::name('jiameng')
+        $cacheKey = "cache:jiameng:hotlist_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+        $dataList = Db::name('jiameng')
             ->field('id,title,thumb,hits,zhiying')
             ->where(['status' => 1])->order('hits desc')
             ->limit($num)
             ->select();
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 7 * 24 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -61,24 +85,31 @@ class JiamengService
      */
     public static function getList($param, $field = '', $pageSize = 20)
     {
+        $page = request()->get('page', 1);
+        $cacheKey = "cache:jiameng:list:p" . $page . '_' . md5(json_encode($param).$field.$pageSize);
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+
         $pcatid = 0;
-        $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;
+        $pcid = $pcid > 0 ? $pcid : $pcatid;
         $catids = [];
-        if($pcid){
+        if ($pcid) {
             $catids = Db::name('category')->where('parent_id', $pcid)->column('id');
             $catids[] = $pcid;
         }
 
         $pageParams = $param;
-        $pageType = isset($param['pageType'])? : 0;
-        if($pageType == 1){
-            $pageParams = ['page'=> input('page', 1)];
+        $pageType = isset($param['pageType']) ?: 0;
+        if ($pageType == 1) {
+            $pageParams = ['page' => input('page', 1)];
         }
         $field = $field ? $field : 'j.id,j.title,j.logo,j.catid,j.pcatid,j.touzi_level,j.area,j.level,j.company,j.product,j.area_id,j.mendian,j.zhiying,j.found_at,j.is_choose,c1.catname as catname,c1.enname as encatname,c2.catname as pcatname,c2.enname as penname';
         $dataList = Db::name('jiameng')->alias('j')
@@ -93,8 +124,8 @@ class JiamengService
                 }
 
                 // 信息等级
-                $level = isset($param['level'])? intval($param['level']) : 0;
-                if($level>0){
+                $level = isset($param['level']) ? intval($param['level']) : 0;
+                if ($level > 0) {
                     $query->where(['j.level' => $level]);
                 }
 
@@ -104,24 +135,28 @@ class JiamengService
                 }
 
                 if ($catids) {
-                    $query->where('catid','in', $catids);
+                    $query->where('catid', 'in', $catids);
                 }
 
                 $lv = isset($param['lv']) ? intval($param['lv']) : -1;
-                $lv = $lv>0? $lv : (isset($param['touzi_level']) ? intval($param['touzi_level']) : -1);
+                $lv = $lv > 0 ? $lv : (isset($param['touzi_level']) ? intval($param['touzi_level']) : -1);
                 if ($lv >= 0) {
                     $query->where(['j.touzi_level' => $lv]);
                 }
 
                 $aid = isset($param['aid']) ? intval($param['aid']) : -1;
-                $aid = $aid>0? $aid : (isset($param['area_id']) ? intval($param['area_id']) : -1);
+                $aid = $aid > 0 ? $aid : (isset($param['area_id']) ? intval($param['area_id']) : -1);
                 if ($aid > 0) {
                     $query->where(['j.area_id' => $aid]);
                 }
             })
             ->order('j.update_time desc, j.create_time desc, j.list_order')
             ->paginate($pageSize, false, ['query' => $pageParams]);
-//         echo Db::name('jiameng')->getLastSql();
+
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 3 * 24 * 3600);
+        }
+
         return $dataList;
     }
 
@@ -135,23 +170,36 @@ class JiamengService
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-    public static function getListByLevel($level, $pageSize=10,$field=''){
+    public static function getListByLevel($level, $pageSize = 10, $field = '')
+    {
         $touziarr = config('params.touziLevels');
-        $field = $field? $field : 'j.id,j.title,j.touzi_level,j.logo,j.hits,j.guanggaowei,j.touzi_level,j.cover_area,j.mendian,j.product,c1.catname';
-         return Db::name('jiameng')
-             ->alias('j')
-             ->leftJoin('category c1', 'c1.id=j.catid')
-             ->field($field)
-             ->where('j.level',$level)
-             ->where('j.status',1)
-             ->order('j.list_order asc, j.id desc')
-             ->limit($pageSize)
-             ->select()
-             ->each(function($item, $k) use ($touziarr){
-                 $touziLevel = isset($item['touzi_level']) ? $item['touzi_level'] : '-1';
-                 $item['touzi_level_name'] = isset($touziarr[$touziLevel]) ? $touziarr[$touziLevel] : '';
-                 return $item;
-         });
+        $field = $field ? $field : 'j.id,j.title,j.touzi_level,j.logo,j.hits,j.guanggaowei,j.touzi_level,j.cover_area,j.mendian,j.product,c1.catname';
+        $cacheKey = "cache:jiameng:listbylevel:level_" . $level.'_'.$pageSize;
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+        $dataList = Db::name('jiameng')
+            ->alias('j')
+            ->leftJoin('category c1', 'c1.id=j.catid')
+            ->field($field)
+            ->where('j.level', $level)
+            ->where('j.status', 1)
+            ->order('j.list_order asc, j.id desc')
+            ->limit($pageSize)
+            ->select()
+            ->each(function ($item, $k) use ($touziarr) {
+                $touziLevel = isset($item['touzi_level']) ? $item['touzi_level'] : '-1';
+                $item['touzi_level_name'] = isset($touziarr[$touziLevel]) ? $touziarr[$touziLevel] : '';
+                return $item;
+            });
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 7 * 24 * 3600);
+        }
+
+        return $dataList;
     }
 
 
@@ -165,10 +213,17 @@ class JiamengService
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
-    public static function getTopList($where, $pageSize=10, $field=''){
+    public static function getTopList($where, $pageSize = 10, $field = '')
+    {
+        $cacheKey = "cache:jiameng:toplist:" . md5(json_encode($where).$pageSize.$field);
+        $dataList = RedisService::get($cacheKey);
+        if ($dataList) {
+            return $dataList;
+        }
+
         $touziarr = config('params.touziLevels');
-        $field = $field? $field : 'j.id,j.title,j.touzi_level,j.logo,j.guanggaowei,j.touzi_level,j.cover_area,j.mendian,j.product,c1.catname,c2.catname as pcatname';
-        return Db::name('jiameng')
+        $field = $field ? $field : 'j.id,j.title,j.touzi_level,j.logo,j.guanggaowei,j.touzi_level,j.cover_area,j.mendian,j.product,c1.catname,c2.catname as pcatname';
+        $dataList = Db::name('jiameng')
             ->alias('j')
             ->leftJoin('category c1', 'c1.id=j.catid')
             ->leftJoin('category c2', 'c2.id=j.pcatid')
@@ -178,10 +233,16 @@ class JiamengService
             ->order('j.hits desc')
             ->limit($pageSize)
             ->select()
-            ->each(function($item, $k) use ($touziarr){
+            ->each(function ($item, $k) use ($touziarr) {
                 $touziLevel = isset($item['touzi_level']) ? $item['touzi_level'] : '-1';
                 $item['touzi_level_name'] = isset($touziarr[$touziLevel]) ? $touziarr[$touziLevel] : '';
                 return $item;
             });
+
+        $dataList = $dataList ? $dataList->toArray() : [];
+        if ($dataList) {
+            RedisService::set($cacheKey, $dataList, 3 * 24 * 3600);
+        }
+        return $dataList;
     }
 }

Разница между файлами не показана из-за своего большого размера
+ 1 - 36
app/index/service/LinkService.php


Разница между файлами не показана из-за своего большого размера
+ 1 - 73
app/index/service/MessageService.php


Разница между файлами не показана из-за своего большого размера
+ 1 - 45
app/index/service/NewsCategoryService.php


+ 67 - 6
app/index/service/NewsService.php

@@ -18,7 +18,14 @@ class NewsService
      */
     public static function getList($params, $pageSize=10, $field=''){
         $field = $field? $field : 'id,title,thumb,keywords,hits,guanggaowei,description,create_time';
-        return Db::name('news')
+        $page = request()->get('page', 1);
+        $cacheKey = "cache:news:list:p".$page.'_'.md5(json_encode($params.$field.$pageSize));
+        $dataList = RedisService::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
+
+        $dataList = Db::name('news')
             ->field($field)
             ->where(function($query) use($params){
                 $status = isset($params['status'])? $params['status'] : 0;
@@ -44,6 +51,12 @@ class NewsService
             })
             ->order('id desc')
             ->paginate($pageSize);
+
+        if ($dataList){
+            RedisService::set($cacheKey, $dataList, 3 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -57,12 +70,24 @@ class NewsService
      */
     public static function getHotList($num=6, $field=''){
         $field = $field? $field : 'id,title,thumb,keywords,description,create_time';
-        return Db::name('news')
+        $cacheKey = "cache:news:hotlist_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
+        $dataList = Db::name('news')
             ->where('status',1)
             ->field($field)
             ->order('hits desc')
             ->limit($num)
             ->select();
+
+        $dataList = $dataList? $dataList->toArray() : [];
+        if ($dataList){
+            RedisService::set($cacheKey, $dataList, 3 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -76,14 +101,25 @@ class NewsService
      */
     public static function getNewList($num=6, $field=''){
         $field = $field? $field : 'id,title,thumb,keywords,description,create_time';
-        $result = Db::name('news')
+        $cacheKey = "cache:news:newlist_".$num;
+        $dataList = RedisService::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
+
+        $dataList = Db::name('news')
             ->where('status',1)
             ->field($field)
             ->order('update_time desc, create_time desc,id desc')
             ->limit($num)
             ->select();
 
-        return $result? $result->toArray() : [];
+        $dataList = $dataList? $dataList->toArray() : [];
+        if ($dataList){
+            RedisService::set($cacheKey, $dataList, 7*24 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -118,8 +154,13 @@ class NewsService
      * @throws \think\exception\DbException
      */
     public static function getListByCate($cateId, $num=6, $field=''){
+        $cacheKey = "cache:news:bycate_".$cateId.'_'.$num;
+        $dataList = RedisService::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
         $field = $field? $field : 'id,title,thumb,keywords,description';
-        return Db::name('news')
+        $dataList = Db::name('news')
             ->where(function($query) use($cateId){
                 if(is_array($cateId)){
                     $query->whereIn('ncatid', $cateId);
@@ -132,6 +173,13 @@ class NewsService
             ->order('list_order')
             ->limit($num)
             ->select();
+
+        $dataList = $dataList? $dataList->toArray() : [];
+        if ($dataList){
+            RedisService::set($cacheKey, $dataList, 7*24 * 3600);
+        }
+
+        return $dataList;
     }
 
     /**
@@ -146,7 +194,13 @@ class NewsService
      */
     public static function getListByLevel($level, $num=6, $field=''){
         $field = $field? $field : 'id,title,thumb,keywords,description';
-        return Db::name('news')
+        $cacheKey = "cache:news:listbylevel_".$level.'_'.$num;
+        $dataList = RedisService::get($cacheKey);
+        if($dataList){
+            return $dataList;
+        }
+
+        $dataList = Db::name('news')
             ->where(function($query) use($level){
                 if(is_array($level)){
                     $query->whereIn('level', $level);
@@ -159,5 +213,12 @@ class NewsService
             ->order('list_order')
             ->limit($num)
             ->select();
+
+        $dataList = $dataList? $dataList->toArray() : [];
+        if ($dataList){
+            RedisService::set($cacheKey, $dataList, 7*24 * 3600);
+        }
+
+        return $dataList;
     }
 }

Разница между файлами не показана из-за своего большого размера
+ 1 - 119
app/index/service/RedisService.php


+ 1 - 1
public/index.php

@@ -11,7 +11,7 @@ namespace think;
 // [ 入口文件 ]
 
 // 调试模式开关
-define('APP_DEBUG', false);
+define('APP_DEBUG', true);
 
 // 定义CMF根目录,可更改此目录
 define('CMF_ROOT', dirname(__DIR__) . '/');