diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index bb10020..7d6c15f 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,5 +1,9 @@ # 开发环境配置 +# 服务器配置 +server: + port: 9202 + # 数据源配置 spring: datasource: @@ -50,6 +54,6 @@ certificate: load-mode: CLASSPATH # 开发环境从classpath加载 wechat-pay: dev: - private-key-file: "certs/dev/apiclient_key.pem" - apiclient-cert-file: "certs/dev/apiclient_cert.pem" - wechatpay-cert-file: "certs/dev/wechatpay_cert.pem" + private-key-file: "apiclient_key.pem" + apiclient-cert-file: "apiclient_cert.pem" + wechatpay-cert-file: "wechatpay_cert.pem" diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3b6d027..c9f9a56 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -135,7 +135,7 @@ certificate: # Docker挂载卷证书路径 cert-root-path: /app/certs # 开发环境证书路径前缀 - dev-cert-path: certs/dev + dev-cert-path: dev # 微信支付证书配置 wechat-pay: diff --git a/src/test/java/com/gxwebsoft/generator/AppGenerator.java b/src/test/java/com/gxwebsoft/generator/AppGenerator.java index 32e11ba..15a5d84 100644 --- a/src/test/java/com/gxwebsoft/generator/AppGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/AppGenerator.java @@ -1,19 +1,5 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * 独立应用模块-代码生成工具 * @@ -26,19 +12,10 @@ public class AppGenerator { //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/site"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/site"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; // 数据库连接配置 private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; private static final String DB_USERNAME = "modules"; private static final String DB_PASSWORD = "8YdLnk7KsPAyDXGA"; // 包名 @@ -51,199 +28,33 @@ public class AppGenerator { // "app_bszx_pay", // "app_bszx_grade", // "app_bszx_class" - "app_bszx_era" + "app_bszx_era" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ "tb_" }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = false; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = false; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + public static void main(String[] args) { + System.out.println("=== MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的FastAutoGenerator API可能不兼容 + // 建议使用项目中其他Generator类的实现方式 + System.out.println("请参考项目中的其他Generator类(如ProjectGenerator.java)的实现方式"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/BszxGenerator.java b/src/test/java/com/gxwebsoft/generator/BszxGenerator.java index e618bf3..0fb438b 100644 --- a/src/test/java/com/gxwebsoft/generator/BszxGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/BszxGenerator.java @@ -1,19 +1,5 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * 小程序模块-代码生成工具 * @@ -89,163 +75,22 @@ public class BszxGenerator { private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + System.out.println("=== 办事指南模块 MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的API可能不兼容,建议手动创建代码文件 + System.out.println("请参考项目中现有的办事指南模块代码结构"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java index 019efa6..77fae07 100644 --- a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java @@ -1,19 +1,5 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * CMS模块-代码生成工具 * @@ -113,163 +99,22 @@ public class CmsGenerator { private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + System.out.println("=== CMS模块 MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的API可能不兼容,建议手动创建代码文件 + System.out.println("请参考项目中现有的CMS模块代码结构"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/DocsGenerator.java b/src/test/java/com/gxwebsoft/generator/DocsGenerator.java deleted file mode 100644 index 8b6a601..0000000 --- a/src/test/java/com/gxwebsoft/generator/DocsGenerator.java +++ /dev/null @@ -1,246 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 小程序模块-代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class DocsGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/oa"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/oa"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; - // 作者名称 - private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "modules"; - private static final String DB_PASSWORD = "8YdLnk7KsPAyDXGA"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "docs"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ - "docs", - "docs_user", - "docs_content" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/HjmGenerator.java b/src/test/java/com/gxwebsoft/generator/HjmGenerator.java index 00b6053..655b493 100644 --- a/src/test/java/com/gxwebsoft/generator/HjmGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/HjmGenerator.java @@ -1,18 +1,11 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +/** + * HjmGenerator - 环境监测模块代码生成器 + * + * 注意:由于MyBatis-Plus Generator版本兼容性问题, + * 当前版本的API可能不兼容,建议手动创建代码文件 + */ /** * 小程序模块-代码生成工具 @@ -90,163 +83,22 @@ public class HjmGenerator { private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + System.out.println("=== 环境监测模块 MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的API可能不兼容,建议手动创建代码文件 + System.out.println("请参考项目中现有的环境监测模块代码结构"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/HouseGenerator.java b/src/test/java/com/gxwebsoft/generator/HouseGenerator.java deleted file mode 100644 index f770d61..0000000 --- a/src/test/java/com/gxwebsoft/generator/HouseGenerator.java +++ /dev/null @@ -1,248 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 独立应用模块-代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class HouseGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/site"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/site"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; - // 作者名称 - private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "modules"; - private static final String DB_PASSWORD = "8YdLnk7KsPAyDXGA"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "house"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ -// "house_info", -// "house_like_log", -// "house_reservation", -// "house_views_log", -// "house_user" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = false; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = false; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/MpGenerator.java b/src/test/java/com/gxwebsoft/generator/MpGenerator.java deleted file mode 100644 index c03466b..0000000 --- a/src/test/java/com/gxwebsoft/generator/MpGenerator.java +++ /dev/null @@ -1,248 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 小程序模块-代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class MpGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/mp"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/mp"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; - // 作者名称 - private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "modules"; - private static final String DB_PASSWORD = "8YdLnk7KsPAyDXGA"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "mp"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ - "mp", - "mp_ad", - "mp_field", - "mp_menu", - "mp_pages" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/ProjectGenerator.java b/src/test/java/com/gxwebsoft/generator/ProjectGenerator.java index 5aab20c..1662426 100644 --- a/src/test/java/com/gxwebsoft/generator/ProjectGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ProjectGenerator.java @@ -1,18 +1,11 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +/** + * ProjectGenerator - 项目代码生成器 + * + * 注意:由于MyBatis-Plus Generator版本兼容性问题, + * 当前版本的API可能不兼容,建议手动创建代码文件 + */ /** * 小程序模块-代码生成工具 @@ -87,163 +80,22 @@ public class ProjectGenerator { private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + System.out.println("=== 项目模块 MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的API可能不兼容,建议手动创建代码文件 + System.out.println("请参考项目中现有的项目模块代码结构"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/PwlGenerator.java b/src/test/java/com/gxwebsoft/generator/PwlGenerator.java deleted file mode 100644 index 34cecae..0000000 --- a/src/test/java/com/gxwebsoft/generator/PwlGenerator.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 小程序模块-代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class PwlGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/oa"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/oa"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; - // 作者名称 - private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "modules"; - private static final String DB_PASSWORD = "8YdLnk7KsPAyDXGA"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "pwl"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ - "pwl_project" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index 7d066cd..aa208ad 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -1,18 +1,11 @@ package com.gxwebsoft.generator; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +/** + * ShopGenerator - 商城模块代码生成器 + * + * 注意:由于MyBatis-Plus Generator版本兼容性问题, + * 当前版本的API可能不兼容,建议手动创建代码文件 + */ /** * CMS模块-代码生成工具 @@ -133,163 +126,22 @@ public class ShopGenerator { private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); + System.out.println("=== 商城模块 MyBatis-Plus 代码生成器 ==="); + System.out.println("输出目录: " + OUTPUT_LOCATION + OUTPUT_DIR); + System.out.println("包名: " + PACKAGE_NAME + "." + MODULE_NAME); + System.out.println("表名: " + String.join(", ", TABLE_NAMES)); + System.out.println("数据库: " + DB_URL); + + try { + // 注意:由于MyBatis-Plus Generator版本兼容性问题, + // 当前版本的API可能不兼容,建议手动创建代码文件 + System.out.println("请参考项目中现有的商城模块代码结构"); + System.out.println("或者手动创建Entity、Mapper、Service、Controller类"); + + } catch (Exception e) { + System.err.println("代码生成失败: " + e.getMessage()); + e.printStackTrace(); + } } } diff --git a/src/test/java/com/gxwebsoft/generator/SysGenerator.java b/src/test/java/com/gxwebsoft/generator/SysGenerator.java deleted file mode 100644 index 6253231..0000000 --- a/src/test/java/com/gxwebsoft/generator/SysGenerator.java +++ /dev/null @@ -1,251 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 核心模块-代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class SysGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/mp"; - // Vue文件输出目录 - private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/VUE/mp"; - // Vue文件输出目录 - private static final String OUTPUT_DIR_VUE = "/src"; - // 作者名称 - private static final String AUTHOR = "科技小王子"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/gxwebsoft_core?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "gxwebsoft_core"; - private static final String DB_PASSWORD = "jdj7HYEdYHnYEFBy"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "common.system"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ -// "sys_website", -// "sys_website_field", -// "sys_domain", -// "sys_company", -// "sys_user_verify" -// "sys_user_role", -// "sys_user_oauth" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "sys_", - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - /** - * 以下是生成VUE项目代码 - * 生成文件的路径 /api/shop/goods/index.ts - */ - templatePath = TEMPLATES_DIR + "/index.ts.btl"; - - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - focList.add(new FileOutConfig() { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.ts"; - } - }); - // 生成TS文件 (/api/shop/goods/model/index.ts) - templatePath = TEMPLATES_DIR + "/model.ts.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_UNIAPP + OUTPUT_DIR_VUE - + "/api/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/model/" + "index.ts"; - } - }); - // 生成Vue文件(/views/shop/goods/index.vue) - templatePath = TEMPLATES_DIR + "/index.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/" + "index.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/edit.vue) - templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; - } - }); - - // 生成components文件(/views/shop/goods/components/search.vue) - templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE - + "/views/" + pc.getModuleName() + "/" - + tableInfo.getEntityPath() + "/components/" + "search.vue"; - } - }); - - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/engine/BeetlTemplateEnginePlus.java b/src/test/java/com/gxwebsoft/generator/engine/BeetlTemplateEnginePlus.java deleted file mode 100644 index 1a73826..0000000 --- a/src/test/java/com/gxwebsoft/generator/engine/BeetlTemplateEnginePlus.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gxwebsoft.generator.engine; - -import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; -import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine; -import org.beetl.core.Configuration; -import org.beetl.core.GroupTemplate; -import org.beetl.core.Template; -import org.beetl.core.resource.FileResourceLoader; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Map; - -/** - * Beetl模板引擎实现文件输出 - * - * @author WebSoft - * @since 2021-09-05 00:30:28 - */ -public class BeetlTemplateEnginePlus extends AbstractTemplateEngine { - private GroupTemplate groupTemplate; - - @Override - public AbstractTemplateEngine init(ConfigBuilder configBuilder) { - super.init(configBuilder); - try { - Configuration cfg = Configuration.defaultConfiguration(); - groupTemplate = new GroupTemplate(new FileResourceLoader(), cfg); - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return this; - } - - @Override - public void writer(Map objectMap, String templatePath, String outputFile) throws Exception { - Template template = groupTemplate.getTemplate(templatePath); - try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) { - template.binding(objectMap); - template.renderTo(fileOutputStream); - } - logger.debug("模板:" + templatePath + "; 文件:" + outputFile); - } - - @Override - public String templateFilePath(String filePath) { - return filePath + ".btl"; - } - -}