新需求:PK任务 提交

This commit is contained in:
2026-01-20 10:23:32 +08:00
parent 8a2d171a28
commit 3ee7f1cf7e

View File

@@ -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){
//查询是否实名认证