hasOne(StoreCategory::class, 'store_category_id', 'pid'); } /** * 获取商品分类表数据 *@author Liuxiaoquan * *@param array $where 查询条件 *@return object|array $list 查询商品分类结果集 */ public function getList($where) { $where['is_show'] = empty($where['is_show'])? 1 : $where['is_show']; $list = self::search($where) ->field('store_category_id as id,pid,cate_name,path,sort,pic,level,is_hot') ->order('sort DESC')->select(); return $list; } public function getStoreCategoryList(int $merId = 0,$status = 0) { $data = self::getAllOptions($merId,$status); return $data; } /** * 获取列表 -- 筛选用 * @Date: 2020/5/16 * @param int|null $mer_id * @return mixed */ protected function getAllOptions($mer_id = null,$status = null,$level = null) { $field = 'pid,cate_name'; $query = StoreCategory::when(($mer_id !== null), function($query)use($mer_id){ $query->where('mer_id', $mer_id); }) ->when($status,function($query)use($status){ $query->where('is_show',$status); }) ->when(($level != '' && $level != null),function($query)use($level){ $query->where('level','<',$level); } ); return $query->order('sort DESC,'.$this->getPk().' DESC')->column($field, $this->getPk()); } /** * 查询语句构建 *@author Liuxiaoquan * *@param array $where 查询条件 *@return Query */ protected function search($where) { $query = self::when(isset($where['mer_id'])&&$where['mer_id']!=='', function ($query)use($where) { $query->where('mer_id', $where['mer_id']); } ) ->when(isset($where['level'])&&$where['level']!=='', function($query)use($where){ $query->where('level', $where['level']); } ) ->when(isset($where['is_show'])&&$where['is_show']!=='', function($query)use($where){ $query->where('is_show', $where['is_show']); } ); return $query; } }