['property_head_id', 'property_user_id', 'remark', 'order_status', 'work_id'], ]; } public function queryWhere() { $where = []; if(isset($this->params['head_name']) && !empty($this->params['head_name'])){ $property_head_ids = PropertyHead::where('head_name', 'like', '%'.$this->params['head_name'].'%')->column('id'); $where[] = ['property_head_id','IN',$property_head_ids]; } if(isset($this->params['householder_name']) && !empty($this->params['householder_name'])){ $property_user_ids = PropertyUser::where('householder_name', 'like', '%'.$this->params['householder_name'].'%')->column('id'); $where[] = ['property_user_id','IN',$property_user_ids]; } return $where; } /** * 获取数据权限 * $this->adminInfo['data_rules'] * province city admin_id sale_group_id sale_id property_head_id */ public function queryDataWhere(){ $where = []; $data_rules = $this->adminInfo['data_rules']; if (isset($data_rules['province']) && !empty($data_rules['province'])) { $where[] = ['province','in' ,$data_rules['province']]; } if (isset($data_rules['city']) && !empty($data_rules['city'])) { $where[] = ['city','in' ,$data_rules['city']]; } if(!empty($where)){ $head_ids = PropertyHead::where($where)->column('id')??[0]; $where = [['property_head_id','in' ,$head_ids]]; } if (isset($data_rules['sale_group_id']) && !empty($data_rules['sale_group_id'])) { $where[] = ['sale_group_id','in' ,$data_rules['sale_group_id']]; } if (isset($data_rules['sale_id']) && !empty($data_rules['sale_id'])) { $where[] = ['sale_id','in' ,$data_rules['sale_id']]; } if (isset($data_rules['property_head_id']) && !empty($data_rules['property_head_id'])) { $where[] = ['property_head_id','in' ,$data_rules['property_head_id']]; } return $where; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2024/09/19 14:48 */ public function lists(): array { return PropertyOrder::with(['propertyHead','propertyUser','propertyOrderCustomerLog','saleInfo','saleGroupInfo','allocateWorkerLog' ])->where($this->searchWhere)->where($this->queryWhere()) ->where($this->queryDataWhere()) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2024/09/19 14:48 */ public function count(): int { return PropertyOrder::where($this->searchWhere)->where($this->queryWhere())->where($this->queryDataWhere())->count(); } }