Browse Source

需求分组修改company_id为asset_id,添加搜索

kely 1 year ago
parent
commit
2f6aa092ad

+ 4 - 5
app/Http/Controllers/API/RequirementGroupController.php

@@ -15,9 +15,9 @@ class RequirementGroupController extends Controller
     /**
      * Display a listing of the resource.
      */
-    public function index()
+    public function index(Request $request)
     {
-        $groups = RequirementGroup::query()->get();
+        $groups = RequirementGroup::filter($request->all())->get();
 
         return RequirementGroupResource::collection($groups);
     }
@@ -28,8 +28,7 @@ class RequirementGroupController extends Controller
     public function store(CreateOrUpdateRequest $request)
     {
         RequirementGroup::create([
-            ...$request->all(),
-            'company_id' => Auth::user()->company_id,
+            ...$request->all()
         ]);
 
         return $this->created();
@@ -42,7 +41,7 @@ class RequirementGroupController extends Controller
     {
         $groups = RequirementGroup::findOrFail($id);
 
-        return new AssetGroupResource($groups);
+        return new RequirementGroupResource($groups);
     }
 
     /**

+ 9 - 0
app/Http/Requests/API/RequirementGroup/CreateOrUpdateRequest.php

@@ -2,10 +2,15 @@
 
 namespace App\Http\Requests\API\RequirementGroup;
 
+use App\Http\Requests\RuleHelper;
 use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Validation\Rule;
 
+/**
+ */
 class CreateOrUpdateRequest extends FormRequest
 {
+    use RuleHelper;
     /**
      * Determine if the user is authorized to make this request.
      */
@@ -22,6 +27,10 @@ class CreateOrUpdateRequest extends FormRequest
     public function rules(): array
     {
         return [
+            'asset_id' => [
+                'required',
+                Rule::exists('assets', 'id')->where($this->userCompanyWhere()),
+            ],
             'name' => 'required|max:255',
             'abbr_name' => 'required|max:30',
         ];

+ 21 - 0
app/ModelFilters/RequirementGroupFilter.php

@@ -0,0 +1,21 @@
+<?php
+/**
+ * Created by IntelliJ IDEA.
+ * User: kelyliang
+ * Date: 2024/2/27
+ * Time: 下午 04:33
+ */
+
+namespace App\ModelFilters;
+
+use EloquentFilter\ModelFilter;
+
+class RequirementGroupFilter extends ModelFilter
+{
+    public $relations = [];
+
+    public function name($name): ModelFilter
+    {
+        return $this->where('name', 'like', "%$name%");
+    }
+}

+ 3 - 2
app/Models/RequirementGroup.php

@@ -2,14 +2,15 @@
 
 namespace App\Models;
 
+use EloquentFilter\Filterable;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
 
 class RequirementGroup extends Model
 {
-    use HasFactory;
+    use HasFactory,Filterable;
 
     protected $fillable = [
-        'name', 'abbr_name', 'company_id'
+        'name', 'abbr_name', 'asset_id'
     ];
 }

+ 32 - 0
database/migrations/2024_02_27_080459_rm_company_id_andadd_asset_id_to_requirements_groups.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('requirement_groups', function (Blueprint $table) {
+            //
+            $table->dropColumn('company_id');
+            $table->integer('asset_id');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('requirement_groups', function (Blueprint $table) {
+            //
+            $table->integer('company_id');
+            $table->dropColumn('asset_id');
+        });
+    }
+};