['organization_code', 'city', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'other_contacts', 'area_manager', 'is_contract', 'deposit', 'deposit_time', 'qualification', 'status'], '%like%' => ['company_name'], ]; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2023/07/15 14:43 */ public function lists(): array { $params=$this->request->param(); $where=[]; if($this->adminInfo['root']!=1){ $where['area_manager']=$this->adminId; } if(isset($params['company_id']) && $params['company_id']!=''){ $arr= Company::where('company_name','like','%'.$params['company_id'].'%')->column('id'); if($arr){ $where[]=['party_a|party_b','in',$arr]; } } if(isset($params['area_manager']) && $params['area_manager']!=''){ $arr= Admin::where('name','like','%'.$params['area_manager'].'%')->column('id'); if($arr){ $where[]=['area_manager','in',$arr]; } } if(isset($params['area']) && $params['area']!=''){ $arr= Db::name('geo_area')->where('area_name','like','%'.$params['area'].'%')->column('area_code'); if($arr){ $where[]=['area','in',$arr]; } } if(isset($params['street']) && $params['street']!=''){ $arr= Db::name('geo_street')->where('street_name','like','%'.$params['street'].'%')->column('street_code'); if($arr){ $where[]=['street','in',$arr]; } } return Company::where($this->searchWhere) ->where($where) ->field(['is_authentication','id', 'id contract', 'company_name', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'area_manager', 'is_contract', 'deposit', 'company_money', 'shareholder_money', 'deposit_time', 'status', 'face_create_status']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->append(['notes'], true) ->withAttr('company_type',function($value,$data){ return Db::name('dict_data')->where('id',$value)->value('name'); }) ->withAttr('area',function($value,$data){ return Db::name('geo_area')->where('area_code',$value)->value('area_name'); }) ->withAttr('street',function($value,$data){ return Db::name('geo_street')->where('street_code',$value)->value('street_name'); }) ->withAttr('area_manager',function($value,$data){ return Db::name('admin')->where('id',$value)->value('name'); }) ->withAttr('notes',function($value,$data){ if ($data['is_authentication'] == 1) { return Db::name('company_authentication_fail_log')->where('company_id',$data['id'])->where('log_type', 2)->order(['id'=>'desc'])->limit(1)->value('fail_reason'); } else { return Db::name('company_authentication_fail_log')->where('company_id',$data['id'])->where('log_type', 1)->order(['id'=>'desc'])->limit(1)->value('fail_reason'); } }) ->select() ->toArray(); } public function list_two(): array { $params=$this->request->param(); $where=['company_type'=>30]; if(isset($params['company_type'])){ $where=['company_type'=>$params['company_type']]; }; $count=Company::where($where)->count(); $list= Company::where($where) ->field(['is_authentication','id', 'company_name', 'organization_code', 'province', 'province province_name','city', 'city city_name', 'area','area area_name', 'street','street street_name', 'village','village village_name', 'brigade', 'brigade brigade_name', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'other_contacts', 'area_manager', 'is_contract', 'deposit', 'deposit_time', 'qualification', 'status']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); return ['list'=>$list,'page_no'=>$this->limitOffset+1,'page_size'=>$this->limitLength,'count'=>$count]; } public function list_three($companyId): array { $list = CompanyDepositVoucher::where(['company_id' => $companyId]) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); $count=CompanyDepositVoucher::where(['company_id' => $companyId])->count(); return ['list'=>$list,'page_no'=>$this->limitOffset+1,'page_size'=>$this->limitLength,'count'=>$count]; } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2023/07/15 14:43 */ public function count(): int { return Company::where($this->searchWhere)->count(); } }