Browse Source

处理ditto请求参数(需求批量添加)

langshiyeye 1 year ago
parent
commit
98b7bd36e9

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

@@ -131,13 +131,16 @@ class RequirementController extends Controller
         $requirementsData = $request->all();
         $companyId = Auth::user()->company_id;
         $created_by = Auth::id();
-
         DB::transaction(function () use ($requirementsData,$companyId,$created_by) {
-            foreach ($requirementsData as $data) {
+            foreach ($requirementsData as $k => $data) {
                 $requirement = new Requirement();
                 $requirement->mergeFillable([
                     'company_id', 'created_by',
                 ]);
+                if($k != 0){
+                    $data["requirement_group_id"] = $data["requirement_group_id"] == 'ditto'? $requirementsData[$k-1]["requirement_group_id"]:$data["requirement_group_id"];
+                    $data["priority"] = $data["priority"] == 'ditto'? $requirementsData[$k-1]["priority"]:$data["priority"];
+                }
                 $requirement->fill([
                     ...$data,
                     'company_id' => $companyId,

+ 13 - 3
app/Http/Requests/API/Requirement/BatchCreateRequest.php

@@ -4,6 +4,7 @@ namespace App\Http\Requests\API\Requirement;
 
 use App\Http\Requests\RuleHelper;
 use App\Models\Enums\RequirementStatus;
+use App\Models\RequirementGroup;
 use App\Models\User;
 use Illuminate\Foundation\Http\FormRequest;
 use Illuminate\Support\Facades\Auth;
@@ -29,18 +30,27 @@ class BatchCreateRequest extends FormRequest
      */
     public function rules(): array
     {
+        $requirementGroupIds = RequirementGroup::where('company_id',Auth::user()->company_id)->pluck('id')->toArray();
+        $IdsAndDitto[]='ditto';
         return [
             '*.title' => 'required|max:255',
             '*.asset_id' => [
                 'required',
                 Rule::exists('assets', 'id')->where($this->userCompanyWhere()),
             ],
-            '*.priority' => 'required|in:1,2,3,4',
+            '*.priority' => 'required|in:1,2,3,4,ditto',
+            '0.priority' => 'required|in:1,2,3,4', //第一个元素不能为ditto
             '*.requirement_group_id' => [
                 'nullable',
                 'sometimes',
-                Rule::exists('requirement_groups', 'id')->where($this->userCompanyWhere()),
-            ]
+                Rule::in($IdsAndDitto),
+            ],
+            '0.requirement_group_id' => [ // 第一个元素不能为ditto
+                'nullable',
+                'sometimes',
+                Rule::in($requirementGroupIds),
+            ],
+
             ];
     }
 }