new-admin-api/app/common/dao/user/UserInviteCodeDao.php

64 lines
2.7 KiB
PHP

<?php
namespace app\common\dao\user;
use app\common\dao\BaseDao;
use app\common\model\user\UserInviteCode;
class UserInviteCodeDao extends BaseDao{
protected function getModel(): string{
return UserInviteCode::class;
}
/**
* Common: 公共搜索模型
* Author: wu-hui
* Time: 2024/04/02 16:57
* @param array $params
* @return UserInviteCode
*/
public function searchList(array $params){
return (new UserInviteCode())
->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['activate_uid']) && $params['activate_uid'] !== '',function($query) use ($params){
$query->where('activate_uid', (int)$params['activate_uid']);
})
->when(isset($params['use_user_id']) && $params['use_user_id'] !== '',function($query) use ($params){
$query->where('use_user_id', (int)$params['use_user_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([
'vipInfo' => function($query){
$query->field(['group_data_id','value','value as svip_name'])->withAttr('svip_name',function($val){
$value = json_decode($val,TRUE);
return $value['svip_name'] ?? '';
})->bind(['svip_name']);
},
'activateUser' => function($query){
$query->field('uid,nickname,avatar');
},
'useUser' => function($query){
$query->field('uid,nickname,avatar');
},
])
->order('create_time DESC,id DESC')
->append(['qr_code_text']);
}
}