用户实名注册限制
邀请收益规则调整 新手任务领取限制 红包功能调整 元旦换肤
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user