where('is_del',0) ->when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){ $query->where('id', (int)$params['id']); }) ->when(isset($params['uid']) && $params['uid'] !== '',function($query) use ($params){ $query->where('uid', (int)$params['uid']); }) ->when(isset($params['pid']) && $params['pid'] !== '',function($query) use ($params){ $query->where('pid', (int)$params['pid']); }) ->when(isset($params['contact_name']) && $params['contact_name'] !== '',function($query) use ($params){ $query->where('contact_name', 'like', "%{$params['contact_name']}%"); }) ->when(isset($params['contact_phone']) && $params['contact_phone'] !== '',function($query) use ($params){ $query->where('contact_phone', $params['contact_phone']); }) ->when(isset($params['agent_type']) && $params['agent_type'] !== '',function($query) use ($params){ $query->where('agent_type', (int)$params['agent_type']); }) ->when(isset($params['is_invite_supplier']) && $params['is_invite_supplier'] !== '',function($query) use ($params){ // 仅获取拥有【供应商】邀请权限的代理人员 类型:1=发起人,2=省公司,3=省合伙人(外勤),4=省合伙人(内勤),5=区县运营商 $query->whereIn('agent_type',[1,2,3,4,5]); }) ->with([ 'user' => function($query){ $query->field('uid,nickname,avatar'); }, 'province' => function($query){ $query->field('id,name as province_name,code as province_code') ->bind(['province_name','province_code']); }, 'city' => function($query){ $query->field('id,name as city_name,code as city_code') ->bind(['city_name','city_code']); }, 'area' => function($query){ $query->field('id,name as area_name,code as area_code') ->bind(['area_name','area_code']); }, 'street' => function($query){ $query->field('id,name as street_name,code as street_code') ->bind(['street_name','street_code']); }, 'mer' => function($query){ $query->field('mer_id,mer_name,mer_avatar'); }, 'merList' => function($query){ $query->field('agent_id,mer_name,mer_avatar'); }, 'parent' => function($query){ $query->field('id,uid,agent_type') ->with([ 'user' => function($query){ $query->field('uid,nickname,avatar') ->bind(['nickname','avatar']); } ]); }, ]) ->order('create_time DESC,id DESC') ->append(['only_key','mer_id_list','children_count','agent_type_text']); } }