Browse Source

修复对需求进行开启和关闭相关问题

kely 11 months ago
parent
commit
65db4f63be

+ 3 - 2
app/Http/Controllers/API/RequirementController.php

@@ -11,6 +11,7 @@ use App\Http\Resources\API\AssetRequirementResource;
 use App\Http\Resources\API\RequirementResource;
 use App\Models\Asset;
 use App\Models\Enums\RequirementStatus;
+use App\Models\Enums\ObjectAction;
 use App\Models\Plan;
 use App\Models\Requirement;
 use App\Repositories\ActionRepository;
@@ -101,7 +102,7 @@ class RequirementController extends Controller
         $requiremen->status = RequirementStatus::CLOSED->value;
         $requiremen->save();
 
-        ActionRepository::createByProject($requiremen, ObjectAction::CLOSED, $request->get("comment"));
+        ActionRepository::createRequirement($requiremen, ObjectAction::CLOSED, $request->get("comment"));
 
 
          return $this->noContent();
@@ -113,7 +114,7 @@ class RequirementController extends Controller
         $requiremen->status = RequirementStatus::ACTIVE->value;
         $requiremen->save();
 
-        ActionRepository::createByProject($requiremen, ObjectAction::STARTED, $request->get("comment"));
+        ActionRepository::createRequirement($requiremen, ObjectAction::STARTED, $request->get("comment"));
 
         return $this->noContent();
     }

+ 4 - 0
app/Models/Enums/ActionObjectType.php

@@ -5,6 +5,7 @@ namespace App\Models\Enums;
 use App\Models\Asset;
 use App\Models\Plan;
 use App\Models\Project;
+use App\Models\Requirement;
 use App\Models\Task;
 
 enum ActionObjectType: string
@@ -13,6 +14,8 @@ enum ActionObjectType: string
 
     case PROJECT = "project";
 
+    case REQUIREMENT="requirement";
+
     case TASK = "task";
 
     case PLAN = "plan";
@@ -24,6 +27,7 @@ enum ActionObjectType: string
             self::PROJECT => Project::query(),
             self::TASK => Task::query(),
             self::PLAN => Plan::query(),
+            self::REQUIREMENT => Requirement::query(),
         };
     }
 

+ 23 - 5
app/Repositories/ActionRepository.php

@@ -6,6 +6,7 @@ use App\Models\Action;
 use App\Models\Enums\ActionObjectType;
 use App\Models\Enums\ObjectAction;
 use App\Models\Project;
+use App\Models\Requirement;
 use Carbon\Carbon;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Auth;
@@ -33,11 +34,11 @@ class ActionRepository
     }
 
     public static function createByProject(
-        Project $project,
-        ObjectAction $action,
-        string $comment = null,
-        array $extraFields = []
-    ): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder
+    Project $project,
+    ObjectAction $action,
+    string $comment = null,
+    array $extraFields = []
+): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder
     {
         return self::create(
             $project->id,
@@ -49,6 +50,23 @@ class ActionRepository
         );
     }
 
+     public static function createRequirement(
+    Requirement $requiremen,
+    ObjectAction $action,
+    string $comment = null,
+    array $extraFields = []
+): \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Builder
+    {
+        return self::create(
+            $requiremen->id,
+            ActionObjectType::REQUIREMENT,
+            $action,
+            $requiremen->id,
+            $comment,
+            $extraFields
+        );
+    }
+
     public static function latestDynamic(Project $project)
     {
         $actions = Action::query()