['title','mobile','address'], '=' => ['type'] ]; } /** * @notes 自定查询条件 * @return array * @author 段誉 * @date 2022/10/25 16:53 */ public function queryWhere() { // $where[] = ['expiration_time', '>=', time()]; if (!empty($this->params['flag'])) { $where[] = ['user_id', '=', $this->userId]; }else{ $where[] = ['status', '=', 2]; } if (isset($this->params['cate_id']) && $this->params['cate_id']) { $cate_id_arr = []; $cate_id = $this->params['cate_id']; $cate_info = SupplyDemandCate::find($cate_id); if($cate_info){ array_push($cate_id_arr,$cate_id); if($cate_info['level'] == 1){ $children_cate_info = SupplyDemandCate::where(['pid'=>$cate_id])->field('id,pid')->select()->toArray(); if($children_cate_info){ $children_cate = array_column($children_cate_info,'id'); $cate_id_arr = array_merge($cate_id_arr,$children_cate); } } $where[] = ['cate_id', 'in',$cate_id_arr]; } } if (isset($this->params['area_id']) && $this->params['area_id']) { $area_id_arr = []; $area_id = $this->params['area_id']; $area_info = AssetArea::find($area_id); if($area_info){ array_push($area_id_arr,$area_id); if($area_info['level'] == 1){ $children_area_info = AssetArea::where(['pid'=>$area_id])->field('id,pid')->select()->toArray(); if($children_area_info){ $children_area = array_column($children_area_info,'id'); $area_id_arr=array_merge($area_id_arr,$children_area); } } } $where[] = ['area_id', 'in',$area_id_arr]; } return $where; } /** * @notes 获取供需列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 段誉 * @date 2022/9/16 18:55 */ public function lists(): array { $orderRaw = 'id desc'; $field = 'id,user_id,title,type,cate_id,mobile,images,area_id,address,number,content,status,remark,create_time'; $result = SupplyDemandInfo::field($field) ->where($this->queryWhere()) ->where($this->searchWhere) ->orderRaw($orderRaw) ->append(['type_desc','cateInfo','status_desc','images','user','area']) ->limit($this->limitOffset, $this->limitLength) ->select()->toArray(); return $result; } /** * @notes 获取服务商数量 * @return int * @author 段誉 * @date 2022/9/16 18:55 */ public function count(): int { return SupplyDemandInfo::where($this->searchWhere) ->where($this->queryWhere()) ->count(); } }