wesmiler 1 år sedan
förälder
incheckning
9827c6c9f3
1 ändrade filer med 16 tillägg och 0 borttagningar
  1. 16 0
      app/Services/Api/TaskService.php

+ 16 - 0
app/Services/Api/TaskService.php

@@ -252,6 +252,7 @@ class TaskService extends BaseService
         RedisService::set("caches:task:temp_{$userId}_{$scene}_{$sourceId}", ['datas'=>$taskList,'date'=>date('Y-m-d H:i:s')], 600);
         if($taskList){
             $hasDay = false;
+            $completeIds = [];
             foreach ($taskList as $item){
                 $item['status'] = 1;
                 $taskId = isset($item['id'])? $item['id'] : 0;
@@ -284,17 +285,24 @@ class TaskService extends BaseService
                 // 新手任务奖励
                 if($type == 2 && $item['status'] == 2) {
                     FinanceService::make()->settleTaskPower($userId, $power, $taskId, "完成{$taskName}任务奖励");
+                    $completeIds[] = $taskId;
                 }else if($type == 1 && $item['status'] == 2){
                     $hasDay = true;
                 }
             }
 
+            // 更新完成
+            if($completeIds){
+                TaskLogModel::whereIn('task_id',$completeIds)->update(['is_complete'=>1,'update_time'=>time()]);
+            }
+
             // 当前有每日任务,处理
             if($hasDay){
                 $dayTaskList = $this->getTaskByType(1);
                 if($dayTaskList){
                     $power = 0;
                     $completeCount = 0;
+                    $ids[] = [];
                     foreach ($dayTaskList as $item){
                         $taskId = isset($item['id'])? $item['id'] : 0;
                         $type = isset($item['type'])? $item['type'] : 1;
@@ -304,6 +312,7 @@ class TaskService extends BaseService
                         // 次数
                         if($item['check_type'] == 1 && $num<=$logNum){
                            $completeCount++;
+                            $completeIds[] = $taskId;
                         }
                         // 时长
                         else if($item['check_type'] == 2 && $logNum>0){
@@ -313,11 +322,18 @@ class TaskService extends BaseService
                         if($power<=0){
                             $power = isset($item['power'])? $item['power'] : 0;
                         }
+
+                        $ids[] = $taskId;
                     }
 
                     // 所有任务完成
                     if($completeCount == count($dayTaskList)){
                         FinanceService::make()->settleTaskPower($userId, $power, 0, "完成每日任务奖励");
+
+                        // 今日任务更新完成
+                        if($ids){
+                            TaskLogModel::whereIn('task_id',$ids)->where('date','>=',date('Y-m-d'))->update(['is_complete'=>1,'update_time'=>time()]);
+                        }
                     }
                 }
             }