From 474f3ab89bfe855b3ae22a60a5948ec419deb7e3 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 15 Apr 2025 19:11:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=9F=E6=88=90bug?= =?UTF-8?q?=E5=92=8C=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- generator-code/pom.xml | 2 - .../cn/bunny/service/impl/VmsServiceImpl.java | 30 ++++++------ .../src/main/java/cn/bunny/utils/VmsUtil.java | 46 ++++++++++--------- .../vms/server/mapper/resourceMapper.xml.vm | 2 +- 4 files changed, 41 insertions(+), 39 deletions(-) diff --git a/generator-code/pom.xml b/generator-code/pom.xml index aa09dbf..f3acc0a 100644 --- a/generator-code/pom.xml +++ b/generator-code/pom.xml @@ -107,7 +107,5 @@ velocity-engine-core 2.3 - - diff --git a/generator-code/src/main/java/cn/bunny/service/impl/VmsServiceImpl.java b/generator-code/src/main/java/cn/bunny/service/impl/VmsServiceImpl.java index 927cf47..7b4766c 100644 --- a/generator-code/src/main/java/cn/bunny/service/impl/VmsServiceImpl.java +++ b/generator-code/src/main/java/cn/bunny/service/impl/VmsServiceImpl.java @@ -52,26 +52,26 @@ public class VmsServiceImpl implements VmsService { // 表格属性名 和 列信息 TableInfoVo tableMetaData = tableService.getTableMetaData(tableName); - List columnInfoList = tableService.getColumnInfo(tableName); + List columnInfoList = tableService.getColumnInfo(tableName).stream().distinct().toList(); List list = columnInfoList.stream().map(ColumnMetaData::getColumnName).toList(); // 添加要生成的属性 VelocityContext context = new VelocityContext(); // 当前的表名 - context.put("tableName", tableMetaData.getTableName()); + context.put("tableName" , tableMetaData.getTableName()); // 表字段的注释内容 - context.put("comment", tableMetaData.getComment()); + context.put("comment" , tableMetaData.getComment()); // 设置包名称 - context.put("package", dto.getPackageName()); + context.put("package" , dto.getPackageName()); // 当前表的列信息 - context.put("columnInfoList", columnInfoList); + context.put("columnInfoList" , columnInfoList); // 数据库sql列 - context.put("baseColumnList", String.join(",", list)); + context.put("baseColumnList" , String.join("," , list)); // 生成模板 VmsUtil.commonVms(writer, context, "vms/" + path, dto); @@ -97,11 +97,11 @@ public class VmsServiceImpl implements VmsService { @Override public Map> getVmsPathList() { // 读取当前项目中所有的 vm 模板发给前端 - List vmsRelativeFiles = ResourceFileUtil.getRelativeFiles("vms"); + List vmsRelativeFiles = ResourceFileUtil.getRelativeFiles("vms" ); return vmsRelativeFiles.stream().map(vmFile -> { - String[] filepathList = vmFile.split("/"); - String filename = filepathList[filepathList.length - 1].replace(".vm", ""); + String[] filepathList = vmFile.split("/" ); + String filename = filepathList[filepathList.length - 1].replace(".vm" , "" ); return VmsPathVo.builder().name(vmFile).label(filename).type(filepathList[0]).build(); }) @@ -125,7 +125,7 @@ public class VmsServiceImpl implements VmsService { // 2. 遍历并创建 generatorVoList.forEach(generatorVo -> { // zip中的路径 - String path = generatorVo.getPath().replace(".vm", ""); + String path = generatorVo.getPath().replace(".vm" , "" ); // zip中的文件 String code = generatorVo.getCode(); @@ -148,14 +148,14 @@ public class VmsServiceImpl implements VmsService { // 2.1 文件不重名 long currentTimeMillis = System.currentTimeMillis(); - String digestHex = MD5.create().digestHex(currentTimeMillis + ""); + String digestHex = MD5.create().digestHex(currentTimeMillis + "" ); // 3. 准备响应 HttpHeaders headers = new HttpHeaders(); - headers.add("Content-Disposition", "attachment; filename=" + "vms-" + digestHex + ".zip"); - headers.add("Cache-Control", "no-cache, no-store, must-revalidate"); - headers.add("Pragma", "no-cache"); - headers.add("Expires", "0"); + headers.add("Content-Disposition" , "attachment; filename=" + "vms-" + digestHex + ".zip" ); + headers.add("Cache-Control" , "no-cache, no-store, must-revalidate" ); + headers.add("Pragma" , "no-cache" ); + headers.add("Expires" , "0" ); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); return new ResponseEntity<>(byteArrayInputStream.readAllBytes(), headers, HttpStatus.OK); diff --git a/generator-code/src/main/java/cn/bunny/utils/VmsUtil.java b/generator-code/src/main/java/cn/bunny/utils/VmsUtil.java index 3f16e6a..ae777fd 100644 --- a/generator-code/src/main/java/cn/bunny/utils/VmsUtil.java +++ b/generator-code/src/main/java/cn/bunny/utils/VmsUtil.java @@ -15,11 +15,11 @@ import java.util.concurrent.atomic.AtomicReference; public class VmsUtil { private static final Map TYPE_MAPPINGS = Map.of( - "controller", "Controller", - "service", "Service", - "serviceImpl", "ServiceImpl", - "mapper", "Mapper", - "resourceMapper", "Mapper" + "controller" , "Controller" , + "service" , "Service" , + "serviceImpl" , "ServiceImpl" , + "mapper" , "Mapper" , + "resourceMapper" , "Mapper" ); /** @@ -45,33 +45,33 @@ public class VmsUtil { // 将 表前缀 转成数组 AtomicReference replaceTableName = new AtomicReference<>(className); - for (String prefix : tablePrefixes.split("[,,]")) { - replaceTableName.set(className.replace(prefix, "")); + for (String prefix : tablePrefixes.split("[,,]" )) { + replaceTableName.set(className.replace(prefix, "" )); } String date = new SimpleDateFormat(dto.getSimpleDateFormat()).format(new Date()); // vm 不能直接写 `{` 需要转换下 - context.put("leftBrace", "{"); + context.put("leftBrace" , "{" ); // 当前日期 - context.put("date", date); + context.put("date" , date); // 作者名字 - context.put("author", author); + context.put("author" , author); // 每个 Controller 上的请求前缀 - context.put("requestMapping", requestMapping); + context.put("requestMapping" , requestMapping); // 将类名称转成小驼峰 String toCamelCase = ConvertUtil.convertToCamelCase(replaceTableName.get()); - context.put("classLowercaseName", toCamelCase); + context.put("classLowercaseName" , toCamelCase); // 将类名称转成大驼峰 String convertToCamelCase = ConvertUtil.convertToCamelCase(replaceTableName.get(), true); - context.put("classUppercaseName", convertToCamelCase); + context.put("classUppercaseName" , convertToCamelCase); // Velocity 生成模板 - Template servicePathTemplate = Velocity.getTemplate(templateName, "UTF-8"); + Template servicePathTemplate = Velocity.getTemplate(templateName, "UTF-8" ); servicePathTemplate.merge(context, writer); } @@ -82,7 +82,7 @@ public class VmsUtil { * @param className 类名 */ public static String handleVmFilename(String path, String className) { - String[] splitPaths = path.split("/"); + String[] splitPaths = path.split("/" ); int splitPathsSize = splitPaths.length - 1; // 大驼峰名称 @@ -92,23 +92,27 @@ public class VmsUtil { // 当前文件名 String filename = splitPaths[splitPathsSize]; - filename = filename.replace(".vm", ""); + filename = filename.replace(".vm" , "" ); + String[] split = filename.split("\\." ); // 文件名称 - String name = filename.split("\\.")[0]; + String name = split[0]; // 文件扩展名 - String extension = filename.split("\\.")[1]; + String extension = ""; + if (split.length >= 2) { + extension = split[1]; + } // 判断是否是 Java 或者 xml 文件 - if (filename.contains("java") || filename.contains("xml")) { + if (filename.contains("java" ) || filename.contains("xml" )) { filename = CamelCase + TYPE_MAPPINGS.get(name) + "." + extension; } - if (filename.contains("vue") && !filename.contains("index")) { + if (filename.contains("vue" ) && !filename.contains("index" )) { filename = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, camelCase) + "-" + name + "." + extension; } splitPaths[splitPathsSize] = filename; - return String.join("/", splitPaths); + return String.join("/" , splitPaths); } } diff --git a/generator-code/src/main/resources/vms/server/mapper/resourceMapper.xml.vm b/generator-code/src/main/resources/vms/server/mapper/resourceMapper.xml.vm index a75aafa..f2f43fb 100644 --- a/generator-code/src/main/resources/vms/server/mapper/resourceMapper.xml.vm +++ b/generator-code/src/main/resources/vms/server/mapper/resourceMapper.xml.vm @@ -5,7 +5,7 @@ #foreach($field in ${columnInfoList}) - + #end