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['mer_name']) && $params['mer_name'] !== '',function($query) use ($params){ $query->where('mer_name', 'like', "%{$params['mer_name']}%"); }) ->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['status']) && $params['status'] !== '',function($query) use ($params){ $query->where('status', (int)$params['status']); }) ->when(isset($params['order_id']) && $params['order_id'] !== '',function($query) use ($params){ $query->where('order_id', (int)$params['order_id']); }) ->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']); }, 'parent' => function($query){ $query->field('id,uid,agent_type') ->with([ 'user' => function($query){ $query->field('uid,nickname,avatar')->bind(['nickname','avatar']); } ]); }, 'merClass' => function($query){ $query->field('merchant_category_id,category_name as mer_category_name')->bind(['mer_category_name']); }, 'merType' => function($query){ $query->field('mer_type_id,type_name as mer_type_name')->bind(['mer_type_name']); }, 'orderInfo' => function($query){ $query->field('order_id,status,order_sn,group_order_id,pay_price'); }, ]) ->order('create_time DESC,id DESC'); } }