From 47e7a229a33b84d6c65b774aec1082760d3a425a Mon Sep 17 00:00:00 2001 From: caoshd Date: Tue, 2 Apr 2024 00:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE=20=E5=88=A0=E9=99=A4=20cla?= =?UTF-8?q?ssInfo=20=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/InfoClsBuilder.java | 48 ------ .../caoshd/otone/builder/InfoOutBuilder.java | 21 --- .../caoshd/otone/builder/SourceBuilder.java | 86 +++++----- .../space/caoshd/otone/entity/ClassInfo.java | 46 ------ .../caoshd/otone/entity/ContextInfo.java | 10 -- .../caoshd/otone/util/VelocityUtils.java | 1 - src/test/resources/config/config.properties | 2 +- src/test/resources/template/controller.vm | 156 +++++++++++++++++- src/test/resources/template/entity.vm | 4 +- src/test/resources/template/mapper.vm | 44 ++--- src/test/resources/template/query.vm | 6 +- src/test/resources/template/req.vm | 4 +- src/test/resources/template/res.vm | 4 +- .../resources/template/service.interface.vm | 43 ++--- src/test/resources/template/service.vm | 88 ++++++---- 15 files changed, 313 insertions(+), 250 deletions(-) delete mode 100644 src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java delete mode 100644 src/main/java/space/caoshd/otone/entity/ClassInfo.java diff --git a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java deleted file mode 100644 index 732db96..0000000 --- a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java +++ /dev/null @@ -1,48 +0,0 @@ -package space.caoshd.otone.builder; - -import space.caoshd.otone.entity.ClassInfo; -import space.caoshd.otone.helper.PropHelper; -import space.caoshd.otone.util.CfgUtils; -import space.caoshd.otone.util.PathConsts; -import space.caoshd.otone.util.StrUtils; - -import java.util.List; - -public class InfoClsBuilder { - - private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); - - private final ClassInfo classInfo = new ClassInfo(); - - private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { - List tablePrefixes = CONFIG.getStringList(CfgUtils.DATABASE_TABLE_PREFIXES); - for (String tablePrefix : tablePrefixes) { - tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix); - } - return tableNameWithoutPrefix; - } - - public InfoClsBuilder setTableName(String tableName) { - String tableNameWithoutPrefix = getTableNameWithoutPrefix(tableName); - String className = StrUtils.toCamelCase(tableNameWithoutPrefix, true); - this.classInfo.setClassName(className); - String classNameLow = StrUtils.toCamelCase(tableNameWithoutPrefix, false); - this.classInfo.setClassNameLow(classNameLow); - return this; - } - - public InfoClsBuilder setPackageName(String packageName) { - this.classInfo.setPackageName(packageName); - return this; - } - - public InfoClsBuilder setInterfacePackageName(String interfacePackageName) { - this.classInfo.setInterfacePackageName(interfacePackageName); - return this; - } - - public ClassInfo build() { - return classInfo; - } - -} diff --git a/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java index 04f06f7..321c5b7 100644 --- a/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java @@ -10,7 +10,6 @@ public class InfoOutBuilder { private final OutputInfo outputInfo = new OutputInfo(); - public InfoOutBuilder setTableInfoList(List tableInfoList) { this.outputInfo.setTableInfoList(tableInfoList); return this; @@ -36,26 +35,6 @@ public class InfoOutBuilder { return this; } - public InfoOutBuilder setPackageName(String packageName) { - this.outputInfo.setPackageName(packageName); - return this; - } - - public InfoOutBuilder setInterfacePackageName(String interfacePackageName) { - this.outputInfo.setInterfacePackageName(interfacePackageName); - return this; - } - - public InfoOutBuilder setEntityPackageName(String entityPackageName) { - this.outputInfo.setEntityPackageName(entityPackageName); - return this; - } - - public InfoOutBuilder setQueryPackageName(String queryPackageName) { - this.outputInfo.setQueryPackageName(queryPackageName); - return this; - } - public OutputInfo build() { this.outputInfo.setOutputFunction(className -> CfgUtils.getJavaFilePath( this.outputInfo.getPackagePath(), diff --git a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java index ddb0e05..e4ac9ed 100644 --- a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java @@ -2,7 +2,6 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import space.caoshd.otone.entity.ClassInfo; import space.caoshd.otone.entity.ContextInfo; import space.caoshd.otone.entity.OutputInfo; import space.caoshd.otone.entity.TableInfo; @@ -10,6 +9,7 @@ import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.FileUtils; import space.caoshd.otone.util.PathConsts; +import space.caoshd.otone.util.StrUtils; import space.caoshd.otone.util.VelocityUtils; import java.util.Arrays; @@ -29,13 +29,6 @@ public class SourceBuilder { private List tableInfoList; private List outputInfoList; - private static ClassInfo buildClassInfo(TableInfo tableInfo, OutputInfo outputInfo) { - return new InfoClsBuilder().setTableName(tableInfo.getTableName()) - .setPackageName(outputInfo.getPackageName()) - .setInterfacePackageName(outputInfo.getInterfacePackageName()) - .build(); - } - public SourceBuilder setTableInfo(TableInfo tableInfo) { this.tableInfo = tableInfo; return this; @@ -96,10 +89,10 @@ public class SourceBuilder { // 创建数据文件夹 FileUtils.mkdir(outputInfo.getPackagePath()); // 创建上下文环境信息 - ClassInfo classInfo = buildClassInfo(tableInfo, outputInfo); - ContextInfo contextInfo = createContextInfo(tableInfo, classInfo); + ContextInfo contextInfo = createContextInfo(tableInfo); // 判断输出文件是否已存在 - String outputPath = outputInfo.getOutputPath(classInfo.getClassName()); + String className = (String) contextInfo.getExtra().get("ClassName"); + String outputPath = outputInfo.getOutputPath(className); if (!FileUtils.exists(outputPath)) { // 输出文件不存在 直接生成 VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo); @@ -111,30 +104,33 @@ public class SourceBuilder { VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo); } else { // 配置不可以执行覆盖 提示错误消息 - LOGGER.warn("output file already exists: {}, " + "please remove it or enable auto " + "cover exist file," + LOGGER.warn( + "output file already exists: {}, " + "please remove it or enable auto " + + "cover exist file," + " config.properties should like [output.cover_if_exists=true]", outputPath ); } } - private ContextInfo createContextInfo(TableInfo tableInfo, ClassInfo classInfo) { + private ContextInfo createContextInfo(TableInfo tableInfo) { ContextInfo result = new ContextInfo(); // 设置表信息 result.setTableInfo(tableInfo); - // 设置类信息 - result.setClassInfo(classInfo); // 设置附加信息 - result.setExtra(loadExtra()); + result.setExtra(loadExtra(tableInfo.getTableName())); return result; } - private Map loadExtra() { + private Map loadExtra(String tableName) { extra.put("mapperPackageName", CfgUtils.getMapperPackageName()); extra.put("entityPackageName", CfgUtils.getEntityPackageName()); extra.put("resPackageName", CfgUtils.getResPackageName()); extra.put("reqPackageName", CfgUtils.getReqPackageName()); extra.put("queryPackageName", CfgUtils.getQueryPackageName()); + extra.put("servicePackageName", CfgUtils.getServicePackageName()); + extra.put("controllerPackageName", CfgUtils.getControllerPackageName()); + extra.put("serviceInterfacePackageName", CfgUtils.getServiceInterfacePackageName()); extra.put("controllerNameSuffix", CfgUtils.getControllerNameSuffix()); extra.put("serviceNameSuffix", CfgUtils.getServiceNameSuffix()); extra.put("servieInterfaceNamePrefix", CfgUtils.getServiceInterfacePrefix()); @@ -144,9 +140,21 @@ public class SourceBuilder { extra.put("reqNameSuffix", CfgUtils.getReqNameSuffix()); extra.put("queryNameSuffix", CfgUtils.getQueryNameSuffix()); extra.put("mybatisMapperEnable", CfgUtils.mybatisMapperEnable()); + String tableNameWithoutPrefix = getTableNameWithoutPrefix(tableName); + extra.put("ClassName", StrUtils.toCamelCase(tableNameWithoutPrefix, true)); + extra.put("className", StrUtils.toCamelCase(tableNameWithoutPrefix, false)); + return extra; } + private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { + List tablePrefixes = CONFIG.getStringList(CfgUtils.DATABASE_TABLE_PREFIXES); + for (String tablePrefix : tablePrefixes) { + tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix); + } + return tableNameWithoutPrefix; + } + private void build(TableInfo tableInfo, List outputInfoList) { // 循环输出信息 for (OutputInfo outputInfo : outputInfoList) { @@ -157,57 +165,61 @@ public class SourceBuilder { private List defaultOutputInfoList() { return Arrays.asList( - // PO - new InfoOutBuilder().setNameSuffix(CfgUtils.getEntityNameSuffix()) + // ENTITY + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getEntityNameSuffix()) .setTemplatePath(CfgUtils.getEntityTemplatePath()) .setPackagePath(CfgUtils.getEntityPackagePath()) - .setPackageName(CfgUtils.getEntityPackageName()) .build(), // MAPPER - new InfoOutBuilder().setNameSuffix(CfgUtils.getMapperNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getMapperNameSuffix()) .setTemplatePath(CfgUtils.getMapperTemplatePath()) .setPackagePath(CfgUtils.getMapperPackagePath()) - .setPackageName(CfgUtils.getMapperPackageName()) - .setEntityPackageName(CfgUtils.getEntityPackageName()) - .setQueryPackageName(CfgUtils.getQueryPackageName()) .build(), // SERVICE - new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getServiceNameSuffix()) .setTemplatePath(CfgUtils.getServiceTemplatePath()) .setPackagePath(CfgUtils.getServicePackagePath()) - .setPackageName(CfgUtils.getServicePackageName()) - .setInterfacePackageName(CfgUtils.getServiceInterfacePackageName()) .build(), // SERVICE INTERFACE - new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) + new InfoOutBuilder() .setNamePrefix(CfgUtils.getServiceInterfacePrefix()) + .setNameSuffix(CfgUtils.getServiceNameSuffix()) .setTemplatePath(CfgUtils.getServiceInterfaceTemplatePath()) .setPackagePath(CfgUtils.getServiceInterfacePackagePath()) - .setPackageName(CfgUtils.getServiceInterfacePackageName()) .build(), // CONTROLLER - new InfoOutBuilder().setNameSuffix(CfgUtils.getControllerNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getControllerNameSuffix()) .setTemplatePath(CfgUtils.getControllerTemplatePath()) .setPackagePath(CfgUtils.getControllerPackagePath()) - .setPackageName(CfgUtils.getControllerPackageName()) .build(), // VIEW - new InfoOutBuilder().setNameSuffix(CfgUtils.getResNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getResNameSuffix()) .setTemplatePath(CfgUtils.getResTemplatePath()) .setPackagePath(CfgUtils.getResPackagePath()) - .setPackageName(CfgUtils.getResPackageName()) .build(), // FORM - new InfoOutBuilder().setNameSuffix(CfgUtils.getReqNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getReqNameSuffix()) .setTemplatePath(CfgUtils.getReqTemplatePath()) .setPackagePath(CfgUtils.getReqPackagePath()) - .setPackageName(CfgUtils.getReqPackageName()) .build(), // QUERY - new InfoOutBuilder().setNameSuffix(CfgUtils.getQueryNameSuffix()) + new InfoOutBuilder() + .setNamePrefix("") + .setNameSuffix(CfgUtils.getQueryNameSuffix()) .setTemplatePath(CfgUtils.getQueryTemplatePath()) .setPackagePath(CfgUtils.getQueryPackagePath()) - .setPackageName(CfgUtils.getQueryPackageName()) .build() ); } diff --git a/src/main/java/space/caoshd/otone/entity/ClassInfo.java b/src/main/java/space/caoshd/otone/entity/ClassInfo.java deleted file mode 100644 index d7c5450..0000000 --- a/src/main/java/space/caoshd/otone/entity/ClassInfo.java +++ /dev/null @@ -1,46 +0,0 @@ -package space.caoshd.otone.entity; - -public class ClassInfo { - - private String packageName; - - private String className; - - private String classNameLow; - - private String interfacePackageName; - - - public String getPackageName() { - return packageName; - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public String getClassName() { - return className; - } - - public void setClassName(String className) { - this.className = className; - } - - public String getClassNameLow() { - return classNameLow; - } - - public void setClassNameLow(String classNameLow) { - this.classNameLow = classNameLow; - } - - public String getInterfacePackageName() { - return interfacePackageName; - } - - public void setInterfacePackageName(String interfacePackageName) { - this.interfacePackageName = interfacePackageName; - } - -} diff --git a/src/main/java/space/caoshd/otone/entity/ContextInfo.java b/src/main/java/space/caoshd/otone/entity/ContextInfo.java index f78635f..444195f 100644 --- a/src/main/java/space/caoshd/otone/entity/ContextInfo.java +++ b/src/main/java/space/caoshd/otone/entity/ContextInfo.java @@ -6,8 +6,6 @@ public class ContextInfo { private TableInfo tableInfo; - private ClassInfo classInfo; - private Map extra; public TableInfo getTableInfo() { @@ -18,14 +16,6 @@ public class ContextInfo { this.tableInfo = tableInfo; } - public ClassInfo getClassInfo() { - return classInfo; - } - - public void setClassInfo(ClassInfo classInfo) { - this.classInfo = classInfo; - } - public Map getExtra() { return extra; } diff --git a/src/main/java/space/caoshd/otone/util/VelocityUtils.java b/src/main/java/space/caoshd/otone/util/VelocityUtils.java index 1623cc5..f2e1df5 100644 --- a/src/main/java/space/caoshd/otone/util/VelocityUtils.java +++ b/src/main/java/space/caoshd/otone/util/VelocityUtils.java @@ -26,7 +26,6 @@ public class VelocityUtils { VelocityContext context = new VelocityContext(); context.put("tbl", ctx.getTableInfo()); - context.put("cls", ctx.getClassInfo()); context.put("ext", ctx.getExtra()); Template template = Velocity.getTemplate(templatePath, StandardCharsets.UTF_8.name()); diff --git a/src/test/resources/config/config.properties b/src/test/resources/config/config.properties index 692b56f..2d9f5ab 100644 --- a/src/test/resources/config/config.properties +++ b/src/test/resources/config/config.properties @@ -22,7 +22,7 @@ package.name.service.interface=service #java.name.suffix.form=Req #java.name.suffix.query=Query #java.name.suffix.mapper=Mapper -#java.name.suffix.entity= +#java.name.suffix.entity=Entity #database.name.schemas=otone #database.name.tables= database.table.prefixes=t_,m_ diff --git a/src/test/resources/template/controller.vm b/src/test/resources/template/controller.vm index c2ce25e..4035536 100644 --- a/src/test/resources/template/controller.vm +++ b/src/test/resources/template/controller.vm @@ -8,10 +8,20 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.controllerNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.controllerNameSuffix}") +#set(${ReqName}="${ext.ClassName}$!{ext.reqNameSuffix}") +#set(${ResName}="${ext.ClassName}$!{ext.resNameSuffix}") +#set(${ServiceInterfaceName}="$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}") +#set(${serviceName}="${ext.ClassName}$!{ext.serviceNameSuffix}") +package ${ext.controllerPackageName}; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; +import ${ext.reqPackageName}.${ReqName}; +import ${ext.resPackageName}.${ResName}; +import ${ext.serviceInterfacePackageName}.${ServiceInterfaceName}; + +import java.util.List; /** * $!{tbl.comment}控制器 @@ -19,4 +29,146 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController public class ${ClassName} { + + @Autowired + private ${ServiceInterfaceName} ${serviceName}; + + /** + * 新增/修改$!{tbl.comment} + * + * @param bean 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + Integer update(${ReqName} bean){ + return null; + } + + /** + * 批量新增/修改$!{tbl.comment} + * + * @param list 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + Integer updateBatch(List<${ReqName}> list) { + return null; + } + + /** + * 物理删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + Integer delete(${ReqName} bean) { + return null; + } + +#if(${invalidColumnExists}) + /** + * 逻辑删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + Integer invalid(${ReqName} bean) { + return null; + } + +#end + /** + * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 + * + * @param bean 查询条件 + * @return 单个 + */ + ${ResName} anyOne(${ReqName} bean) { + return null; + } + + /** + * 查询单个$!{tbl.comment} 明确知道结果必存在一个 + * + * @param bean 查询条件 + * @return 单个 + */ + ${ResName} onlyOne(${ReqName} bean) { + return null; + } + + /** + * 查询多个$!{tbl.comment} + * + * @param bean 查询条件 + * @return 列表 + */ + List<${ResName}> list(${ReqName} bean) { + return null; + } + + /** + * 统计符合条件的$!{tbl.comment}实体个数 + * + * @param bean 查询条件 + * @return 统计结果 + */ + Long count(${ReqName} bean) { + return null; + } + +#foreach($indexColumns in ${tbl.indexes}) +#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") +#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") +#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") +#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 通过唯一键查询单个$!{tbl.comment} + * ${paramComments} + * @return 单个$!{tbl.comment} + */ + ${ResName} $methodName(${paramNames}){ + return null; + } + +#end +#foreach($indexColumns in ${tbl.indexes}) +#set(${methodNameWithSuffix}="deleteBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") +#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") +#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.javaType} ${indexColumn.fieldName}, #end") +#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 通过唯一键删除单个$!{tbl.comment} + * ${paramComments} + * @return 影响记录数 + */ + Integer $methodName(${paramNames}) { + return null; + } + +#end +#if(${invalidColumnExists}) +#foreach($indexColumns in ${tbl.indexes}) +#set(${methodNameWithSuffix}="invalidBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") +#set(${methodName}="$methodNameWithSuffix.substring(0, $methodNameWithSuffix.length() - 3)") +#set(${paramNamesWithSuffix}="#foreach($indexColumn in ${indexColumns})@Param(""${indexColumn.fieldName}"") ${indexColumn.javaType} ${indexColumn.fieldName}, #end") +#set(${paramNames}="$paramNamesWithSuffix.substring(0, $paramNamesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 逻辑删除$!{tbl.comment} + * ${paramComments} + * @return 影响记录数 + */ + Integer $methodName(${paramNames}){ + return null; + } + +#end +#end } \ No newline at end of file diff --git a/src/test/resources/template/entity.vm b/src/test/resources/template/entity.vm index 73772e6..5941d91 100644 --- a/src/test/resources/template/entity.vm +++ b/src/test/resources/template/entity.vm @@ -8,8 +8,8 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.entityNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.entityNameSuffix}") +package ${ext.entityPackageName}; import java.io.Serializable; #if(${tbl.decimalExists}) diff --git a/src/test/resources/template/mapper.vm b/src/test/resources/template/mapper.vm index 2060c37..3baa49b 100644 --- a/src/test/resources/template/mapper.vm +++ b/src/test/resources/template/mapper.vm @@ -10,10 +10,10 @@ #end #set(${invalidColumnExists}=${tbl.invalidColumn} && ${tbl.invalidColumn} != "") #set(${pkColumn}=${tbl.indexes["PRIMARY"][0]}) -#set(${ClassName}="${cls.className}$!{ext.mapperNameSuffix}") -#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") -#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.mapperNameSuffix}") +#set(${QueryName}="${ext.ClassName}$!{ext.queryNameSuffix}") +#set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}") +package ${ext.mapperPackageName}; #if(${ext.mybatisMapperEnable}) import org.apache.ibatis.annotations.Mapper; @@ -36,83 +36,83 @@ public interface ${ClassName} { /** * 新增/修改$!{tbl.comment} * - * @param bean 主键为空-新增实体、主键非空-更新条件 + * @param query 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ - Integer update( - @Param("bean") ${QueryName} bean + Integer updateInsert( + @Param("query") ${QueryName} query ); /** * 批量新增/修改$!{tbl.comment} * - * @param list 主键为空-新增实体、主键非空-更新条件 + * @param queries 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ - Integer updateBatch( - @Param("list") List<${QueryName}> list + Integer updateInsertBatch( + @Param("queries") List<${QueryName}> queries ); /** * 物理删除$!{tbl.comment} * - * @param bean 删除条件 + * @param query 删除条件 * @return 影响记录数 */ Integer delete( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); #if(${invalidColumnExists}) /** * 逻辑删除$!{tbl.comment} * - * @param bean 删除条件 + * @param query 删除条件 * @return 影响记录数 */ Integer invalid( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); #end /** * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * - * @param bean 查询条件 + * @param query 查询条件 * @return 单个 */ ${EntityName} anyOne( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); /** * 查询单个$!{tbl.comment} 明确知道结果必存在一个 * - * @param bean 查询条件 + * @param query 查询条件 * @return 单个 */ ${EntityName} onlyOne( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); /** * 查询多个$!{tbl.comment} * - * @param bean 查询条件 + * @param query 查询条件 * @return 列表 */ List<${EntityName}> list( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); /** * 统计符合条件的$!{tbl.comment}实体个数 * - * @param bean 查询条件 + * @param query 查询条件 * @return 统计结果 */ Long count( - @Param("bean") ${QueryName} bean + @Param("query") ${QueryName} query ); #foreach($indexColumns in ${tbl.indexes}) diff --git a/src/test/resources/template/query.vm b/src/test/resources/template/query.vm index dc4da40..a271719 100644 --- a/src/test/resources/template/query.vm +++ b/src/test/resources/template/query.vm @@ -8,13 +8,13 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.queryNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.queryNameSuffix}") +package ${ext.queryPackageName}; /** * $!{tbl.comment}查询 * ${authorComment}${versionComment} */ -public class ${cls.className}$!{ext.queryNameSuffix} { +public class ${ext.ClassName}$!{ext.queryNameSuffix} { } \ No newline at end of file diff --git a/src/test/resources/template/req.vm b/src/test/resources/template/req.vm index 4a2f56d..867b8f5 100644 --- a/src/test/resources/template/req.vm +++ b/src/test/resources/template/req.vm @@ -8,8 +8,8 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.reqNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.reqNameSuffix}") +package ${ext.reqPackageName}; /** * $!{tbl.comment}表单提交 diff --git a/src/test/resources/template/res.vm b/src/test/resources/template/res.vm index de03e66..e9c6a96 100644 --- a/src/test/resources/template/res.vm +++ b/src/test/resources/template/res.vm @@ -8,8 +8,8 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.resNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.resNameSuffix}") +package ${ext.resPackageName}; /** * $!{tbl.comment}视图 diff --git a/src/test/resources/template/service.interface.vm b/src/test/resources/template/service.interface.vm index 27bfe22..5ce92c4 100644 --- a/src/test/resources/template/service.interface.vm +++ b/src/test/resources/template/service.interface.vm @@ -8,12 +8,13 @@ * @version ${ext.version}#end #end -#set($InterfaceName="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}") -#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") -#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") -package ${cls.packageName}; +#set($InterfaceName="$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}") +#set(${ReqName}="${ext.ClassName}$!{ext.ReqNameSuffix}") +#set(${ReqName}="${ext.ClassName}$!{ext.reqNameSuffix}") +#set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}") +package ${ext.serviceInterfacePackageName}; -import ${ext.queryPackageName}.${QueryName}; +import ${ext.reqPackageName}.${ReqName}; import ${ext.entityPackageName}.${EntityName}; import java.util.List; @@ -26,68 +27,68 @@ public interface $InterfaceName { /** * 新增/修改$!{tbl.comment} * - * @param bean 主键为空-新增实体、主键非空-更新条件 + * @param query 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ - Integer update(${QueryName} bean); + Integer updateInsert(${ReqName} query); /** * 批量新增/修改$!{tbl.comment} * - * @param list 主键为空-新增实体、主键非空-更新条件 + * @param queries 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ - Integer updateBatch(List<${QueryName}> list); + Integer updateInsertBatch(List<${ReqName}> queries); /** * 物理删除$!{tbl.comment} * - * @param bean 删除条件 + * @param query 删除条件 * @return 影响记录数 */ - Integer delete(${QueryName} bean); + Integer delete(${ReqName} query); #if(${invalidColumnExists}) /** * 逻辑删除$!{tbl.comment} * - * @param bean 删除条件 + * @param query 删除条件 * @return 影响记录数 */ - Integer invalid(${QueryName} bean); + Integer invalid(${ReqName} query); #end /** * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * - * @param bean 查询条件 + * @param query 查询条件 * @return 单个 */ - ${EntityName} anyOne(${QueryName} bean); + ${EntityName} anyOne(${ReqName} query); /** * 查询单个$!{tbl.comment} 明确知道结果必存在一个 * - * @param bean 查询条件 + * @param query 查询条件 * @return 单个 */ - ${EntityName} onlyOne(${QueryName} bean); + ${EntityName} onlyOne(${ReqName} query); /** * 查询多个$!{tbl.comment} * - * @param bean 查询条件 + * @param query 查询条件 * @return 列表 */ - List<${EntityName}> list(${QueryName} bean); + List<${EntityName}> list(${ReqName} query); /** * 统计符合条件的$!{tbl.comment}实体个数 * - * @param bean 查询条件 + * @param query 查询条件 * @return 统计结果 */ - Long count(${QueryName} bean); + Long count(${ReqName} query); #foreach($indexColumns in ${tbl.indexes}) #set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") diff --git a/src/test/resources/template/service.vm b/src/test/resources/template/service.vm index 5f74b72..f08be58 100644 --- a/src/test/resources/template/service.vm +++ b/src/test/resources/template/service.vm @@ -8,21 +8,26 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.serviceNameSuffix}") -#set(${InterfaceName}="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}") -#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") -#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") -#set(${MapperName}="${cls.className}$!{ext.mapperNameSuffix}") -#set(${mapperName}="${cls.classNameLow}$!{ext.mapperNameSuffix}") -package ${cls.packageName}; +#set(${ClassName}="${ext.ClassName}$!{ext.serviceNameSuffix}") +#set(${InterfaceName}="$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}") +#set(${QueryName}="${ext.ClassName}$!{ext.queryNameSuffix}") +#set(${ReqName}="${ext.ClassName}$!{ext.reqNameSuffix}") +#set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}") +#set(${MapperName}="${ext.ClassName}$!{ext.mapperNameSuffix}") +#set(${mapperName}="${ext.className}$!{ext.mapperNameSuffix}") +package ${ext.servicePackageName}; + +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import ${ext.reqPackageName}.${ReqName}; import ${ext.entityPackageName}.${EntityName}; import ${ext.mapperPackageName}.${MapperName}; import ${ext.queryPackageName}.${QueryName}; -import ${cls.interfacePackageName}.$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}; +import ${ext.serviceInterfacePackageName}.$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}; import java.util.List; +import java.util.stream.Collectors; /** * $!{tbl.comment}服务 @@ -37,91 +42,110 @@ public class ${ClassName} implements ${InterfaceName} { /** * 新增/修改$!{tbl.comment} * - * @param bean 主键为空-新增实体、主键非空-更新条件 + * @param req 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ @Override - public Integer update(${QueryName} bean) { - return ${mapperName}.update(bean); + public Integer updateInsert(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.updateInsert(query); } /** * 批量新增/修改$!{tbl.comment} * - * @param list 主键为空-新增实体、主键非空-更新条件 + * @param reqs 主键为空-新增实体、主键非空-更新条件 * @return 影响记录数 */ @Override - public Integer updateBatch(List<${QueryName}> list) { - return ${mapperName}.updateBatch(list); + public Integer updateInsertBatch(List<${ReqName}> reqs) { + List<${QueryName}> queries = reqs.stream().map(req -> { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return query; + }).collect(Collectors.toList()); + return ${mapperName}.updateInsertBatch(queries); } /** * 物理删除$!{tbl.comment} * - * @param bean 删除条件 + * @param req 删除条件 * @return 影响记录数 */ @Override - public Integer delete(${QueryName} bean) { - return ${mapperName}.delete(bean); + public Integer delete(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.delete(query); } #if(${invalidColumnExists}) /** * 逻辑删除$!{tbl.comment} * - * @param bean 删除条件 + * @param req 删除条件 * @return 影响记录数 */ @Override - public Integer invalid(${QueryName} bean) { - return ${mapperName}.invalid(bean); + public Integer invalid(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.invalid(query); } #end /** * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * - * @param bean 查询条件 + * @param req 查询条件 * @return 单个 */ @Override - public ${EntityName} anyOne(${QueryName} bean) { - return ${mapperName}.anyOne(bean); + public ${EntityName} anyOne(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.anyOne(query); } /** * 查询单个$!{tbl.comment} 明确知道结果必存在一个 * - * @param bean 查询条件 + * @param req 查询条件 * @return 单个 */ @Override - public ${EntityName} onlyOne(${QueryName} bean) { - return ${mapperName}.onlyOne(bean); + public ${EntityName} onlyOne(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.onlyOne(query); } /** * 查询多个$!{tbl.comment} * - * @param bean 查询条件 + * @param req 查询条件 * @return 列表 */ @Override - public List<${EntityName}> list(${QueryName} bean) { - return ${mapperName}.list(bean); + public List<${EntityName}> list(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.list(query); } /** * 统计符合条件的$!{tbl.comment}实体个数 * - * @param bean 查询条件 + * @param req 查询条件 * @return 统计结果 */ @Override - public Long count(${QueryName} bean) { - return ${mapperName}.count(bean); + public Long count(${ReqName} req) { + ${QueryName} query = new ${QueryName}(); + BeanUtils.copyProperties(req, query); + return ${mapperName}.count(query); } #foreach($indexColumns in ${tbl.indexes})