feat: 新增关键词查询三级分类接口
							parent
							
								
									69e8b41587
								
							
						
					
					
						commit
						989542e814
					
				|  | @ -8,7 +8,7 @@ use think\facade\Validate; | ||||||
| 
 | 
 | ||||||
| class GoodsCategory extends Api | class GoodsCategory extends Api | ||||||
| { | { | ||||||
|     public $like_not_need_login = ['getLevelOneList', 'getListByLevelOne']; |     public $like_not_need_login = ['getLevelOneList', 'getListByLevelOne', 'getThirdListByKeyword']; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 获取一级分类列表 |      * 获取一级分类列表 | ||||||
|  | @ -38,4 +38,20 @@ class GoodsCategory extends Api | ||||||
|         } |         } | ||||||
|         return JsonServer::error('请求方式错误'); |         return JsonServer::error('请求方式错误'); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 获取一级分类下的后代分类 | ||||||
|  |      */ | ||||||
|  |     public function getThirdListByKeyword() | ||||||
|  |     { | ||||||
|  |         if($this->request->isGet()) { | ||||||
|  |             $keyword = input('keyword/s', ''); | ||||||
|  |             if (empty($keyword)) { | ||||||
|  |                 return JsonServer::error('请输入关键词'); | ||||||
|  |             } | ||||||
|  |             $list = GoodsCategoryLogic::getThirdListByKeyword($keyword); | ||||||
|  |             return JsonServer::success('获取成功', $list); | ||||||
|  |         } | ||||||
|  |         return JsonServer::error('请求方式错误'); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -65,4 +65,34 @@ class GoodsCategoryLogic extends Logic | ||||||
| 
 | 
 | ||||||
|         return $list; |         return $list; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * 根据关键词获取批量的三级分类列表 | ||||||
|  |      * 注:完全匹配的词放到第一个 | ||||||
|  |      */ | ||||||
|  |     public static function getThirdListByKeyword($keyword) | ||||||
|  |     { | ||||||
|  |         $where = []; | ||||||
|  |         $where[] = ['name', 'like', '%'.$keyword.'%']; | ||||||
|  |         $where[] = ['level', '=', 3]; | ||||||
|  |         $where[] = ['is_show', '=', 1]; | ||||||
|  |         $list = GoodsCategory::field('id,name,image') | ||||||
|  |             ->where($where) | ||||||
|  |             ->order('sort', 'asc') | ||||||
|  |             ->select() | ||||||
|  |             ->toArray(); | ||||||
|  | 
 | ||||||
|  |         foreach($list as $key => $item) { | ||||||
|  |             if ($keyword == $item['name']) { | ||||||
|  |                 // 关键词完全匹配的,提到数组最前面 也就是当前的key和0做交换
 | ||||||
|  |                 if ($key > 0) { | ||||||
|  |                     $oldFirst = $list[0]; | ||||||
|  |                     $list[0] = $item; | ||||||
|  |                     $list[$key] = $oldFirst; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return $list; | ||||||
|  |     } | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue