|
|
@@ -49,18 +49,74 @@ class LiveCategoryService extends BaseService
|
|
|
return self::$instance;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 搜索
|
|
|
+ * @param $params
|
|
|
+ * @return array|mixed
|
|
|
+ */
|
|
|
public function search($params)
|
|
|
{
|
|
|
+ $cacheKey = "caches:live:categorys:search_".md5(json_encode($params));
|
|
|
+ $datas = RedisService::get($cacheKey);
|
|
|
+ if($datas){
|
|
|
+ return $datas;
|
|
|
+ }
|
|
|
+
|
|
|
+ $ids = $this->model->where(['status'=>1,'mark'=>1,'pid'=>0])
|
|
|
+ ->where(function($query) use($params){
|
|
|
+ $kw = isset($params['kw'])? trim($params['kw']) : '';
|
|
|
+ if($kw){
|
|
|
+ $query->where('name','like',"%{$kw}%")
|
|
|
+ ->orWhere('name_en','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_sk','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_fr','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_ind','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_jap','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_vie','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_tha','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_mal','like', "%{$kw}%");
|
|
|
+ }
|
|
|
+ })->pluck('id');
|
|
|
|
|
|
+ $datas = $this->model->where(['status'=>1,'mark'=>1])
|
|
|
+ ->where('pid','>',0)
|
|
|
+ ->where(function($query) use($params, $ids){
|
|
|
+ $kw = isset($params['kw'])? trim($params['kw']) : '';
|
|
|
+ if($kw){
|
|
|
+ $query->where('name','like',"%{$kw}%")
|
|
|
+ ->orWhere('name_en','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_sk','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_fr','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_ind','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_jap','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_vie','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_tha','like', "%{$kw}%")
|
|
|
+ ->orWhere('name_mal','like', "%{$kw}%");
|
|
|
+ }
|
|
|
+
|
|
|
+ if($ids){
|
|
|
+ $query->orWhereIn('pid',$ids);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ->select(['id','pid','name','name_sk','name_fr','name_ind','name_en','name_jap','name_mal','name_vie','name_tha','status'])
|
|
|
+ ->orderBy('sort','desc')
|
|
|
+ ->orderBy('id','asc')
|
|
|
+ ->get();
|
|
|
+ $datas = $datas? $datas->toArray() : [];
|
|
|
+ if($datas){
|
|
|
+ RedisService::set($cacheKey, $datas, 3600);
|
|
|
+ }
|
|
|
+ return $datas;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 分类
|
|
|
* @return array|mixed
|
|
|
*/
|
|
|
public function options()
|
|
|
{
|
|
|
- $cacheKey = "caches:live:categorys";
|
|
|
+ $cacheKey = "caches:live:categorys:list";
|
|
|
$datas = RedisService::get($cacheKey);
|
|
|
if($datas){
|
|
|
return $datas;
|