['team_name', 'master_worker_id','tenant_id','accept_order_status'] ]; } public function queryWhereRaw(){ $where = '1=1'; if(isset($this->params['goods_category_ids']) && !empty($this->params['goods_category_ids'])){ $sqls = []; $goods_category_ids =[]; foreach ($this->params['goods_category_ids'] as $val){ ($val = json_decode($val,true))?($goods_category_ids[] = end($val)):($goods_category_ids[] = $val); } foreach ($goods_category_ids as $item) { $sqls[] = "FIND_IN_SET({$item}, goods_category_ids) > 0"; } $where = implode(' OR ', $sqls); } return $where; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2024/11/20 17:42 */ public function lists(): array { $list = MasterWorkerTeam::with(['masterWorker']) ->whereRaw($this->queryWhereRaw()) ->where($this->searchWhere) ->field(['id','tenant_id', 'team_name', 'master_worker_id','accept_order_status','goods_category_ids','min_order','am_limit','pm_limit','city','area_name']) ->append(['master_worker_name']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); foreach($list as &$item) { $item['goods_category_ids'] = $item['goods_category_ids'] ? explode(',', $item['goods_category_ids']) : []; } return $list; } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2024/11/20 17:42 */ public function count(): int { return MasterWorkerTeam::where($this->searchWhere)->count(); } }