diff --git a/application/api/model/Tasks.php b/application/api/model/Tasks.php index 20a0220b..27f86deb 100644 --- a/application/api/model/Tasks.php +++ b/application/api/model/Tasks.php @@ -291,6 +291,11 @@ class Tasks extends Model } $quantity_str= "({$progress}/{$v['target_quantity']})"; } + if($v['task_id'] == 35){ + //获胜数量 + $user_win_times = $user_daily_tasks['ext'] ?? 0; + $quantity_str.= "胜:(".$user_win_times.")场"; + } $v['task_name'] = $v['task_name'].$quantity_str; $v['jump_type_str'] = $this->jump_type[$v['jump_type']]; //返回任务列表 @@ -463,6 +468,78 @@ class Tasks extends Model } } + //PK任务完成 + public function tasks_complete_pk($Victory_user_ids,$Failure_user_ids,$Draw_user_ids,$task_id=35){ + $current_progress =1; + + //查询任务 + $task_info = Db::name('vs_tasks')->where('id',$task_id)->where('delete_time',0)->where('is_active',1)->find(); + if(empty($task_info)){ + return ['code' => 0, 'msg' => '任务不存在或已删除','data' => null]; + } + + $Victory_user_ids = explode(',',$Victory_user_ids); + $Failure_user_ids = explode(',',$Failure_user_ids); + $Draw_user_ids = explode(',',$Draw_user_ids); + if(empty($Draw_user_ids)){ + $user_ids = array_unique(array_merge($Victory_user_ids,$Failure_user_ids)); + }else{ + $user_ids = $Draw_user_ids; + } + $insert_data = []; + foreach ($user_ids as $user_id) { + $user_daily_tasks = Db::name('vs_tasks_user_daily')->where('user_id',$user_id)->where('task_id',$task_id)->whereTime('createtime', 'today')->find(); + if ($user_daily_tasks && $user_daily_tasks['is_completed'] == 1) { + return ['code' => 0, 'msg' => '您已完成该任务','data' => null]; + } + //本次是否获胜 + $ext = 0; + if ($user_daily_tasks) { + if(in_array($user_id,$Victory_user_ids)){ + //获胜数加1 + $ext = $user_daily_tasks['ext'] + 1; + } + $current_progress = $user_daily_tasks['current_progress'] +$current_progress; + if($current_progress >= $task_info['target_quantity'] && $user_daily_tasks['ext']==1){ + $is_completed = 1; + $completion_time = time(); + }else{ + $is_completed = 0; + $completion_time = null; + } + $reslut = Db::name('vs_tasks_user_daily')->where('id',$user_daily_tasks['id'])->update([ + 'current_progress' => $current_progress, + 'is_completed'=> $is_completed, + 'ext' => $ext, + 'completion_time' => $completion_time, + 'updatetime' => time(), + ]); + }else{ + if(in_array($user_id,$Victory_user_ids)){ + $ext = 1; + } + $insert_data[] = [ + 'user_id' => $user_id, + 'task_id' => $task_id, + 'current_progress' => $current_progress, + 'tasks_bag_id' => $task_info['tasks_bag_id'], + 'is_completed' => 1, + 'ext' => $ext, + 'createtime' => time(), + ]; + } + } + if (!empty($insert_data)) { + $reslut = Db::name('vs_tasks_user_daily')->insert($insert_data); + if ($reslut) { + return ['code' => 1, 'msg' => '操作成功','data' => null]; + } else { + return ['code' => 0, 'msg' => '操作失败','data' => null]; + } + } + return ['code' => 1, 'msg' => '操作成功','data' => null]; + } + //领取每日任务奖励 public function daily_tasks_receive($user_id,$task_id,$student_id = 0){ //查询是否实名认证