Browse Source

feat:增加了设置值、设置权限的urd

景好勇 4 months ago
parent
commit
1ebf8bbdaf

+ 5 - 5
app/Admin/Controllers/SettingGroupController.php

@@ -62,7 +62,7 @@ class SettingGroupController extends AdminController
     }
 
     /**
-     * 获取设置分组列表
+     * [分组]获取设置分组列表
      *
      * @description 获取所有设置分组列表
      *
@@ -89,7 +89,7 @@ class SettingGroupController extends AdminController
     }
 
     /**
-     * 创建设置分组
+     * [分组]创建设置分组
      *
      * @description 创建新的设置分组
      *
@@ -113,7 +113,7 @@ class SettingGroupController extends AdminController
     }
 
     /**
-     * 更新设置分组
+     * [分组]更新设置分组
      *
      * @description 更新指定ID的设置分组
      *
@@ -133,7 +133,7 @@ class SettingGroupController extends AdminController
     }
 
     /**
-     * 删除设置分组
+     * [分组]删除设置分组
      *
      * @description 删除指定ID的设置分组
      *
@@ -149,7 +149,7 @@ class SettingGroupController extends AdminController
     }
 
     /**
-     * 获取设置分组详情
+     * [分组]获取设置分组详情
      *
      * @description 获取指定ID的设置分组详情
      *

+ 5 - 5
app/Admin/Controllers/SettingItemController.php

@@ -80,7 +80,7 @@ class SettingItemController extends AdminController
     }
 
     /**
-     * 获取设置项列表
+     * [项]获取设置项列表
      *
      * @description 获取所有设置项列表
      *
@@ -115,7 +115,7 @@ class SettingItemController extends AdminController
     }
 
     /**
-     * 创建设置项
+     * [项]创建设置项
      *
      * @description 创建新的设置项
      *
@@ -148,7 +148,7 @@ class SettingItemController extends AdminController
     }
 
     /**
-     * 更新设置项
+     * [项]更新设置项
      *
      * @description 更新指定ID的设置项
      *
@@ -174,7 +174,7 @@ class SettingItemController extends AdminController
     }
 
     /**
-     * 删除设置项
+     * [项]删除设置项
      *
      * @description 删除指定ID的设置项
      *
@@ -190,7 +190,7 @@ class SettingItemController extends AdminController
     }
 
     /**
-     * 获取设置项详情
+     * [项]获取设置项详情
      *
      * @description 获取指定ID或code的设置项详情
      *

+ 174 - 49
app/Admin/Controllers/SettingPermissionController.php

@@ -6,62 +6,187 @@ use App\Services\SettingPermissionService;
 use Slowlyo\OwlAdmin\Controllers\AdminController;
 
 /**
+ * @group 后台
+ *
  * 设置权限管理
  *
  * @property SettingPermissionService $service
  */
 class SettingPermissionController extends AdminController
 {
-	protected string $serviceName = SettingPermissionService::class;
+    protected string $serviceName = SettingPermissionService::class;
+
+    public function list()
+    {
+        $crud = $this->baseCRUD()
+            ->filterTogglable(false)
+            ->headerToolbar([
+                $this->createButton('dialog'),
+                ...$this->baseHeaderToolBar()
+            ])
+            ->columns([
+                amis()->TableColumn('id', 'ID')->sortable(),
+                amis()->TableColumn('item_id', '设置项ID'),
+                amis()->TableColumn('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
+                amis()->TableColumn('can_edit', '是否可编辑'),
+                amis()->TableColumn('min_value', '最小值限制'),
+                amis()->TableColumn('max_value', '最大值限制'),
+                amis()->TableColumn('options', '可选值限制'),
+                amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
+                amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
+                $this->rowActions('dialog')
+            ]);
+
+        return $this->baseList($crud);
+    }
+
+    public function form($isEdit = false)
+    {
+        return $this->baseForm()->body([
+            amis()->TextControl('item_id', '设置项ID'),
+            amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
+            amis()->TextControl('can_edit', '是否可编辑'),
+            amis()->TextControl('min_value', '最小值限制'),
+            amis()->TextControl('max_value', '最大值限制'),
+            amis()->TextControl('options', '可选值限制'),
+        ]);
+    }
+
+    public function detail()
+    {
+        return $this->baseDetail()->body([
+            amis()->TextControl('id', 'ID')->static(),
+            amis()->TextControl('item_id', '设置项ID')->static(),
+            amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH')->static(),
+            amis()->TextControl('can_edit', '是否可编辑')->static(),
+            amis()->TextControl('min_value', '最小值限制')->static(),
+            amis()->TextControl('max_value', '最大值限制')->static(),
+            amis()->TextControl('options', '可选值限制')->static(),
+            amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
+            amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
+        ]);
+    }
+    /**
+     * [权限]获取设置权限列表
+     *
+     * @description 获取所有设置权限列表
+     *
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型
+     * @param int perPage 每页数量
+     *
+     * @response {
+     *  "data": [
+     *    {
+     *      "id": 1,
+     *      "item_id": 1,
+     *      "object_type": "PLATFORM",
+     *      "can_edit": 1,
+     *      "min_value": 0,
+     *      "max_value": 100,
+     *      "options": null,
+     *      "created_at": "2023-01-01 00:00:00",
+     *      "updated_at": "2023-01-01 00:00:00"
+     *    }
+     *  ]
+     * }
+     */
+    public function getPermissionList()
+    {
+        return $this->response()->success(
+            $this->service->list(request()->all())
+        );
+    }
 
-	public function list()
-	{
-		$crud = $this->baseCRUD()
-			->filterTogglable(false)
-			->headerToolbar([
-				$this->createButton('dialog'),
-				...$this->baseHeaderToolBar()
-			])
-			->columns([
-				amis()->TableColumn('id', 'ID')->sortable(),
-				amis()->TableColumn('item_id', '设置项ID'),
-				amis()->TableColumn('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
-				amis()->TableColumn('can_edit', '是否可编辑'),
-				amis()->TableColumn('min_value', '最小值限制'),
-				amis()->TableColumn('max_value', '最大值限制'),
-				amis()->TableColumn('options', '可选值限制'),
-				amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
-				amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
-				$this->rowActions('dialog')
-			]);
+    /**
+     * [权限]创建设置权限
+     *
+     * @description 创建新的设置权限
+     *
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型:PLATFORM,AGENT,SHOP,COACH
+     * @param int can_edit 是否可编辑
+     * @param float min_value 最小值限制
+     * @param float max_value 最大值限制
+     * @param json options 可选值限制
+     *
+     * @response {
+     *   "item_id": 1,
+     *   "object_type": "PLATFORM",
+     *   "can_edit": 1,
+     *   "min_value": 0,
+     *   "max_value": 100,
+     *   "options": null
+     * }
+     */
+    public function createPermission()
+    {
+        return $this->response()->success(
+            $this->service->store(request()->all())
+        );
+    }
 
-		return $this->baseList($crud);
-	}
+    /**
+     * [权限]更新设置权限
+     *
+     * @description 更新指定ID的设置权限
+     *
+     * @param int id 权限ID
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型:PLATFORM,AGENT,SHOP,COACH
+     * @param int can_edit 是否可编辑
+     * @param float min_value 最小值限制
+     * @param float max_value 最大值限制
+     * @param json options 可选值限制
+     *
+     * @response true
+     */
+    public function updatePermission($id)
+    {
+        return $this->response()->success(
+            $this->service->update($id, request()->all())
+        );
+    }
 
-	public function form($isEdit = false)
-	{
-		return $this->baseForm()->body([
-			amis()->TextControl('item_id', '设置项ID'),
-			amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
-			amis()->TextControl('can_edit', '是否可编辑'),
-			amis()->TextControl('min_value', '最小值限制'),
-			amis()->TextControl('max_value', '最大值限制'),
-			amis()->TextControl('options', '可选值限制'),
-		]);
-	}
+    /**
+     * [权限]删除设置权限
+     *
+     * @description 删除指定ID的设置权限
+     *
+     * @param int id 权限ID
+     *
+     * @response true
+     */
+    public function deletePermission($id)
+    {
+        return $this->response()->success(
+            $this->service->destroy($id)
+        );
+    }
 
-	public function detail()
-	{
-		return $this->baseDetail()->body([
-			amis()->TextControl('id', 'ID')->static(),
-			amis()->TextControl('item_id', '设置项ID')->static(),
-			amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH')->static(),
-			amis()->TextControl('can_edit', '是否可编辑')->static(),
-			amis()->TextControl('min_value', '最小值限制')->static(),
-			amis()->TextControl('max_value', '最大值限制')->static(),
-			amis()->TextControl('options', '可选值限制')->static(),
-			amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
-			amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
-		]);
-	}
-}
+    /**
+     * [权限]获取设置权限详情
+     *
+     * @description 获取指定ID的设置权限详情
+     *
+     * @param int id 权限ID
+     *
+     * @response {
+     *   "id": 1,
+     *   "item_id": 1,
+     *   "object_type": "PLATFORM",
+     *   "can_edit": 1,
+     *   "min_value": 0,
+     *   "max_value": 100,
+     *   "options": null,
+     *   "created_at": "2023-01-01 00:00:00",
+     *   "updated_at": "2023-01-01 00:00:00"
+     * }
+     */
+    public function getPermissionDetail($id)
+    {
+        return $this->response()->success(
+            $this->service->detail($id)
+        );
+    }
+}

+ 163 - 47
app/Admin/Controllers/SettingValueController.php

@@ -6,56 +6,172 @@ use App\Services\SettingValueService;
 use Slowlyo\OwlAdmin\Controllers\AdminController;
 
 /**
+ * @group 后台
+ *
  * 设置值管理
  *
  * @property SettingValueService $service
  */
 class SettingValueController extends AdminController
 {
-	protected string $serviceName = SettingValueService::class;
-
-	public function list()
-	{
-		$crud = $this->baseCRUD()
-			->filterTogglable(false)
-			->headerToolbar([
-				$this->createButton('dialog'),
-				...$this->baseHeaderToolBar()
-			])
-			->columns([
-				amis()->TableColumn('id', 'ID')->sortable(),
-				amis()->TableColumn('item_id', '设置项ID'),
-				amis()->TableColumn('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
-				amis()->TableColumn('object_id', '业务对象ID'),
-				amis()->TableColumn('value', '设置值'),
-				amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
-				amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
-				$this->rowActions('dialog')
-			]);
-
-		return $this->baseList($crud);
-	}
-
-	public function form($isEdit = false)
-	{
-		return $this->baseForm()->body([
-			amis()->TextControl('item_id', '设置项ID'),
-			amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
-			amis()->TextControl('object_id', '业务对象ID'),
-			amis()->TextControl('value', '设置值'),
-		]);
-	}
-
-	public function detail()
-	{
-		return $this->baseDetail()->body([
-			amis()->TextControl('id', 'ID')->static(),
-			amis()->TextControl('item_id', '设置项ID')->static(),
-			amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH')->static(),
-			amis()->TextControl('object_id', '业务对象ID')->static(),
-			amis()->TextControl('value', '设置值')->static(),
-			amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
-			amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
-		]);
-	}
-}
+    protected string $serviceName = SettingValueService::class;
+
+    public function list()
+    {
+        $crud = $this->baseCRUD()
+            ->filterTogglable(false)
+            ->headerToolbar([
+                $this->createButton('dialog'),
+                ...$this->baseHeaderToolBar()
+            ])
+            ->columns([
+                amis()->TableColumn('id', 'ID')->sortable(),
+                amis()->TableColumn('item_id', '设置项ID'),
+                amis()->TableColumn('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
+                amis()->TableColumn('object_id', '业务对象ID'),
+                amis()->TableColumn('value', '设置值'),
+                amis()->TableColumn('created_at', admin_trans('admin.created_at'))->type('datetime')->sortable(),
+                amis()->TableColumn('updated_at', admin_trans('admin.updated_at'))->type('datetime')->sortable(),
+                $this->rowActions('dialog')
+            ]);
+
+        return $this->baseList($crud);
+    }
+
+    public function form($isEdit = false)
+    {
+        return $this->baseForm()->body([
+            amis()->TextControl('item_id', '设置项ID'),
+            amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH'),
+            amis()->TextControl('object_id', '业务对象ID'),
+            amis()->TextControl('value', '设置值'),
+        ]);
+    }
+
+    public function detail()
+    {
+        return $this->baseDetail()->body([
+            amis()->TextControl('id', 'ID')->static(),
+            amis()->TextControl('item_id', '设置项ID')->static(),
+            amis()->TextControl('object_type', '业务对象类型:PLATFORM,AGENT,SHOP,COACH')->static(),
+            amis()->TextControl('object_id', '业务对象ID')->static(),
+            amis()->TextControl('value', '设置值')->static(),
+            amis()->TextControl('created_at', admin_trans('admin.created_at'))->static(),
+            amis()->TextControl('updated_at', admin_trans('admin.updated_at'))->static(),
+        ]);
+    }
+    /**
+     * [值]获取设置值列表
+     *
+     * @description 获取所有设置值列表
+     *
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型
+     * @param int object_id 业务对象ID
+     * @param int perPage 每页数量
+     *
+     * @response {
+     *  "data": [
+     *    {
+     *      "id": 1,
+     *      "item_id": 1,
+     *      "object_type": "PLATFORM",
+     *      "object_id": 1,
+     *      "value": "示例值",
+     *      "created_at": "2023-01-01 00:00:00",
+     *      "updated_at": "2023-01-01 00:00:00"
+     *    }
+     *  ]
+     * }
+     */
+    public function getValueList()
+    {
+        return $this->response()->success(
+            $this->service->list(request()->all())
+        );
+    }
+
+    /**
+     * [值]创建设置值
+     *
+     * @description 创建新的设置值
+     *
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型:PLATFORM,AGENT,SHOP,COACH
+     * @param int object_id 业务对象ID
+     * @param string value 设置值
+     *
+     * @response {
+     *   "item_id": 1,
+     *   "object_type": "PLATFORM",
+     *   "object_id": 1,
+     *   "value": "示例值"
+     * }
+     */
+    public function createValue()
+    {
+        return $this->response()->success(
+            $this->service->store(request()->all())
+        );
+    }
+
+    /**
+     * [值]更新设置值
+     *
+     * @description 更新指定ID的设置值
+     *
+     * @param int id 设置值ID
+     * @param int item_id 设置项ID
+     * @param string object_type 业务对象类型:PLATFORM,AGENT,SHOP,COACH
+     * @param int object_id 业务对象ID
+     * @param string value 设置值
+     *
+     * @response true
+     */
+    public function updateValue($id)
+    {
+        return $this->response()->success(
+            $this->service->update($id, request()->all())
+        );
+    }
+
+    /**
+     * [值]删除设置值
+     *
+     * @description 删除指定ID的设置值
+     *
+     * @param int id 设置值ID
+     *
+     * @response true
+     */
+    public function deleteValue($id)
+    {
+        return $this->response()->success(
+            $this->service->destroy($id)
+        );
+    }
+
+    /**
+     * [值]获取设置值详情
+     *
+     * @description 获取指定ID的设置值详情
+     *
+     * @param int id 设置值ID
+     *
+     * @response {
+     *   "id": 1,
+     *   "item_id": 1,
+     *   "object_type": "PLATFORM",
+     *   "object_id": 1,
+     *   "value": "示例值",
+     *   "created_at": "2023-01-01 00:00:00",
+     *   "updated_at": "2023-01-01 00:00:00"
+     * }
+     */
+    public function getValueDetail($id)
+    {
+        return $this->response()->success(
+            $this->service->detail($id)
+        );
+    }
+}

+ 28 - 0
routes/web.php

@@ -61,4 +61,32 @@ Route::group([
         // 获取设置项详情
         Route::get('/{id}', [\App\Admin\Controllers\SettingItemController::class, 'getItemDetail']);
     });
+
+    // 设置权限管理路由
+    Route::group(['prefix' => 'setting-permissions'], function () {
+        // 获取设置权限列表
+        Route::get('/', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionList']);
+        // 创建设置权限
+        Route::post('/', [\App\Admin\Controllers\SettingPermissionController::class, 'createPermission']);
+        // 更新设置权限
+        Route::put('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'updatePermission']);
+        // 删除设置权限
+        Route::delete('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'deletePermission']);
+        // 获取设置权限详情
+        Route::get('/{id}', [\App\Admin\Controllers\SettingPermissionController::class, 'getPermissionDetail']);
+    });
+
+    // 设置值管理路由
+    Route::group(['prefix' => 'setting-values'], function () {
+        // 获取设置值列表
+        Route::get('/', [\App\Admin\Controllers\SettingValueController::class, 'getValueList']);
+        // 创建设置值
+        Route::post('/', [\App\Admin\Controllers\SettingValueController::class, 'createValue']);
+        // 更新设置值
+        Route::put('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'updateValue']);
+        // 删除设置值
+        Route::delete('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'deleteValue']);
+        // 获取设置值详情
+        Route::get('/{id}', [\App\Admin\Controllers\SettingValueController::class, 'getValueDetail']);
+    });
 });

+ 1 - 1
script/bin/myapidoc

@@ -10,7 +10,7 @@ fi
 # 监听控制器文件变更并自动重新生成文档
 while true; do
     # 检测控制器目录变更,仅监听文件修改事件
-    inotifywait -r -e close_write,create,delete ./app/Http/Controllers
+    inotifywait -r -e close_write,create,delete ./app/Http/Controllers ./app/Admin/Controllers
     sleep 5
 
     # 清除缓存并重新生成文档