From eecf39dbe82a9df5a8625050e2594e46a05c64e4 Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Mon, 17 Feb 2020 18:45:59 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=97=B6=E9=BB=98=E8=AE=A4=E5=9B=9E=E5=A1=AB=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../codegen/config/AbstractGenConfig.java | 43 ----------- .../codegen/config/DefaultGenConfig.java | 66 ----------------- .../ballcat/codegen/config/GenConfig.java | 54 ++++++-------- .../ballcat/codegen/config/ReqGenConfig.java | 36 --------- .../controller/GeneratorController.java | 74 +++++++++++-------- .../hccake/ballcat/codegen/util/GenUtils.java | 3 +- .../ballcat/codegen/vo/GenConfigVO.java | 51 +++++++++++++ .../vo/{GeneratorVo.java => GeneratorVO.java} | 8 +- .../src/main/resources/generator.properties | 6 +- .../resources/static/views/genConfigForm.html | 8 +- .../main/resources/static/views/index.html | 67 ++++++++++------- .../resources/template/Controller.java.vm | 2 +- 12 files changed, 168 insertions(+), 250 deletions(-) delete mode 100644 ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/AbstractGenConfig.java delete mode 100644 ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/DefaultGenConfig.java delete mode 100644 ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/ReqGenConfig.java create mode 100644 ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GenConfigVO.java rename ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/{GeneratorVo.java => GeneratorVO.java} (56%) diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/AbstractGenConfig.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/AbstractGenConfig.java deleted file mode 100644 index ad6a14e0..00000000 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/AbstractGenConfig.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hccake.ballcat.codegen.config; - -import lombok.Data; - -import java.util.Map; -import java.util.Set; - -/** - * @author Hccake - * 生成配置 - */ -@Data -public abstract class AbstractGenConfig implements GenConfig{ - - - /** - * 包名 - */ - private String packageName; - /** - * 作者 - */ - private String author; - /** - * 模块名称 - */ - private String moduleName; - /** - * 表前缀 - */ - private String tablePrefix; - - /** - * column to javaType 映射关系 - */ - private Map typeMapping; - - /** - * 需要隐藏的列 - */ - private Set hiddenColumns; - -} diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/DefaultGenConfig.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/DefaultGenConfig.java deleted file mode 100644 index f2fab679..00000000 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/DefaultGenConfig.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.hccake.ballcat.codegen.config; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.PropertySource; -import org.springframework.stereotype.Component; - -import java.util.Map; -import java.util.Set; - -/** - * @author Hccake - * @version 1.0 - * @date 2019/9/12 15:47 - */ -@Component -@ConfigurationProperties(prefix = "gen") -@PropertySource("generator.properties") -public class DefaultGenConfig extends AbstractGenConfig { - - - private GenConfig shield() { - throw new RuntimeException("default genconfig no modification allowed"); - } - - public String setMainPath() { - shield(); - return null; - } - - public String setPackageName() { - shield(); - return null; - } - - public String setAuthor() { - shield(); - return null; - } - - public String setModuleName() { - shield(); - return null; - } - - public String setTablePrefix() { - shield(); - return null; - } - - public Map setTypeMapping() { - shield(); - return null; - } - - public Set setHiddenColumns() { - shield(); - return null; - } - - - @Override - public GenConfig mergeConfig(GenConfig sourceConfig) { - return shield(); - } - -} diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/GenConfig.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/GenConfig.java index 8c05b689..a6262701 100644 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/GenConfig.java +++ b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/GenConfig.java @@ -1,58 +1,48 @@ package com.hccake.ballcat.codegen.config; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + import java.util.Map; import java.util.Set; /** * @author Hccake - * @version 1.0 - * @date 2019/9/12 20:11 + * 生成配置 */ -public interface GenConfig { +@Data +@Component +@ConfigurationProperties(prefix = "gen") +@PropertySource("generator.properties") +public class GenConfig{ /** - * 基础包名 - * @return + * 包名 */ - String getPackageName(); - + private String packageName; /** * 作者 - * @return */ - String getAuthor(); - + private String author; /** - * 模块名 - * @return + * 模块名称 */ - String getModuleName(); - + private String moduleName; /** * 表前缀 - * @return */ - String getTablePrefix(); - + private String tablePrefix; /** - * 类型映射 - * @return + * column to javaType 映射关系 */ - Map getTypeMapping(); + private Map typeMapping; /** - * swagger文档中隐藏的属性字段 - * @return + * 需要隐藏的列 */ - Set getHiddenColumns(); + private Set hiddenColumns; - - /** - * 合并配置项 - * @param sourceConfig - * @return - */ - GenConfig mergeConfig(GenConfig sourceConfig); - -} \ No newline at end of file +} diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/ReqGenConfig.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/ReqGenConfig.java deleted file mode 100644 index ce5015e3..00000000 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/config/ReqGenConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hccake.ballcat.codegen.config; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; - -/** - * @author Hccake - * @version 1.0 - * @date 2019/9/12 15:48 - */ -public class ReqGenConfig extends AbstractGenConfig { - - - @Override - public GenConfig mergeConfig(GenConfig sourceConfig) { - - if(StrUtil.isBlank(this.getAuthor())){ - this.setAuthor(sourceConfig.getAuthor()); - } - if(StrUtil.isBlank(this.getModuleName())){ - this.setModuleName(sourceConfig.getModuleName()); - } - if(StrUtil.isBlank(this.getPackageName())){ - this.setPackageName(sourceConfig.getPackageName()); - } - if(StrUtil.isBlank(this.getTablePrefix())){ - this.setTablePrefix(sourceConfig.getTablePrefix()); - } - if(CollUtil.isEmpty(this.getTypeMapping())){ - this.setTypeMapping(sourceConfig.getTypeMapping()); - } - return this; - } - - -} diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/controller/GeneratorController.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/controller/GeneratorController.java index f00bd210..83638b3a 100644 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/controller/GeneratorController.java +++ b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/controller/GeneratorController.java @@ -3,18 +3,16 @@ package com.hccake.ballcat.codegen.controller; import cn.hutool.core.io.IoUtil; import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.hccake.ballcat.codegen.config.DefaultGenConfig; import com.hccake.ballcat.codegen.config.GenConfig; -import com.hccake.ballcat.codegen.config.ReqGenConfig; import com.hccake.ballcat.codegen.service.GeneratorService; -import com.hccake.ballcat.codegen.vo.GeneratorVo; +import com.hccake.ballcat.codegen.vo.GenConfigVO; +import com.hccake.ballcat.codegen.vo.GeneratorVO; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import java.util.Optional; /** * 代码生成器 @@ -27,37 +25,49 @@ import java.util.Optional; @RequestMapping("/generator") @RequiredArgsConstructor public class GeneratorController { - private final GeneratorService generatorService; - private final DefaultGenConfig defaultGenConfig; + private final GeneratorService generatorService; + private final GenConfig defaultGenConfig; - /** - * 列表 - * - * @param tableName 参数集 - * @return 数据库表 - */ - @GetMapping("/page") - public R getPage(Page page, String tableName) { - return R.ok(generatorService.getPage(page, tableName).getRecords()); - } - /** - * 生成代码 - */ - @SneakyThrows - @PostMapping("/code") - public void generatorCode(@RequestBody GeneratorVo generatorVo, HttpServletResponse response) { + /** + * 默认配置 + * + * @return 默认配置 + */ + @GetMapping("/config") + public R getConfig() { + return R.ok(defaultGenConfig); + } - GenConfig genConfig = Optional.ofNullable(generatorVo.getGenConfig()).orElse(new ReqGenConfig()); - genConfig = genConfig.mergeConfig(defaultGenConfig); - String[] tableNames = generatorVo.getTableNames(); - byte[] data = generatorService.generatorCode(tableNames, genConfig); - response.reset(); - response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"ballcat.zip\""); - response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(data.length)); - response.setContentType("application/octet-stream; charset=UTF-8"); + /** + * 列表 + * + * @param tableName 参数集 + * @return 数据库表 + */ + @GetMapping("/page") + public R getPage(Page page, String tableName) { + return R.ok(generatorService.getPage(page, tableName).getRecords()); + } - IoUtil.write(response.getOutputStream(), Boolean.TRUE, data); - } + /** + * 生成代码 + */ + @SneakyThrows + @PostMapping("/code") + public void generatorCode(@RequestBody GeneratorVO generatorVo, HttpServletResponse response) { + + GenConfigVO vo = generatorVo.getGenConfigVO(); + GenConfig genConfig = vo.transform(defaultGenConfig); + + String[] tableNames = generatorVo.getTableNames(); + byte[] data = generatorService.generatorCode(tableNames, genConfig); + response.reset(); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"ballcat.zip\""); + response.addHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(data.length)); + response.setContentType("application/octet-stream; charset=UTF-8"); + + IoUtil.write(response.getOutputStream(), Boolean.TRUE, data); + } } diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/util/GenUtils.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/util/GenUtils.java index 3331f25c..146dd164 100644 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/util/GenUtils.java +++ b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/util/GenUtils.java @@ -224,7 +224,8 @@ public class GenUtils { } if (template.contains(MAPPER_XML_VM)) { - return BACK_PROJECT_NAME + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + className + "Mapper.xml"; + return BACK_PROJECT_NAME + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "mapper" + + File.separator + moduleName + File.separator + className + "Mapper.xml"; } if (template.contains(MENU_SQL_VM)) { diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GenConfigVO.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GenConfigVO.java new file mode 100644 index 00000000..8fce8e7f --- /dev/null +++ b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GenConfigVO.java @@ -0,0 +1,51 @@ +package com.hccake.ballcat.codegen.vo; + +import cn.hutool.core.bean.BeanUtil; +import com.hccake.ballcat.codegen.config.GenConfig; +import lombok.Data; + +/** + * @author Hccake + * 生成配置 + */ +@Data +public class GenConfigVO { + + /** + * 包名 + */ + private String packageName; + /** + * 作者 + */ + private String author; + /** + * 模块名称 + */ + private String moduleName; + /** + * 表前缀 + */ + private String tablePrefix; + + + public GenConfig transform(GenConfig defaultGenConfig) { + GenConfig genConfig = new GenConfig(); + BeanUtil.copyProperties(defaultGenConfig, genConfig); + + if(packageName != null){ + genConfig.setPackageName(packageName); + } + if(author != null){ + genConfig.setAuthor(author); + } + if(moduleName != null){ + genConfig.setModuleName(moduleName); + } + if(tablePrefix != null){ + genConfig.setTablePrefix(tablePrefix); + } + return genConfig; + } + +} diff --git a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVo.java b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVO.java similarity index 56% rename from ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVo.java rename to ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVO.java index fb7f208f..8d556f94 100644 --- a/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVo.java +++ b/ballcat-codegen/src/main/java/com/hccake/ballcat/codegen/vo/GeneratorVO.java @@ -1,6 +1,5 @@ package com.hccake.ballcat.codegen.vo; -import com.hccake.ballcat.codegen.config.ReqGenConfig; import lombok.Data; /** @@ -8,15 +7,16 @@ import lombok.Data; * 生成参数vo */ @Data -public class GeneratorVo { +public class GeneratorVO { /** - * 配置信息 + * 配置 */ - private ReqGenConfig genConfig; + private GenConfigVO genConfigVO; /** * 表名称 */ private String[] tableNames; + } diff --git a/ballcat-codegen/src/main/resources/generator.properties b/ballcat-codegen/src/main/resources/generator.properties index 1739836b..104c1783 100644 --- a/ballcat-codegen/src/main/resources/generator.properties +++ b/ballcat-codegen/src/main/resources/generator.properties @@ -1,11 +1,11 @@ #基础包名 -gen.packageName=com.hccake.ballcat.admin +gen.packageName=com.hccake.ballcat.admin.modules #模块名 gen.moduleName=sys #作者 -gen.author=ballcat code generator +gen.author=hccake #表前缀(类名不会包含表前缀) -gen.tablePrefix= +gen.tablePrefix=tbl_ #column To java 类型转换配置 diff --git a/ballcat-codegen/src/main/resources/static/views/genConfigForm.html b/ballcat-codegen/src/main/resources/static/views/genConfigForm.html index d82b8c3f..acb843ec 100644 --- a/ballcat-codegen/src/main/resources/static/views/genConfigForm.html +++ b/ballcat-codegen/src/main/resources/static/views/genConfigForm.html @@ -23,10 +23,4 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/ballcat-codegen/src/main/resources/static/views/index.html b/ballcat-codegen/src/main/resources/static/views/index.html index 3aef94d9..ece85c9f 100644 --- a/ballcat-codegen/src/main/resources/static/views/index.html +++ b/ballcat-codegen/src/main/resources/static/views/index.html @@ -32,16 +32,14 @@ -