['level_two', 'level_one', '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', 'level_two', 'level_one', 'company_name', 'organization_code', 'city', 'area', 'street', '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']) ->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'); }) ->select() ->toArray(); } public function list_two(): array { return Company::where('company_type',30) ->field(['is_authentication','id', 'level_two', 'level_one', 'company_name', 'organization_code', 'city', 'area', 'street', '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(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2023/07/15 14:43 */ public function count(): int { return Company::where($this->searchWhere)->count(); } }