78 lines
3.4 KiB
PHP
78 lines
3.4 KiB
PHP
<?php
|
|
namespace app\common\dao\user;
|
|
|
|
use app\common\dao\BaseDao;
|
|
use app\common\model\user\UserVipExchangeCode;
|
|
|
|
class VipExchangeCodeDao extends BaseDao{
|
|
|
|
protected function getModel(): string{
|
|
return UserVipExchangeCode::class;
|
|
}
|
|
|
|
/**
|
|
* Common: 公共搜索模型
|
|
* Author: wu-hui
|
|
* Time: 2024/03/02 14:09
|
|
* @param array $params
|
|
* @return UserVipExchangeCode
|
|
*/
|
|
public function searchList(array $params){
|
|
return (new UserVipExchangeCode())
|
|
->when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){
|
|
$query->where('id', (int)$params['id']);
|
|
})
|
|
->when(isset($params['batch_title']) && $params['batch_title'] !== '',function($query) use ($params){
|
|
$query->where('batch_title', $params['batch_title']);
|
|
})
|
|
->when(isset($params['batch_unique']) && $params['batch_unique'] !== '',function($query) use ($params){
|
|
$query->where('batch_unique', $params['batch_unique']);
|
|
})
|
|
->when(isset($params['exchange_code']) && $params['exchange_code'] !== '',function($query) use ($params){
|
|
$query->where('exchange_code', $params['exchange_code']);
|
|
})
|
|
->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){
|
|
$query->where('status', (int)$params['status']);
|
|
})
|
|
->when(isset($params['mer_id']) && $params['mer_id'] !== '' && (int)$params['mer_id'] > 0,function($query) use ($params){
|
|
$query->where('mer_id', (int)$params['mer_id']);
|
|
})
|
|
->when(isset($params['staff_id']) && $params['staff_id'] !== '' && (int)$params['staff_id'] > 0,function($query) use ($params){
|
|
$query->where('staff_id', (int)$params['staff_id']);
|
|
})
|
|
->when(isset($params['group_data_id']) && $params['group_data_id'] !== '',function($query) use ($params){
|
|
$query->where('group_data_id', (int)$params['group_data_id']);
|
|
})
|
|
->with([
|
|
'mer' => function($query){
|
|
$query->field(['mer_id','mer_name'])->bind(['mer_name']);
|
|
},
|
|
'vipInfo' => function($query){
|
|
$query->field(['group_data_id','value','value as svip_name','value as svip_price','value as svip_info'])->withAttr('svip_name',function($val){
|
|
$value = json_decode($val,TRUE);
|
|
return $value['svip_name'] ?? '';
|
|
})->withAttr('svip_price',function($val){
|
|
$value = json_decode($val,TRUE);
|
|
return $value['price'] ?? '';
|
|
})->withAttr('svip_info',function($val){
|
|
$value = json_decode($val,TRUE);
|
|
return $value ?? [];
|
|
})->bind(['svip_name','svip_price','svip_info']);
|
|
},
|
|
'user' => function($query){
|
|
$query->field('uid,nickname,avatar');
|
|
},
|
|
'staff' => function($query){
|
|
$query->field('service_id,nickname as staff_nickname,avatar as staff_avatar')->bind(['staff_nickname','staff_avatar']);
|
|
},
|
|
])
|
|
->order('create_time DESC,id DESC')
|
|
->append(['qr_code_text']);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|