91 lines
3.7 KiB
PHP
91 lines
3.7 KiB
PHP
<?php
|
|
namespace app\common\dao\marketing;
|
|
|
|
|
|
use app\common\dao\BaseDao;
|
|
use app\common\model\marketing\AgentApply;
|
|
|
|
class AgentApplyDao extends BaseDao{
|
|
|
|
protected function getModel(): string{
|
|
return AgentApply::class;
|
|
}
|
|
/**
|
|
* Common: 公共搜索查询
|
|
* Author: wu-hui
|
|
* Time: 2024/02/01 14:02
|
|
* @param array $params
|
|
* @return AgentApply
|
|
*/
|
|
public function searchList(array $params){
|
|
return (new AgentApply())
|
|
->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']);
|
|
})
|
|
->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');
|
|
},
|
|
])
|
|
->order('create_time DESC,id DESC');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|