['type'], '='=>['check_status'] ]; } public function queryWhere() { $where = []; // $where[] = ['check_admin_ids', '=', $this->adminId]; // todo 放开过滤条件,只有片区经理才能查看 return $where; } public function lists(): array { return Approve::where($this->searchWhere) ->where($this->queryWhere()) ->with('task') ->field('*') ->append(['area_manager', 'company_name'], true) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->withAttr('area_manager',function($value,$data){ return Admin::where(['id' => $data['check_admin_ids']])->value('name'); }) ->withAttr('company_name',function($value,$data){ $task = Task::where('id', $data['task_id'])->find(); return Company::where(['id' => $task['company_id']])->value('company_name'); }) ->toArray(); } public function lists2(): array { $list = Approve::where($this->searchWhere) ->where($this->queryWhere()) ->with('task') ->field('*') ->append(['area_manager', 'company_name'], true) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->withAttr('area_manager',function($value,$data){ $company = Company::where(['admin_id'=>$data['check_admin_ids']])->find(); return Admin::where(['id' => $company['area_manager']])->value('name'); }) ->withAttr('company_name',function($value,$data){ $company = Company::where(['admin_id'=>$data['check_admin_ids']])->find(); return $company['company_name']; }) ->toArray(); $count = Approve::where($this->searchWhere) ->where($this->queryWhere())->count(); return [ 'lists' => $list, 'count' => $count, 'page_no' => $this->pageNo, 'page_size' => $this->pageSize, ]; } public function lists3(): array { $list = Approve::where($this->searchWhere) ->where($this->queryWhere()) ->with('task') ->field('*') ->append(['area_manager', 'company_a_name', 'company_b_name'], true) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->withAttr('area_manager',function($value,$data){ return Admin::where(['id' => $data['check_admin_ids']])->value('name'); }) ->withAttr('company_b_name',function($value,$data){ $task = Task::where('id', $data['task_id'])->find(); if ($data['type'] == Approve::APPROVE_TYPE_11) { return '下属小组服务公司'; } if ($data['type'] == Approve::APPROVE_TYPE_13) { $townCompanyName = Company::where(['id' => $task['company_id']])->value('company_name'); return $townCompanyName.'(镇农科公司)下属小组服务公司'; } if ($data['type'] == Approve::APPROVE_TYPE_14) { return '下属村管理公司'; } return Company::where(['id' => $task['company_id']])->value('company_name'); }) ->withAttr('company_a_name',function($value,$data){ $task = Task::where('id', $data['task_id'])->find(); $companyB = Company::where(['id' => $task['company_id']])->find(); if ($data['type'] == Approve::APPROVE_TYPE_12 || $data['type'] == Approve::APPROVE_TYPE_14) { return Db::query("select * from la_company where company_type=:company_type and FIND_IN_SET(:street,responsible_area)", ['company_type' => 41,'street'=>$companyB['street']], true)[0]['company_name']; } if ($data['type'] == Approve::APPROVE_TYPE_13) { $townCompanyName = Company::where(['id' => $task['company_id']])->value('company_name'); return $townCompanyName.'(镇农科公司)下属村管理公司'; } return Company::where(['village' => $companyB['village'], 'company_type'=>17])->value('company_name'); }) ->toArray(); $count = Approve::where($this->searchWhere) ->where($this->queryWhere())->count(); return [ 'lists' => $list, 'count' => $count, 'page_no' => $this->pageNo, 'page_size' => $this->pageSize, ]; } public function count(): int { return Approve::where($this->searchWhere)->count(); } }