增强:1、代码生成器模块支持生成菜单SQL;2、Controller 代码模板添加权限注解

This commit is contained in:
zhoumingfa 2024-08-14 15:09:14 +08:00
parent b16d8a6128
commit be56a0b505
5 changed files with 58 additions and 0 deletions

View File

@ -67,6 +67,8 @@ public class CodeGeneratorTemplateService {
map.put("java/manager/Manager.java", new ManagerVariableService()); map.put("java/manager/Manager.java", new ManagerVariableService());
map.put("java/dao/Dao.java", new DaoVariableService()); map.put("java/dao/Dao.java", new DaoVariableService());
map.put("java/mapper/Mapper.xml", new MapperVariableService()); 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/api.js", new ApiVariableService());
map.put("js/const.js", new ConstVariableService()); map.put("js/const.js", new ConstVariableService());

View File

@ -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<String, Object> getInjectVariablesMap(CodeGeneratorConfigForm form) {
return new HashMap<>(2);
}
}

View File

@ -3,6 +3,7 @@ package ${packageName};
#foreach ($importClass in $importPackageList) #foreach ($importClass in $importPackageList)
$importClass $importClass
#end #end
import cn.dev33.satoken.annotation.SaCheckPermission;
import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.domain.PageResult;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -31,6 +32,7 @@ public class ${name.upperCamel}Controller {
@Operation(summary = "分页查询 @author ${basic.backendAuthor}") @Operation(summary = "分页查询 @author ${basic.backendAuthor}")
@PostMapping("/${name.lowerCamel}/queryPage") @PostMapping("/${name.lowerCamel}/queryPage")
@SaCheckPermission("${name.lowerCamel}:query")
public ResponseDTO<PageResult<${name.upperCamel}VO>> queryPage(@RequestBody @Valid ${name.upperCamel}QueryForm queryForm) { public ResponseDTO<PageResult<${name.upperCamel}VO>> queryPage(@RequestBody @Valid ${name.upperCamel}QueryForm queryForm) {
return ResponseDTO.ok(${name.lowerCamel}Service.queryPage(queryForm)); return ResponseDTO.ok(${name.lowerCamel}Service.queryPage(queryForm));
} }
@ -38,12 +40,14 @@ public class ${name.upperCamel}Controller {
#if($insertAndUpdate.isSupportInsertAndUpdate) #if($insertAndUpdate.isSupportInsertAndUpdate)
@Operation(summary = "添加 @author ${basic.backendAuthor}") @Operation(summary = "添加 @author ${basic.backendAuthor}")
@PostMapping("/${name.lowerCamel}/add") @PostMapping("/${name.lowerCamel}/add")
@SaCheckPermission("${name.lowerCamel}:add")
public ResponseDTO<String> add(@RequestBody @Valid ${name.upperCamel}AddForm addForm) { public ResponseDTO<String> add(@RequestBody @Valid ${name.upperCamel}AddForm addForm) {
return ${name.lowerCamel}Service.add(addForm); return ${name.lowerCamel}Service.add(addForm);
} }
@Operation(summary = "更新 @author ${basic.backendAuthor}") @Operation(summary = "更新 @author ${basic.backendAuthor}")
@PostMapping("/${name.lowerCamel}/update") @PostMapping("/${name.lowerCamel}/update")
@SaCheckPermission("${name.lowerCamel}:update")
public ResponseDTO<String> update(@RequestBody @Valid ${name.upperCamel}UpdateForm updateForm) { public ResponseDTO<String> update(@RequestBody @Valid ${name.upperCamel}UpdateForm updateForm) {
return ${name.lowerCamel}Service.update(updateForm); return ${name.lowerCamel}Service.update(updateForm);
} }
@ -53,6 +57,7 @@ public class ${name.upperCamel}Controller {
#if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch") #if($deleteInfo.deleteEnum == "Batch" || $deleteInfo.deleteEnum == "SingleAndBatch")
@Operation(summary = "批量删除 @author ${basic.backendAuthor}") @Operation(summary = "批量删除 @author ${basic.backendAuthor}")
@PostMapping("/${name.lowerCamel}/batchDelete") @PostMapping("/${name.lowerCamel}/batchDelete")
@SaCheckPermission("${name.lowerCamel}:delete")
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<${primaryKeyJavaType}> idList) { public ResponseDTO<String> batchDelete(@RequestBody ValidateList<${primaryKeyJavaType}> idList) {
return ${name.lowerCamel}Service.batchDelete(idList); return ${name.lowerCamel}Service.batchDelete(idList);
} }
@ -61,6 +66,7 @@ public class ${name.upperCamel}Controller {
#if($deleteInfo.deleteEnum == "Single" || $deleteInfo.deleteEnum == "SingleAndBatch") #if($deleteInfo.deleteEnum == "Single" || $deleteInfo.deleteEnum == "SingleAndBatch")
@Operation(summary = "单个删除 @author ${basic.backendAuthor}") @Operation(summary = "单个删除 @author ${basic.backendAuthor}")
@GetMapping("/${name.lowerCamel}/delete/{${primaryKeyFieldName}}") @GetMapping("/${name.lowerCamel}/delete/{${primaryKeyFieldName}}")
@SaCheckPermission("${name.lowerCamel}:delete")
public ResponseDTO<String> batchDelete(@PathVariable ${primaryKeyJavaType} ${primaryKeyFieldName}) { public ResponseDTO<String> batchDelete(@PathVariable ${primaryKeyJavaType} ${primaryKeyFieldName}) {
return ${name.lowerCamel}Service.delete(${primaryKeyFieldName}); return ${name.lowerCamel}Service.delete(${primaryKeyFieldName});
} }

View File

@ -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 );

View File

@ -133,6 +133,7 @@ export const JAVA_FILE_LIST = [
'Dao.java', // 'Dao.java', //
'Mapper.xml', // 'Mapper.xml', //
...JAVA_DOMAIN_FILE_LIST, ...JAVA_DOMAIN_FILE_LIST,
'Menu.sql', //
]; ];
// -------------------------------- 枚举enum -------------------------------- // -------------------------------- 枚举enum --------------------------------