diff --git a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java index 9d8685f..09eca3a 100644 --- a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java @@ -58,7 +58,7 @@ public class CmsGenerator { // "cms_website_field", // "cms_form", // "cms_form_record", - "cms_domain" +// "cms_domain" }; // 需要去除的表前缀 diff --git a/src/test/java/com/gxwebsoft/generator/OaGenerator.java b/src/test/java/com/gxwebsoft/generator/OaGenerator.java index 77160eb..868b4d3 100644 --- a/src/test/java/com/gxwebsoft/generator/OaGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/OaGenerator.java @@ -59,8 +59,8 @@ public class OaGenerator { // "oa_company_field", // "oa_company_user", // "oa_order", - "oa_goods", - "oa_goods_category" +// "oa_goods", +// "oa_goods_category" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java new file mode 100644 index 0000000..ae880ed --- /dev/null +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -0,0 +1,176 @@ +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 ShopGenerator { + // 输出位置 + 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"; + // 作者名称 + 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 = "FYJGx7s8yt7K8xDH"; + // 包名 + private static final String PACKAGE_NAME = "com.gxwebsoft"; + // 模块名 + private static final String MODULE_NAME = "shop"; + // 需要生成的表 + private static final String[] TABLE_NAMES = new String[]{ + "shop_goods", + "shop_goods_attr", + "shop_goods_attr_result", + "shop_goods_attr_value", + "shop_goods_category", + "shop_goods_coupon", + "shop_goods_description", + "shop_goods_log", + "shop_goods_relation", + "shop_goods_comment", + "shop_goods_rule" + }; + // 需要去除的表前缀 + private static final String[] TABLE_PREFIX = new String[]{ + "shop_", + "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; + } + }); + cfg.setFileOutConfigList(focList); + mpg.setCfg(cfg); + + mpg.execute(); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl b/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl index bdea0f5..39fab37 100644 --- a/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl +++ b/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl @@ -71,11 +71,8 @@ public class ${table.controllerName} { <% } %> @GetMapping("/page") public ApiResult> page(${entity}Param param) { - PageParam<${entity}, ${entity}Param> page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(${serviceIns}.page(page, page.getWrapper())); // 使用关联查询 - //return success(${serviceIns}.pageRel(param)); + return success(${serviceIns}.pageRel(param)); } <% if(!swagger2) { %> @@ -91,11 +88,8 @@ public class ${table.controllerName} { <% } %> @GetMapping() public ApiResult> list(${entity}Param param) { - PageParam<${entity}, ${entity}Param> page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(${serviceIns}.list(page.getOrderWrapper())); // 使用关联查询 - //return success(${serviceIns}.listRel(param)); + return success(${serviceIns}.listRel(param)); } <% if(!swagger2) { %> @@ -106,9 +100,8 @@ public class ${table.controllerName} { @ApiOperation("根据id查询${table.comment!}") @GetMapping("/{id}") public ApiResult<${entity}> get(@PathVariable("id") Integer id) { - return success(${serviceIns}.getById(id)); // 使用关联查询 - //return success(${serviceIns}.getByIdRel(id)); + return success(${serviceIns}.getByIdRel(id)); } <% if(!swagger2) { %> diff --git a/src/test/java/com/gxwebsoft/generator/templates/serviceImpl.java.btl b/src/test/java/com/gxwebsoft/generator/templates/serviceImpl.java.btl index e63a0b9..20b998d 100644 --- a/src/test/java/com/gxwebsoft/generator/templates/serviceImpl.java.btl +++ b/src/test/java/com/gxwebsoft/generator/templates/serviceImpl.java.btl @@ -37,7 +37,7 @@ public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.m @Override public PageResult<${entity}> pageRel(${entity}Param param) { PageParam<${entity}, ${entity}Param> page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); List<${entity}> list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -47,7 +47,7 @@ public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.m List<${entity}> list = baseMapper.selectListRel(param); // 排序 PageParam<${entity}, ${entity}Param> page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); return page.sortRecords(list); } diff --git a/src/test/java/com/gxwebsoft/generatorVue/ShopVueGenerator.java b/src/test/java/com/gxwebsoft/generatorVue/ShopVueGenerator.java new file mode 100644 index 0000000..60a4d34 --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/ShopVueGenerator.java @@ -0,0 +1,185 @@ +package com.gxwebsoft.generatorVue; + +import com.baomidou.mybatisplus.annotation.IdType; +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 ShopVueGenerator { + // 输出位置 +// private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); + private static final String OUTPUT_LOCATION = "/Users/gxwebsoft/VUE/com.gxwebsoft.core-web"; // 不想生成到项目中可以写磁盘路径 + // 输出目录 + private static final String OUTPUT_DIR = "/generator"; + // 作者名称 + 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 = "FYJGx7s8yt7K8xDH"; + // 包名 + private static final String PACKAGE_NAME = ""; + // 模块名 + private static final String MODULE_NAME = "shop"; + // 需要生成的表 + private static final String[] TABLE_NAMES = new String[]{ + "shop_goods", +// "shop_goods_attr", +// "shop_goods_attr_result", +// "shop_goods_attr_value", +// "shop_goods_category", +// "shop_goods_coupon", +// "shop_goods_description", +// "shop_goods_log", +// "shop_goods_relation", +// "shop_goods_comment", + "shop_goods_rule" + }; + // 需要去除的表前缀 + private static final String[] TABLE_PREFIX = new String[]{ + "shop_", + "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/generatorVue/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 + "/index.ts"); +// templateConfig.setEntity(TEMPLATES_DIR + "/model.ts"); +// templateConfig.setMapper(TEMPLATES_DIR + "/search.vue"); +// templateConfig.setXml(TEMPLATES_DIR + "/search.vue"); +// templateConfig.setService(TEMPLATES_DIR + "/index.vue"); +// templateConfig.setServiceImpl(TEMPLATES_DIR + "/components.edit.vue"); + 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 + "/index.ts.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() + "/api/" + + tableInfo.getEntityPath() + '/' + "index.ts"; + } + }); + templatePath = TEMPLATES_DIR + "/model.ts.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION + OUTPUT_DIR + "/" + + PACKAGE_NAME.replace(".", "/") + + "/" + pc.getModuleName() + "/api/" + + tableInfo.getEntityPath() + "/model/" + "index.ts"; + } + }); + cfg.setFileOutConfigList(focList); + mpg.setCfg(cfg); + + mpg.execute(); + } + +} diff --git a/src/test/java/com/gxwebsoft/generatorVue/engine/BeetlTemplateEnginePlus.java b/src/test/java/com/gxwebsoft/generatorVue/engine/BeetlTemplateEnginePlus.java new file mode 100644 index 0000000..da2578b --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/engine/BeetlTemplateEnginePlus.java @@ -0,0 +1,50 @@ +package com.gxwebsoft.generatorVue.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"; + } + +} diff --git a/src/test/java/com/gxwebsoft/generatorVue/templates/components.edit.vue.btl b/src/test/java/com/gxwebsoft/generatorVue/templates/components.edit.vue.btl new file mode 100644 index 0000000..0b4d064 --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/templates/components.edit.vue.btl @@ -0,0 +1,361 @@ + + + + + diff --git a/src/test/java/com/gxwebsoft/generatorVue/templates/index.ts.btl b/src/test/java/com/gxwebsoft/generatorVue/templates/index.ts.btl new file mode 100644 index 0000000..9d0b5e9 --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/templates/index.ts.btl @@ -0,0 +1,106 @@ +import request from '@/utils/request'; +import type { ApiResult, PageResult } from '@/api'; +import type { ${entity}, ${entity}Param } from './model'; +import { MODULES_API_URL } from '@/config/setting'; + +/** + * 分页查询${table.comment!} + */ +export async function page${entity}(params: ${entity}Param) { + const res = await request.get>>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}/page', + { + params + } + ); + if (res.data.code === 0) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 查询${table.comment!}列表 + */ +export async function list${entity}(params?: ${entity}Param) { + const res = await request.get>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}', + { + params + } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 添加${table.comment!} + */ +export async function add${entity}(data: ${entity}) { + const res = await request.post>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 修改${table.comment!} + */ +export async function update${entity}(data: ${entity}) { + const res = await request.put>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}', + data + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 删除${table.comment!} + */ +export async function remove${entity}(id?: number) { + const res = await request.delete>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}/' + id + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 批量删除${table.comment!} + */ +export async function removeBatch${entity}(data: (number | undefined)[]) { + const res = await request.delete>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}/batch', + { + data + } + ); + if (res.data.code === 0) { + return res.data.message; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 根据id查询${table.comment!} + */ +export async function get${entity}(id: number) { + const res = await request.get>( + MODULES_API_URL + '/shop/${controllerMappingHyphen}/' + id + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/test/java/com/gxwebsoft/generatorVue/templates/index.vue.btl b/src/test/java/com/gxwebsoft/generatorVue/templates/index.vue.btl new file mode 100644 index 0000000..b2365b2 --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/templates/index.vue.btl @@ -0,0 +1,242 @@ + + + + + + + diff --git a/src/test/java/com/gxwebsoft/generatorVue/templates/model.ts.btl b/src/test/java/com/gxwebsoft/generatorVue/templates/model.ts.btl new file mode 100644 index 0000000..f9907a8 --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/templates/model.ts.btl @@ -0,0 +1,42 @@ +import type { PageParam } from '@/api'; + +/** + * ${table.comment!} + */ +export interface ${entity} { +<% /** -----------BEGIN 字段循环遍历----------- **/ %> +<% for(field in table.fields) { %> + <% + var keyPropertyName; + if(field.keyFlag) { + keyPropertyName = field.propertyName; + } + %> + <% /* 主键 */ %> + <% if(field.keyFlag) { %> + <% /* 普通字段 */ %> + <% } else if(isNotEmpty(field.fill)) { %> + <% if(field.convert){ %> + @TableField(value = "${field.annotationColumnName}", fill = FieldFill.${field.fill}) + <% }else{ %> + @TableField(fill = FieldFill.${field.fill}) + <% } %> + <% } else if(field.convert) { %> + @TableField("${field.annotationColumnName}") + <% } %> + ${field.propertyName}?: <% if(field.propertyType == 'Integer') { %>number<% }else{ %>string<% } %>; +<% } %> +<% /** -----------END 字段循环遍历----------- **/ %> +} + +/** + * ${table.comment!}搜索条件 + */ +export interface ${entity}Param extends PageParam { +<% for(field in table.fields) { %> +<% if(field.keyFlag) { %> + ${field.propertyName}?: number; + <% } %> +<% } %> + keywords?: string; +} diff --git a/src/test/java/com/gxwebsoft/generatorVue/templates/search.vue.btl b/src/test/java/com/gxwebsoft/generatorVue/templates/search.vue.btl new file mode 100644 index 0000000..82fea9d --- /dev/null +++ b/src/test/java/com/gxwebsoft/generatorVue/templates/search.vue.btl @@ -0,0 +1,42 @@ + + + +