Kaynağa Gözat

修復BUG-23,創建需求的同時可以選擇要關聯的項目

langshi 7 ay önce
ebeveyn
işleme
e374d54caf

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

@@ -19,6 +19,7 @@ use App\Models\Enums\FileObjectType;
 use App\Models\Enums\RequirementStatus;
 use App\Models\Enums\ObjectAction;
 use App\Models\Plan;
+use App\Models\ProjectRequirement;
 use App\Models\Requirement;
 use App\Repositories\ActionRepository;
 use App\Services\File\FileAssociationService;
@@ -85,8 +86,18 @@ class RequirementController extends Controller
             'description' => $request->description? (new \App\Services\File\ImageUrlService)->interceptImageUrl($request->description) : null,
             'created_by' => Auth::id(),
         ]);
-        $requirement->save();
-
+        DB::transaction(function () use ($requirement,$request) {
+            $requirement->save();
+            //如果选择了需求关联的项目,则同时进行关联
+            if ($request->project_id){
+                ProjectRequirement::query()->firstOrCreate([
+                    'project_id' => $request->project_id,
+                    'requirement_id' => $requirement->id,
+                    'asset_id' => $request->asset_id,
+                    'requirement_group_id'=> $request->requirement_group_id,
+                ]);
+            }
+        });
         ActionRepository::createRequirement(
             $requirement, ObjectAction::CREATED
         );

+ 5 - 0
app/Http/Requests/API/Requirement/CreateOrUpdateRequest.php

@@ -58,6 +58,11 @@ class CreateOrUpdateRequest extends FormRequest
                 'nullable',
                 'sometimes',
                 Rule::exists('requirement_groups', 'id')->where($this->userCompanyWhere()),
+            ],
+            'project_id' => [
+                'nullable',
+                'sometimes',
+                Rule::exists('projects', 'id')->where($this->userCompanyWhere()),
             ]
         ];
     }