From be56a0b505507d85895678fe40b5f7bad5bb5282 Mon Sep 17 00:00:00 2001 From: zhoumingfa Date: Wed, 14 Aug 2024 15:09:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=EF=BC=9A1=E3=80=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8=E6=A8=A1=E5=9D=97=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=94=9F=E6=88=90=E8=8F=9C=E5=8D=95SQL=EF=BC=9B2?= =?UTF-8?q?=E3=80=81Controller=20=E4=BB=A3=E7=A0=81=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=83=E9=99=90=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/CodeGeneratorTemplateService.java | 2 ++ .../variable/backend/MenuVariableService.java | 27 +++++++++++++++++++ .../java/controller/Controller.java.vm | 6 +++++ .../java/sql/Menu.sql.vm | 22 +++++++++++++++ .../code-generator/code-generator-util.js | 1 + 5 files changed, 58 insertions(+) create mode 100644 smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java create mode 100644 smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java index e83f67ab..5a86305c 100644 --- a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/CodeGeneratorTemplateService.java @@ -67,6 +67,8 @@ public class CodeGeneratorTemplateService { map.put("java/manager/Manager.java", new ManagerVariableService()); map.put("java/dao/Dao.java", new DaoVariableService()); map.put("java/mapper/Mapper.xml", new MapperVariableService()); + // 菜单 SQL + map.put("java/sql/Menu.sql", new MenuVariableService()); // 前端 map.put("js/api.js", new ApiVariableService()); map.put("js/const.js", new ConstVariableService()); diff --git a/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java new file mode 100644 index 00000000..17ab19f2 --- /dev/null +++ b/smart-admin-api/sa-base/src/main/java/net/lab1024/sa/base/module/support/codegenerator/service/variable/backend/MenuVariableService.java @@ -0,0 +1,27 @@ +package net.lab1024.sa.base.module.support.codegenerator.service.variable.backend; + +import net.lab1024.sa.base.module.support.codegenerator.domain.form.CodeGeneratorConfigForm; +import net.lab1024.sa.base.module.support.codegenerator.service.variable.CodeGenerateBaseVariableService; + +import java.util.HashMap; +import java.util.Map; + +/** + * 目前暂时没用到 这是一个空实现 + * + * @author zhoumingfa + * @date 2024/8/13 + */ +public class MenuVariableService extends CodeGenerateBaseVariableService { + + @Override + public boolean isSupport(CodeGeneratorConfigForm form) { + return true; + } + + @Override + public Map getInjectVariablesMap(CodeGeneratorConfigForm form) { + return new HashMap<>(2); + } + +} diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm index c6180908..13ccc5b8 100644 --- a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/controller/Controller.java.vm @@ -3,6 +3,7 @@ package ${packageName}; #foreach ($importClass in $importPackageList) $importClass #end +import cn.dev33.satoken.annotation.SaCheckPermission; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.domain.PageResult; import org.springframework.web.bind.annotation.PostMapping; @@ -31,6 +32,7 @@ public class ${name.upperCamel}Controller { @Operation(summary = "分页查询 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/queryPage") + @SaCheckPermission("${name.lowerCamel}:query") public ResponseDTO> queryPage(@RequestBody @Valid ${name.upperCamel}QueryForm queryForm) { return ResponseDTO.ok(${name.lowerCamel}Service.queryPage(queryForm)); } @@ -38,12 +40,14 @@ public class ${name.upperCamel}Controller { #if($insertAndUpdate.isSupportInsertAndUpdate) @Operation(summary = "添加 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/add") + @SaCheckPermission("${name.lowerCamel}:add") public ResponseDTO add(@RequestBody @Valid ${name.upperCamel}AddForm addForm) { return ${name.lowerCamel}Service.add(addForm); } @Operation(summary = "更新 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/update") + @SaCheckPermission("${name.lowerCamel}:update") public ResponseDTO update(@RequestBody @Valid ${name.upperCamel}UpdateForm updateForm) { return ${name.lowerCamel}Service.update(updateForm); } @@ -53,6 +57,7 @@ public class ${name.upperCamel}Controller { #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") @Operation(summary = "批量删除 @author ${basic.backendAuthor}") @PostMapping("/${name.lowerCamel}/batchDelete") + @SaCheckPermission("${name.lowerCamel}:delete") public ResponseDTO batchDelete(@RequestBody ValidateList<${primaryKeyJavaType}> idList) { return ${name.lowerCamel}Service.batchDelete(idList); } @@ -61,6 +66,7 @@ public class ${name.upperCamel}Controller { #if($deleteInfo.deleteEnum == "Single" || $deleteInfo.deleteEnum == "SingleAndBatch") @Operation(summary = "单个删除 @author ${basic.backendAuthor}") @GetMapping("/${name.lowerCamel}/delete/{${primaryKeyFieldName}}") + @SaCheckPermission("${name.lowerCamel}:delete") public ResponseDTO batchDelete(@PathVariable ${primaryKeyJavaType} ${primaryKeyFieldName}) { return ${name.lowerCamel}Service.delete(${primaryKeyFieldName}); } diff --git a/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm new file mode 100644 index 00000000..90525f78 --- /dev/null +++ b/smart-admin-api/sa-base/src/main/resources/code-generator-template/java/sql/Menu.sql.vm @@ -0,0 +1,22 @@ +# 默认是按前端工程文件的 /views/business 文件夹的路径作为前端组件路径,如果你没把生成的 .vue 前端代码放在 /views/business 下, +# 那就根据自己实际情况修改下面 SQL 的 path,component 字段值,避免执行 SQL 后菜单无法访问。 +# 如果你一切都是按照默认,那么下面的 SQL 基本不用改 + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, path, component, frame_flag, cache_flag, visible_flag, disabled_flag, perms_type, create_user_id ) +VALUES ( '${basic.description}', 2, 0, '/${name.lowerHyphenCamel}/list', '/business/${name.lowerHyphenCamel}/${name.lowerHyphenCamel}-list.vue', false, false, true, false, 1, 1 ); + +# 按菜单名称查询该菜单的 menu_id 作为按钮权限的 父菜单ID 与 功能点关联菜单ID +SET @parent_id = NULL; +SELECT t_menu.menu_id INTO @parent_id FROM t_menu WHERE t_menu.menu_name = '${basic.description}'; + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '查询', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:query', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '添加', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:add', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '更新', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:update', 1, @parent_id, 1 ); + +INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id ) +VALUES ( '删除', 3, @parent_id, false, true, true, false, '${name.lowerCamel}:delete', 1, @parent_id, 1 ); diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js b/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js index 1845676b..5c2942ba 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js +++ b/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js @@ -133,6 +133,7 @@ export const JAVA_FILE_LIST = [ 'Dao.java', // 'Mapper.xml', // ...JAVA_DOMAIN_FILE_LIST, + 'Menu.sql', // ]; // -------------------------------- 枚举enum --------------------------------