visuddhinanda 1 год назад
Родитель
Сommit
bd46cd0252
1 измененных файлов с 62 добавлено и 50 удалено
  1. 62 50
      api-v8/app/Http/Api/TaskApi.php

+ 62 - 50
api-v8/app/Http/Api/TaskApi.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace App\Http\Api;
 
 use App\Models\Task;
@@ -8,36 +9,39 @@ use Illuminate\Support\Facades\App;
 use App\Tools\RedisClusters;
 use Illuminate\Support\Str;
 
-class TaskApi{
-    public static function getById($id){
-        if(!$id){
+class TaskApi
+{
+    public static function getById($id)
+    {
+        if (!$id) {
             return null;
         };
-        $task = Task::where('id',$id)->first();
-        if($task){
+        $task = Task::where('id', $id)->first();
+        if ($task) {
             return [
-                'id'=>$id,
-                'title'=>$task->title,
-                'description'=>$task->description,
+                'id' => $id,
+                'title' => $task->title,
+                'description' => $task->description,
             ];
-        }else{
+        } else {
             return null;
         }
     }
 
-    public static function getListByIds($ids){
-        if(!$ids){
+    public static function getListByIds($ids)
+    {
+        if (!$ids) {
             return null;
         };
-        $tasks = Task::whereIn('id',$ids)->get();
+        $tasks = Task::whereIn('id', $ids)->get();
         $output = array();
         foreach ($ids as $key => $id) {
             foreach ($tasks as $task) {
-                if($task->id === $id){
+                if ($task->id === $id) {
                     $output[] = [
-                        'id'=>$id,
-                        'title'=>$task->title,
-                        'description'=>$task->description,
+                        'id' => $id,
+                        'title' => $task->title,
+                        'description' => $task->description,
                     ];
                     continue;
                 };
@@ -46,77 +50,85 @@ class TaskApi{
         return $output;
     }
 
-    public static function setRelationTasks($taskId,$relationTasksId,$editor_id,$relation='pre'){
-        if($relation==='pre'){
+    public static function setRelationTasks($taskId, $relationTasksId, $editor_id, $relation = 'pre')
+    {
+        if ($relation === 'pre') {
             $where = 'next_task_id';
             $task1 = 'task_id';
             $task2 = 'next_task_id';
-        }else{
+        } else {
             $where = 'task_id';
             $task1 = 'next_task_id';
             $task2 = 'task_id';
         }
-        $delete = TaskRelation::where($where,$taskId)
-                        ->delete();
+        $delete = TaskRelation::where($where, $taskId)
+            ->delete();
         foreach ($relationTasksId as $key => $id) {
-            $data[] = [
-                $task1 => $id,
-                $task2 => $taskId,
-                'editor_id' => $editor_id,
-                'created_at' => now(),
-                'updated_at' => now(),
-            ];
+            if (Str::isUuid($taskId) && Str::isUuid($id)) {
+                $data[] = [
+                    $task1 => $id,
+                    $task2 => $taskId,
+                    'editor_id' => $editor_id,
+                    'created_at' => now(),
+                    'updated_at' => now(),
+                ];
+            }
         }
-        if(isset($data)){
+        if (isset($data)) {
             TaskRelation::insert($data);
         }
-        TaskApi::removeTaskRelationRedisKey($taskId,$relation);
+        TaskApi::removeTaskRelationRedisKey($taskId, $relation);
     }
-    public static function getRelationTasks($taskId,$relation='pre'){
-        $key = TaskApi::taskRelationRedisKey($taskId,$relation);
-        $data =RedisClusters::remember($key,3*24*3600,function() use($taskId,$relation){
-            if($relation==='pre'){
+    public static function getRelationTasks($taskId, $relation = 'pre')
+    {
+        $key = TaskApi::taskRelationRedisKey($taskId, $relation);
+        $data = RedisClusters::remember($key, 3 * 24 * 3600, function () use ($taskId, $relation) {
+            if ($relation === 'pre') {
                 $where = 'next_task_id';
                 $select = 'task_id';
-            }else{
+            } else {
                 $where = 'task_id';
                 $select = 'next_task_id';
             }
-            $tasks = TaskRelation::where($where,$taskId)
-                        ->select($select)->get();
+            $tasks = TaskRelation::where($where, $taskId)
+                ->select($select)->get();
             $tasksId = [];
             foreach ($tasks as $key => $task) {
                 $tasksId[] = $task[$select];
             }
             return TaskApi::getListByIds($tasksId);
-		});
+        });
         return $data;
     }
 
-    public static function getNextTasks($taskId){
-        return TaskApi::getRelationTasks($taskId,'next');
+    public static function getNextTasks($taskId)
+    {
+        return TaskApi::getRelationTasks($taskId, 'next');
     }
-    public static function getPreTasks($taskId){
-        return TaskApi::getRelationTasks($taskId,'pre');
+    public static function getPreTasks($taskId)
+    {
+        return TaskApi::getRelationTasks($taskId, 'pre');
     }
-    public static function removeTaskRelationRedisKey($taskId,$relation='pre'){
-                //查询相关task
-        $relations = TaskRelation::where('task_id',$taskId)
-                ->orWhere('next_task_id',$taskId)
-                ->select('task_id','next_task_id')->get();
+    public static function removeTaskRelationRedisKey($taskId, $relation = 'pre')
+    {
+        //查询相关task
+        $relations = TaskRelation::where('task_id', $taskId)
+            ->orWhere('next_task_id', $taskId)
+            ->select('task_id', 'next_task_id')->get();
         $relationsId = [];
         foreach ($relations as $key => $value) {
             $relationsId[$value->task_id] = 1;
             $relationsId[$value->next_task_id] = 1;
         }
         foreach ($relationsId as $taskId => $value) {
-            $key = TaskApi::taskRelationRedisKey($taskId,'pre');
+            $key = TaskApi::taskRelationRedisKey($taskId, 'pre');
             RedisClusters::forget($key);
-            $key = TaskApi::taskRelationRedisKey($taskId,'next');
+            $key = TaskApi::taskRelationRedisKey($taskId, 'next');
             RedisClusters::forget($key);
         }
     }
-    public static function taskRelationRedisKey($taskId,$relation='pre'){
+    public static function taskRelationRedisKey($taskId, $relation = 'pre')
+    {
         return "task/relation/{$relation}/{$taskId}";
     }
 }