Browse Source

add status

visuddhinanda 1 year ago
parent
commit
ee51c770f5
1 changed files with 51 additions and 5 deletions
  1. 51 5
      api-v8/app/Http/Controllers/TaskGroupController.php

+ 51 - 5
api-v8/app/Http/Controllers/TaskGroupController.php

@@ -4,6 +4,9 @@ namespace App\Http\Controllers;
 
 use App\Models\Task;
 use App\Models\Project;
+use App\Models\TaskRelation;
+use App\Models\TaskAssignee;
+
 use Illuminate\Support\Facades\Log;
 
 use Illuminate\Http\Request;
@@ -57,15 +60,23 @@ class TaskGroupController extends Controller
         }
 
         $data = [];
+        $trData = [];
+        $taData = [];
         foreach ($input as $key => $project) {
             # code...
             $projectData = [];
+            $tasks = [];
+            $taskRelationData = [];
+            $taskAssigneesData = [];
             foreach ($project['tasks'] as $key => $task) {
+                $uuid = Str::uuid();
+                $tasks[$task['id']] = $uuid;
                 $projectData[] = [
-                    'id' => Str::uuid(),
+                    'id' => $uuid,
                     'old_id' => $task['id'],
                     'title' => $task['title'],
-                    'type' => $task['type'],
+                    'type' => 'instance',
+                    'status' => $task['status'],
                     'description' => $task['description'],
                     'order' => $task['order'],
                     'parent_id' => $task['parent_id'],
@@ -90,11 +101,46 @@ class TaskGroupController extends Controller
                 unset($projectData[$key]['old_id']);
             }
             $data = [...$data, ...$projectData];
+
+            //处理 task relation
+            $tasksId = array_keys($tasks);
+            $taskRelations = TaskRelation::whereIn('task_id', $tasksId)
+                ->get();
+            foreach ($taskRelations as $key => $value) {
+                $taskRelationData[] = [
+                    'task_id' => $tasks[$value->task_id],
+                    'next_task_id' => $tasks[$value->next_task_id],
+                    'editor_id' => $user['user_uid'],
+                    'created_at' => now(),
+                    'updated_at' => now(),
+                ];
+            }
+            $trData = [...$trData, ...$taskRelationData];
+
+            //处理 task assignee
+            $ta = TaskAssignee::whereIn('task_id', $tasksId)->get();
+            foreach ($ta as $key => $value) {
+                $taskAssigneesData[] = [
+                    'id' => Str::uuid(),
+                    'task_id' => $tasks[$value->task_id],
+                    'assignee_id' => $value->assignee_id,
+                    'editor_id' => $user['user_uid'],
+                    'created_at' => now(),
+                    'updated_at' => now(),
+                ];
+            }
+            $taData = [...$taData, ...$taskAssigneesData];
         }
 
-        $ok = Task::insert($data);
-        if ($ok) {
-            return $this->ok('ok');
+        $taskOk = Task::insert($data);
+        $taskRelationOk = TaskRelation::insert($trData);
+        $taskAssigneeOk = TaskAssignee::insert($taData);
+        if ($taskOk && $taskRelationOk && $taskAssigneeOk) {
+            return $this->ok([
+                'taskCount' => count($data),
+                'taskRelationCount' => count($trData),
+                'taskAssigneeCount' => count($taData),
+            ]);
         } else {
             return $this->error('error', 200, 200);
         }