new-admin-api/app/common/dao/marketing/AgentApplyDao.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');
}
}