new-admin-api/app/common/dao/marketing/agent/AgentDeliveryDao.php

61 lines
2.4 KiB
PHP

<?php
namespace app\common\dao\marketing\agent;
use app\common\dao\BaseDao;
use app\common\model\marketing\agent\AgentDelivery;
class AgentDeliveryDao extends BaseDao{
protected function getModel(): string{
return AgentDelivery::class;
}
/**
* Common: 公共搜索查询
* Author: wu-hui
* Time: 2024/06/17 17:31
* @param array $params
* @return AgentDelivery
*/
public function searchList(array $params){
return (new AgentDelivery())->when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){
$query->where('id',(int)$params['id']);
})
->when(isset($params['agent_id']) && $params['agent_id'] !== '',function($query) use ($params){
$query->where('agent_id',(int)$params['agent_id']);
})
->when(isset($params['mer_id']) && $params['mer_id'] !== '',function($query) use ($params){
$query->where('mer_id',(int)$params['mer_id']);
})
->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){
$query->where('status',$params['status']);
})
->when(isset($params['order_id']) && $params['order_id'] !== '',function($query) use ($params){
$query->where('order_id',$params['order_id']);
})
->when(isset($params['is_bind']) && $params['is_bind'] !== '',function($query) use ($params){
// 判断:缴费记录是否绑定商户
$query->where('mer_id', $params['is_bind'] == 'bind' ? '>' : '<=' , 0);
})
->with([
'agent' => function($query){
$query->field('id,uid,contact_name,contact_phone')
->with([
'user' => function($query){
$query->field('uid,nickname,avatar,phone')->bind(['nickname','avatar','phone']);
}
]);
},
'mer' => function($query){
$query->field('mer_id,mer_name,mer_avatar');
},
'store_order' => function($query){
$query->field('order_id,order_sn,pay_price,group_order_id,status');
},
])
->order('create_time DESC,id DESC');
}
}