From 913d8453399299051a8ecef2be4a930da25f0dca Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Sun, 23 Apr 2023 15:36:06 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/system/SystemCrudServices.php | 4 +- crmeb/crmeb/services/crud/Service.php | 2 + crmeb/crmeb/services/crud/Validate.php | 37 +++++++++++++++++++ .../crud/stubs/validate/crudValidate.stub | 4 +- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index 6f0673bc4..d48bacfec 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -538,7 +538,9 @@ class SystemCrudServices extends BaseServices ]); //生成验证器 $validate = app()->make(Validate::class); - $validate->setFilePathName($filePath['validate'] ?? '')->setbasePath($basePath)->handle($tableName); + $validate->setFilePathName($filePath['validate'] ?? '')->setbasePath($basePath)->handle($tableName, [ + 'field' => $options['fromField'], + ]); //生成控制器 $controller = app()->make(Controller::class); $controller->setFilePathName($filePath['controller'] ?? '')->setbasePath($basePath)->handle($tableName, [ diff --git a/crmeb/crmeb/services/crud/Service.php b/crmeb/crmeb/services/crud/Service.php index 43aded7dc..995a75a15 100644 --- a/crmeb/crmeb/services/crud/Service.php +++ b/crmeb/crmeb/services/crud/Service.php @@ -148,6 +148,7 @@ class Service extends Make */ protected function getframeImageOnePhpContent(string $field, string $name, bool $required = false, string $icon = 'ios-add', string $width = '950px', string $height = '505px') { + $name = addslashes($name); $requiredText = $required ? '->required()' : ''; $content = << '$field']), \$info['$field'] ?? '')->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText @@ -170,6 +171,7 @@ CONTENT; */ protected function getframeImagesPhpContent(string $field, string $name, bool $required = false, string $icon = 'ios-images', int $maxLength = 10, string $width = '950px', string $height = '505px') { + $name = addslashes($name); $requiredText = $required ? '->required()' : ''; $content = << '$field', 'type' => 'many', 'maxLength' => $maxLength]), \$info['$field'] ?? [])->maxLength($maxLength)->icon('$icon')->width('$width')->height('$height')->modal(['footer-hide' => true])$requiredText diff --git a/crmeb/crmeb/services/crud/Validate.php b/crmeb/crmeb/services/crud/Validate.php index 0bcf3b099..ba19816f6 100644 --- a/crmeb/crmeb/services/crud/Validate.php +++ b/crmeb/crmeb/services/crud/Validate.php @@ -38,6 +38,43 @@ class Validate extends Make return 'app' . DS . 'adminapi' . DS . 'validate' . DS . 'crud'; } + /** + * @param string $name + * @param array $options + * @return Validate + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/23 + */ + public function handle(string $name, array $options = []) + { + [$rule, $message] = $this->getRuleContent($options['field']); + $this->value['rule-php'] = $rule; + $this->value['message-php'] = $message; + return parent::handle($name, $options); // TODO: Change the autogenerated stub + } + + /** + * @param array $field + * @return array + * @author 等风来 + * @email 136327134@qq.com + * @date 2023/4/23 + */ + protected function getRuleContent(array $field) + { + $content = []; + $message = []; + foreach ($field as $item) { + $item['name'] = addslashes($item['name']); + if ($item['required']) { + $content[] = $this->tab(2) . '\'' . $item['field'] . '\'=>\'require\''; + $message[] = $this->tab(2) . '\'' . $item['field'] . '.require\'=>\'' . $item['name'] . '必须填写\''; + } + } + return [implode("\n", $content), implode("\n", $message)]; + } + /** * 模板文件配置 * @param string $type diff --git a/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub b/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub index 1c952bae7..b77ce6a09 100644 --- a/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub +++ b/crmeb/crmeb/services/crud/stubs/validate/crudValidate.stub @@ -33,14 +33,14 @@ class {%nameCamel%}Validate extends Validate * @var array */ protected $rule = [ - +{%rule-php%} ]; /** * @var array */ protected $message = [ - +{%message-php%} ]; /** From e7349e6a9e6c49a8ddbfcb401eced7e8ea6d401e Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Sun, 23 Apr 2023 16:17:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/services/system/SystemCrudServices.php | 6 ++++++ crmeb/app/services/system/SystemRouteServices.php | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index d48bacfec..df4442d25 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -354,6 +354,12 @@ class SystemCrudServices extends BaseServices 'add_time' => date('Y-m-d H:i:s') ], ]; + $routeService = app()->make(SystemRouteServices::class); + foreach ($ruleData as $key => $item) { + if ($routeService->count(['method' => $item['method'], 'path' => $item['path']])) { + unset($ruleData[$key]); + } + } app()->make(SystemRouteServices::class)->saveAll($ruleData); //记录权限加入菜单表 $menuData = []; diff --git a/crmeb/app/services/system/SystemRouteServices.php b/crmeb/app/services/system/SystemRouteServices.php index 73fa48f41..20b17b1ac 100644 --- a/crmeb/app/services/system/SystemRouteServices.php +++ b/crmeb/app/services/system/SystemRouteServices.php @@ -204,7 +204,8 @@ class SystemRouteServices extends BaseServices $cateId = $commmonId; } else { if (!isset($item['option']['cate_name'])) { - $cateId = $id; + $rule = explode('/', $item['rule']); + $cateId = $this->topCateId($app, $rule[0]); } else { $cateId = $this->topCateId($app, $item['option']['cate_name']); } From a397a9b51aabefc7564f3ce13a924611e8578803 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Sun, 23 Apr 2023 16:23:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=9A=84=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/services/system/SystemCrudServices.php | 6 +++--- crmeb/crmeb/services/crud/stubs/route/delete.stub | 2 +- crmeb/crmeb/services/crud/stubs/route/save.stub | 2 +- crmeb/crmeb/services/crud/stubs/route/update.stub | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crmeb/app/services/system/SystemCrudServices.php b/crmeb/app/services/system/SystemCrudServices.php index df4442d25..e76702b81 100644 --- a/crmeb/app/services/system/SystemCrudServices.php +++ b/crmeb/app/services/system/SystemCrudServices.php @@ -320,7 +320,7 @@ class SystemCrudServices extends BaseServices [ 'path' => $routeName, 'method' => 'POST', - 'name' => $modelName . '保存数据接口', + 'name' => $modelName . '保存接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, 'unique_auth' => '', @@ -338,7 +338,7 @@ class SystemCrudServices extends BaseServices [ 'path' => $routeName . '/', 'method' => 'PUT', - 'name' => $modelName . '修改数据接口', + 'name' => $modelName . '修改接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, 'unique_auth' => '', @@ -347,7 +347,7 @@ class SystemCrudServices extends BaseServices [ 'path' => $routeName . '/', 'method' => 'DELETE', - 'name' => $modelName . '删除数据接口', + 'name' => $modelName . '删除接口', 'app_name' => 'adminapi', 'cate_id' => $cateId, 'unique_auth' => '', diff --git a/crmeb/crmeb/services/crud/stubs/route/delete.stub b/crmeb/crmeb/services/crud/stubs/route/delete.stub index a38392a27..c75398711 100644 --- a/crmeb/crmeb/services/crud/stubs/route/delete.stub +++ b/crmeb/crmeb/services/crud/stubs/route/delete.stub @@ -1 +1 @@ -Route::delete('{%route%}/:id', 'crud.{%routePath%}{%controller%}/delete')->option(['real_name' => '{%menus%}删除数据接口']); +Route::delete('{%route%}/:id', 'crud.{%routePath%}{%controller%}/delete')->option(['real_name' => '{%menus%}删除接口']); diff --git a/crmeb/crmeb/services/crud/stubs/route/save.stub b/crmeb/crmeb/services/crud/stubs/route/save.stub index b950a91d8..795390ab9 100644 --- a/crmeb/crmeb/services/crud/stubs/route/save.stub +++ b/crmeb/crmeb/services/crud/stubs/route/save.stub @@ -1 +1 @@ -Route::post('{%route%}', 'crud.{%routePath%}{%controller%}/save')->option(['real_name' => '{%menus%}保存数据接口']); +Route::post('{%route%}', 'crud.{%routePath%}{%controller%}/save')->option(['real_name' => '{%menus%}保存接口']); diff --git a/crmeb/crmeb/services/crud/stubs/route/update.stub b/crmeb/crmeb/services/crud/stubs/route/update.stub index d982677d3..5e03fd7ab 100644 --- a/crmeb/crmeb/services/crud/stubs/route/update.stub +++ b/crmeb/crmeb/services/crud/stubs/route/update.stub @@ -1 +1 @@ -Route::put('{%route%}/:id', 'crud.{%routePath%}{%controller%}/update')->option(['real_name' => '{%menus%}修改数据接口']); +Route::put('{%route%}/:id', 'crud.{%routePath%}{%controller%}/update')->option(['real_name' => '{%menus%}修改接口']); From 2098f485c7b86b50acea2fbd636614dc72435198 Mon Sep 17 00:00:00 2001 From: liaofei <136327134@qq.com> Date: Sun, 23 Apr 2023 16:25:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9miss=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E4=B8=8D=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crmeb/app/services/system/SystemRouteServices.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crmeb/app/services/system/SystemRouteServices.php b/crmeb/app/services/system/SystemRouteServices.php index 20b17b1ac..3eab6d611 100644 --- a/crmeb/app/services/system/SystemRouteServices.php +++ b/crmeb/app/services/system/SystemRouteServices.php @@ -204,8 +204,13 @@ class SystemRouteServices extends BaseServices $cateId = $commmonId; } else { if (!isset($item['option']['cate_name'])) { - $rule = explode('/', $item['rule']); - $cateId = $this->topCateId($app, $rule[0]); + if (strstr($item['rule'], '') === false) { + $rule = explode('/', $item['rule']); + $cateId = $this->topCateId($app, $rule[0]); + } else { + //miss路由不写入 + continue; + } } else { $cateId = $this->topCateId($app, $item['option']['cate_name']); }