['name','mobile'], '=' => ['type'] ]; } /** * @notes 自定查询条件 * @return array * @author 段誉 * @date 2022/10/25 16:53 */ public function queryWhere() { $where[] = ['status', '=', 1]; $where[] = ['expiration_time', '>=', time()]; $where[] = ['audit_status','=',1]; 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 { $wheres = [] ; if (!empty($this->params['area_id'])) { $cwhere=[]; $cwhere[]=['pid','=',$this->params['area_id']]; $cate_list = AssetArea::where($cwhere)->select() ->toArray(); $cate_ids = array_column($cate_list,'id'); array_push($cate_ids,(int)$this->params['area_id']); $ccs = []; foreach ($cate_ids as &$v){ $ccs[]='%,'.$v.',%'; } $wheres[] = ['area_id', 'like', $ccs, 'or']; } $catwhere=[]; if (!empty($this->params['cate_id'])) { $cate_id_arr = explode(',',$this->params['cate_id']); $cats = []; foreach ($cate_id_arr as &$v){ $cats[]='%,'.$v.',%'; } $catwhere[] = ['cate_id', 'like', $cats, 'or']; } $mcatwhere=[]; if (!empty($this->params['mechanical_cate_id'])) { $m_cate_id_arr = explode(',',$this->params['mechanical_cate_id']); $mcats = []; foreach ($m_cate_id_arr as &$v){ $mcats[]='%,'.$v.',%'; } $mcatwhere[] = ['mechanical_cate_id', 'like', $mcats, 'or']; } $field = 'id,user_id,name,mobile,type,agricultural_machinery_model,images,driver_image,driving_image,agricultural_image,cate_id,area_id,mechanical_cate_id,money, content,status,audit_status,audit_time,expiration_time,create_time'; $result = UserService::field($field) ->where($this->queryWhere()) ->where($this->searchWhere) ->where($wheres) ->where($catwhere) ->where($mcatwhere) ->append(['type_desc','cate_desc','area_desc','images','user','mechanical_cate_desc']) ->limit($this->limitOffset, $this->limitLength) ->select()->toArray(); return $result; } /** * @notes 获取服务商数量 * @return int * @author 段誉 * @date 2022/9/16 18:55 */ public function count(): int { $wheres = [] ; if (!empty($this->params['area_id'])) { $cwhere=[]; $cwhere[]=['pid','=',$this->params['area_id']]; $cate_list = AssetArea::where($cwhere)->select() ->toArray(); $cate_ids = array_column($cate_list,'id'); array_push($cate_ids,(int)$this->params['area_id']); $ccs = []; foreach ($cate_ids as &$v){ $ccs[]='%,'.$v.',%'; } $wheres[] = ['area_id', 'like', $ccs, 'or']; } $catwhere=[]; if (!empty($this->params['cate_id'])) { $cate_id_arr = explode(',',$this->params['cate_id']); $cats = []; foreach ($cate_id_arr as &$v){ $cats[]='%,'.$v.',%'; } $catwhere[] = ['cate_id', 'like', $cats, 'or']; } $mcatwhere=[]; if (!empty($this->params['mechanical_cate_id'])) { $m_cate_id_arr = explode(',',$this->params['mechanical_cate_id']); $mcats = []; foreach ($m_cate_id_arr as &$v){ $mcats[]='%,'.$v.',%'; } $mcatwhere[] = ['mechanical_cate_id', 'like', $mcats, 'or']; } return UserService::where($this->searchWhere) ->where($this->queryWhere()) ->where($wheres) ->where($catwhere) ->where($mcatwhere) ->count(); } }