From 948343e294e2ed05e0e6ee441d0278492ba99a6a Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Mon, 10 Apr 2023 09:39:18 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/services/system/SystemRouteServices.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crmeb/app/services/system/SystemRouteServices.php b/crmeb/app/services/system/SystemRouteServices.php index 41a82d8cd..2d0fb0339 100644 --- a/crmeb/app/services/system/SystemRouteServices.php +++ b/crmeb/app/services/system/SystemRouteServices.php @@ -100,7 +100,7 @@ class SystemRouteServices extends BaseServices $route = $this->app->route->getRuleList(); $action_arr = ['index', 'read', 'create', 'save', 'edit', 'update', 'delete']; - + foreach ($route as &$item) { $real_name = $item['option']['real_name'] ?? ''; if (is_array($real_name)) { @@ -124,6 +124,16 @@ class SystemRouteServices extends BaseServices */ public function syncRoute(string $app = 'adminapi') { + $id = app()->make(SystemRouteCateServices::class)->value(['app_name' => $app, 'name' => '全部权限', 'pid' => 0], 'id'); + if (!$id) { + $res = app()->make(SystemRouteCateServices::class)->save([ + 'app_name' => $app, + 'name' => '全部权限', + 'pid' => 0, + 'add_time' => time(), + ]); + $id = $res->id; + } $listAll = $this->getRouteListAll($app); //保持新增的权限路由 $data = $this->dao->selectList(['app_name' => $app], 'path,method')->toArray(); @@ -133,6 +143,7 @@ class SystemRouteServices extends BaseServices $save[] = [ 'name' => $item['option']['real_name'] ?? $item['name'], 'path' => $item['rule'], + 'cate_id' => $id, 'app_name' => $app, 'type' => isset($item['option']['is_common']) && $item['option']['is_common'] ? 1 : 0, 'method' => $item['method'], From 53a95dbc0c9d43b036557294e58e9a0b2e419954 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Mon, 10 Apr 2023 10:09:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/v1/setting/SystemRoute.php | 67 ++++--------------- crmeb/app/adminapi/route/system.php | 15 ++--- crmeb/app/model/system/SystemRoute.php | 41 ++++++++++++ .../services/system/SystemRouteServices.php | 18 +++++ 4 files changed, 78 insertions(+), 63 deletions(-) diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php index f2ecd08d2..21c477297 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php @@ -87,17 +87,6 @@ class SystemRoute extends AuthController return app('json')->success($this->services->getTreeList($where)); } - /** - * 创建 - * @return \think\Response - * @author 等风来 - * @email 136327134@qq.com - * @date 2023/4/7 - */ - public function create() - { - return app('json')->success($this->services->getFrom(0, $this->request->get('app_name', 'adminapi'))); - } /** * @return \think\Response @@ -105,7 +94,7 @@ class SystemRoute extends AuthController * @email 136327134@qq.com * @date 2023/4/7 */ - public function save() + public function save($id = 0) { $data = $this->request->getMore([ ['cate_id', 0], @@ -114,6 +103,11 @@ class SystemRoute extends AuthController ['method', ''], ['type', 0], ['app_name', ''], + ['request', []], + ['response', []], + ['request_example', []], + ['response_example', []], + ['describe', ''], ]); if (!$data['name']) { @@ -128,10 +122,13 @@ class SystemRoute extends AuthController if (!$data['app_name']) { return app('json')->fail('缺少应用名参数'); } + if ($id) { + $this->services->update($id, $data); + } else { + $this->services->save($data); + } - $this->services->save($data); - - return app('json')->success('添加成功'); + return app('json')->success($id ? '修改成功' : '添加成功'); } /** @@ -141,45 +138,9 @@ class SystemRoute extends AuthController * @email 136327134@qq.com * @date 2023/4/7 */ - public function edit($id) + public function read($id) { - return app('json')->success($this->services->getFrom($id, $this->request->get('app_name', 'adminapi'))); - } - - /** - * @param $id - * @return \think\Response - * @author 等风来 - * @email 136327134@qq.com - * @date 2023/4/7 - */ - public function update($id) - { - $data = $this->request->getMore([ - ['cate_id', 0], - ['name', ''], - ['path', ''], - ['method', ''], - ['type', 0], - ['app_name', ''], - ]); - - if (!$data['name']) { - return app('json')->fail('请输入路由名称'); - } - if (!$data['path']) { - return app('json')->fail('请输入路由路径'); - } - if (!$data['method']) { - return app('json')->fail('请选择路由请求方式'); - } - if (!$data['app_name']) { - return app('json')->fail('缺少应用名参数'); - } - - $this->services->update($id, $data); - - return app('json')->success('修改成功'); + return app('json')->success($this->services->getInfo((int)$id)); } /** diff --git a/crmeb/app/adminapi/route/system.php b/crmeb/app/adminapi/route/system.php index 9886a78d2..b6a2cc838 100644 --- a/crmeb/app/adminapi/route/system.php +++ b/crmeb/app/adminapi/route/system.php @@ -115,16 +115,11 @@ Route::group('system', function () { //获取路由tree行数据 Route::get('route/tree', 'v1.system.SystemRoute/tree')->option(['real_name' => '获取路由tree']); //权限路由 - Route::resource('route', 'v1.setting.SystemRoute')->option([ - 'real_name' => [ - 'index' => '获取路由列表', - 'create' => '获取创建路由表单', - 'save' => '保存路由', - 'edit' => '获取修改路由表单', - 'update' => '修改路由', - 'delete' => '删除路由' - ], - ]); + Route::delete('route/:id', 'v1.setting.SystemRoute/delete')->option(['real_name' => '删除路由权限']); + //查看路由权限 + Route::get('route/:id', 'v1.setting.SystemRoute/read')->option(['real_name' => '查看路由权限']); + //保存路由权限 + Route::post('route/:id', 'v1.setting.SystemRoute/save')->option(['real_name' => '保存路由权限']); //路由分类 Route::resource('route_cate', 'v1.setting.SystemRouteCate')->option([ 'real_name' => [ diff --git a/crmeb/app/model/system/SystemRoute.php b/crmeb/app/model/system/SystemRoute.php index 9465b46cc..e489750fd 100644 --- a/crmeb/app/model/system/SystemRoute.php +++ b/crmeb/app/model/system/SystemRoute.php @@ -45,4 +45,45 @@ class SystemRoute extends BaseModel $query->where('name|path', 'LIKE', '%' . $value . '%'); } } + + public function setRequestAttr($value) + { + return json_encode($value); + } + + public function getRequestAttr($value) + { + return json_decode($value, true); + } + + public function setResponseAttr($value) + { + return json_encode($value); + } + + public function getResponseAttr($value) + { + return json_decode($value, true); + } + + public function setRequestExampleAttr($value) + { + return json_encode($value); + } + + public function getRequestExampleAttr($value) + { + return json_decode($value, true); + } + + + public function setResponseExampleAttr($value) + { + return json_encode($value); + } + + public function getResponseExampleAttr($value) + { + return json_decode($value, true); + } } diff --git a/crmeb/app/services/system/SystemRouteServices.php b/crmeb/app/services/system/SystemRouteServices.php index 2d0fb0339..bfa4f8ddb 100644 --- a/crmeb/app/services/system/SystemRouteServices.php +++ b/crmeb/app/services/system/SystemRouteServices.php @@ -17,6 +17,7 @@ namespace app\services\system; use app\dao\system\SystemRouteDao; use app\services\BaseServices; use crmeb\services\FormBuilder; +use think\exception\ValidateException; use think\helper\Str; /** @@ -53,6 +54,23 @@ class SystemRouteServices extends BaseServices return compact('list', 'count'); } + /** + * @param int $id + * @return array + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/10 + */ + public function getInfo(int $id) + { + $routeInfo = $this->dao->get($id); + if (!$routeInfo) { + throw new ValidateException('修改的路由不存在'); + } + + return $routeInfo->toArray(); + } + /** * 获取tree数据 * @param string $appName From e682459ac35dffe0d35a231bad672340e26c3457 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Mon, 10 Apr 2023 10:23:23 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/adminapi/controller/v1/setting/SystemRoute.php | 1 + 1 file changed, 1 insertion(+) diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php index 21c477297..64aad763b 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php @@ -50,6 +50,7 @@ class SystemRoute extends AuthController public function syncRoute(string $appName = 'adminapi') { $this->services->syncRoute($appName); + return app('json')->success(); } From c47a3a19603c5787a7523ce9f9ab58ddafe5d514 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Mon, 10 Apr 2023 10:25:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/adminapi/controller/v1/setting/SystemRoute.php | 2 +- crmeb/app/adminapi/route/system.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php index 64aad763b..8b42fe273 100644 --- a/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php +++ b/crmeb/app/adminapi/controller/v1/setting/SystemRoute.php @@ -50,7 +50,7 @@ class SystemRoute extends AuthController public function syncRoute(string $appName = 'adminapi') { $this->services->syncRoute($appName); - + return app('json')->success(); } diff --git a/crmeb/app/adminapi/route/system.php b/crmeb/app/adminapi/route/system.php index b6a2cc838..26d806a87 100644 --- a/crmeb/app/adminapi/route/system.php +++ b/crmeb/app/adminapi/route/system.php @@ -113,7 +113,7 @@ Route::group('system', function () { //同步路由接口 Route::get('route/sync_route/[:appName]', 'v1.system.SystemRoute/syncRoute')->option(['real_name' => '同步路由']); //获取路由tree行数据 - Route::get('route/tree', 'v1.system.SystemRoute/tree')->option(['real_name' => '获取路由tree']); + Route::get('route/tree', 'v1.setting.SystemRoute/tree')->option(['real_name' => '获取路由tree']); //权限路由 Route::delete('route/:id', 'v1.setting.SystemRoute/delete')->option(['real_name' => '删除路由权限']); //查看路由权限