用户实名注册限制

邀请收益规则调整
新手任务领取限制
红包功能调整
元旦换肤
This commit is contained in:
2025-12-30 16:45:30 +08:00
parent 6dc429ec36
commit 8538410fec
9 changed files with 206 additions and 15 deletions

View File

@@ -106,6 +106,14 @@ class Tasks extends Model
$reslut['gift_box_list'][$key]['status_str'] = '已用完('.$reslut['gift_box_list'][$key]['taday_number'].'/'.$ext['num'].')';
}
}
//判断用户是否实名认证,并查询用户手机号下的用户
$is_real = model('UserData')->real_name_info($user_id);
if($is_real['code']==1){
if($is_real['data']['is_real'] ==1){
$user_ids = db::name('vs_user')->where('mobile',$is_real['mobile'])->column('id');
}
}
//任务列表
$data = db::name('vs_tasks')
->field('id as task_id,icon,task_name,target_quantity,task_type,jump_type,tasks_bag_id')
@@ -141,7 +149,11 @@ class Tasks extends Model
->whereTime('createtime', 'today')
->find();
}else{
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find();
if($v['task_type'] == 1 && count($user_ids)>1){
$user_daily_tasks = Db::name('vs_tasks_user_daily')->whereIn('user_id',$user_ids)->where('task_id',$v['task_id'])->find();
}else{
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$v['task_id'])->find();
}
if($v['jump_type']==4){
//跳转的房间路径
$v['from_id'] = model('api/Room')->task_jump_room_recommend($v['task_id']);
@@ -322,7 +334,20 @@ class Tasks extends Model
if($task_info['task_type']==2){
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find();
}else{
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->find();
if($task_info['task_type'] == 1){
//判断用户是否实名认证,并查询用户手机号下的用户
$is_real = model('UserData')->real_name_info($user_id);
if($is_real['code']==1){
if($is_real['data']['is_real'] ==1){
$user_ids = db::name('vs_user')->where('mobile',$is_real['mobile'])->column('id');
$user_daily_tasks = Db::name('vs_tasks_user_daily')->whereIn('user_id',$user_ids)->where('task_id',$task_id)->find();
if($user_daily_tasks){
return ['code' => 0, 'msg' => '您已完成该任务','data' => null];
}
}
}
}
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id', $user_id)->where('task_id', $task_id)->find();
}
$is_completed = 0;
$completion_time = null;
@@ -415,6 +440,8 @@ class Tasks extends Model
}else{
if($is_real['data']['is_real'] !=1){
return ['code' => 0, 'msg' => '请先实名认证','data' => null];
}else{
$user_ids = db::name('vs_user')->where('mobile',$is_real['mobile'])->column('id');
}
}
$task_info = Db::name('vs_tasks')->where('id',$task_id)->find();
@@ -460,7 +487,11 @@ class Tasks extends Model
if($task_info['task_type']==2){
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find();
}else{
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->find();
if($task_info['task_type'] == 1 && count($user_ids)>1){
$user_daily_tasks = Db::name('vs_tasks_user_daily')->whereIn('user_id',$user_ids)->where('task_id',$task_id)->find();
}else{
$user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->find();
}
}
if (!$user_daily_tasks) {
return ['code' => 0, 'msg' => '请完成该任务','data' => null];
@@ -471,9 +502,20 @@ class Tasks extends Model
if ($user_daily_tasks['is_claimed'] == 1) {
return ['code' => 0, 'msg' => '您已领取该奖励','data' => null];
}
if($user_daily_tasks['user_id'] != $user_id && $task_info['task_type']== 1){
return ['code' => 0, 'msg' => '请用您的另一个实名认证账号领取,此账号无权领取','data' => null];
}
}
Db::startTrans();
// 使用更严格的事务处理,统一加锁顺序
$lockKey = 'task_receive_' . $user_id . '_' . $task_id . ($student_id ? '_' . $student_id : '');
$lock = cache($lockKey);
if ($lock) {
return ['code' => 0, 'msg' => '操作过于频繁,请稍后再试','data' => null];
}
cache($lockKey, 1, 2); // 2秒锁
try {
Db::startTrans();
if($task_id==24){
//师徒任务
$reslut = Db::name('vs_user_sign_task')->where('id',$user_sign_task['id'])->update([
@@ -481,6 +523,7 @@ class Tasks extends Model
]);
if (!$reslut) {
Db::rollback();
cache($lockKey, null);
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
}
Db::name('vs_tasks_user_daily')->insert([
@@ -529,6 +572,7 @@ class Tasks extends Model
]);
if (!$reslut) {
Db::rollback();
cache($lockKey, null);
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
}
}
@@ -538,6 +582,7 @@ class Tasks extends Model
$op_bag_re = $this->open_tasks_bag($user_id,$task_info['tasks_bag_id']);
if ($op_bag_re['code'] != 1) {
Db::rollback();
cache($lockKey, null);
return ['code' => 0, 'msg' => $op_bag_re['msg'], 'data' => null];
}
}else{
@@ -546,15 +591,18 @@ class Tasks extends Model
$res = model('common/UserWallet')->change_user_money($user_id, $user_sign_task['value'], model('common/UserWallet')::MONEYTYPEARNINGS, model('common/UserWallet')::SIGN_MASTER_DAILY_RETURN,model('common/UserWallet')::ChangeTypeLable(model('common/UserWallet')::SIGN_MASTER_DAILY_RETURN)."".$user_sign_task['times']."");
if ($res['code'] != 1) {
Db::rollback();
cache($lockKey, null);
return ['code' => 0, 'msg' => $res['msg'], 'data' => null];
}
}
// 提交事务
Db::commit();
cache($lockKey, null);
return ['code' => 1, 'msg' => "领取成功", 'data' => null];
}catch (\Exception $e) {
// 回滚事务
Db::rollback();
cache($lockKey, null);
return ['code' => 0, 'msg' => "请重试", 'data' => null];
}
}
@@ -905,7 +953,7 @@ class Tasks extends Model
->where(['user_id'=>$user_id,'is_claimed'=>0,'is_completed'=>1])
->where('task_id', 'in', $daily_task_ids)
->whereTime('createtime', 'today')
->count();
->count('id');
$task_user_count += $daily_task_count;
}
@@ -926,7 +974,7 @@ class Tasks extends Model
$task_user = Db::name('vs_tasks_user_daily')
->where(['user_id'=>$user_id,'is_claimed'=>0,'is_completed'=>1])
->where('task_id',$v['task_id'])
->count();
->count('id');
}
$task_user_count +=$task_user;
}