['service_time'], ]; } 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; } public function queryWhere(){ $where = []; if(isset($this->params['title']) && !empty($this->params['title'])){ $where[] = ['title', 'like','%' .$this->params['title'] . '%']; } return $where; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2025/02/23 11:02 */ public function lists(): array { $list = GoodsTime::where($this->searchWhere) ->where($this->queryWhere()) ->whereRaw($this->queryWhereRaw()) ->field(['id', 'title','service_time', 'goods_category_ids']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); foreach($list as &$item) { $item['goods_category_ids'] = explode(',', $item['goods_category_ids']); } return $list; } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2025/02/23 11:02 */ public function count(): int { return GoodsTime::where($this->searchWhere)->count(); } }