|
|
@@ -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;
|
|
|
}
|
|
|
}
|