Browse Source

取消已关联需求

kely 1 year ago
parent
commit
4c17501c45
1 changed files with 12 additions and 13 deletions
  1. 12 13
      app/Http/Controllers/API/ProjectController.php

+ 12 - 13
app/Http/Controllers/API/ProjectController.php

@@ -14,8 +14,6 @@ use App\Http\Resources\API\ProjectDetailResource;
 use App\Http\Resources\API\SimplePlanResource;
 use App\Http\Resources\API\ProjectRequirementResource;
 use App\Http\Resources\API\ProjectResource;
-use App\Http\Resources\API\RequirementResource;
-use App\Models\Asset;
 use App\Models\Enums\ObjectAction;
 use App\Models\Enums\ProjectStatus;
 use App\Models\Plan;
@@ -240,22 +238,23 @@ class ProjectController extends Controller
 
     public function unlinkRequirement(UnlinkRequirementRequest $request, string $id)
     {
-        $project = Project::findOrFail($id);
 
-        $requirement = Requirement::findOrFail($request->requirement_id);
+        $requirementIds = $request->get("requirement_id",[]);
+        $project = Project::findOrFail($id);
 
-        $exists = ProjectAsset::query()
-            ->where('project_id', $project->id)
-            ->where('asset_id', $requirement->asset_id)
-            ->count();
-        if (! $exists) {
+        if (! $requirementIds) {
             return $this->forbidden("Please select the correct requirement");
         }
 
-        ProjectRequirement::query()->where([
-            'project_id' => $project->id,
-            'requirement_id' => $requirement->id,
-        ])->delete();
+        if($project->requirements->isEmpty()){
+            return $this->forbidden("Project has no associated requirements");
+        }
+        foreach($requirementIds as $requirement){
+            ProjectRequirement::query()->where([
+                'project_id' => $project->id,
+                'requirement_id' => $requirement,
+            ])->delete();
+        }
 
         return $this->noContent();
     }