From b1f746a122c484c6eb6a9f4485dc2bdd170a4287 Mon Sep 17 00:00:00 2001 From: caoshd Date: Sun, 31 Mar 2024 22:59:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=20=E4=BC=98=E5=8C=96=20Serv?= =?UTF-8?q?ice=20=E6=A8=A1=E6=9D=BF=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/InfoClsBuilder.java | 2 + .../caoshd/otone/builder/SourceBuilder.java | 5 +- .../space/caoshd/otone/entity/ClassInfo.java | 10 + src/test/resources/template/req.vm | 2 +- .../resources/template/service.interface.vm | 122 +++++++++++++ src/test/resources/template/service.vm | 171 +++++++++++++++++- 6 files changed, 309 insertions(+), 3 deletions(-) diff --git a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java index 8925ebd..732db96 100644 --- a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java @@ -26,6 +26,8 @@ public class InfoClsBuilder { 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; } diff --git a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java index db29c7a..ddb0e05 100644 --- a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java @@ -130,7 +130,10 @@ public class SourceBuilder { } private Map loadExtra() { + 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("controllerNameSuffix", CfgUtils.getControllerNameSuffix()); extra.put("serviceNameSuffix", CfgUtils.getServiceNameSuffix()); @@ -138,7 +141,7 @@ public class SourceBuilder { extra.put("mapperNameSuffix", CfgUtils.getMapperNameSuffix()); extra.put("entityNameSuffix", CfgUtils.getEntityNameSuffix()); extra.put("resNameSuffix", CfgUtils.getResNameSuffix()); - extra.put("formNameSuffix", CfgUtils.getReqNameSuffix()); + extra.put("reqNameSuffix", CfgUtils.getReqNameSuffix()); extra.put("queryNameSuffix", CfgUtils.getQueryNameSuffix()); extra.put("mybatisMapperEnable", CfgUtils.mybatisMapperEnable()); return extra; diff --git a/src/main/java/space/caoshd/otone/entity/ClassInfo.java b/src/main/java/space/caoshd/otone/entity/ClassInfo.java index b9e06f0..d7c5450 100644 --- a/src/main/java/space/caoshd/otone/entity/ClassInfo.java +++ b/src/main/java/space/caoshd/otone/entity/ClassInfo.java @@ -6,6 +6,8 @@ public class ClassInfo { private String className; + private String classNameLow; + private String interfacePackageName; @@ -25,6 +27,14 @@ public class ClassInfo { this.className = className; } + public String getClassNameLow() { + return classNameLow; + } + + public void setClassNameLow(String classNameLow) { + this.classNameLow = classNameLow; + } + public String getInterfacePackageName() { return interfacePackageName; } diff --git a/src/test/resources/template/req.vm b/src/test/resources/template/req.vm index 0f244d8..4a2f56d 100644 --- a/src/test/resources/template/req.vm +++ b/src/test/resources/template/req.vm @@ -8,7 +8,7 @@ * @version ${ext.version}#end #end -#set(${ClassName}="${cls.className}$!{ext.formNameSuffix}") +#set(${ClassName}="${cls.className}$!{ext.reqNameSuffix}") package ${cls.packageName}; /** diff --git a/src/test/resources/template/service.interface.vm b/src/test/resources/template/service.interface.vm index a3c9f8a..27bfe22 100644 --- a/src/test/resources/template/service.interface.vm +++ b/src/test/resources/template/service.interface.vm @@ -9,12 +9,134 @@ * @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}; +import ${ext.queryPackageName}.${QueryName}; +import ${ext.entityPackageName}.${EntityName}; + +import java.util.List; + /** * $!{tbl.comment}服务接口 * ${authorComment}${versionComment} */ public interface $InterfaceName { + /** + * 新增/修改$!{tbl.comment} + * + * @param bean 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + Integer update(${QueryName} bean); + + /** + * 批量新增/修改$!{tbl.comment} + * + * @param list 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + Integer updateBatch(List<${QueryName}> list); + + /** + * 物理删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + Integer delete(${QueryName} bean); + +#if(${invalidColumnExists}) + /** + * 逻辑删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + Integer invalid(${QueryName} bean); + +#end + /** + * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 + * + * @param bean 查询条件 + * @return 单个 + */ + ${EntityName} anyOne(${QueryName} bean); + + /** + * 查询单个$!{tbl.comment} 明确知道结果必存在一个 + * + * @param bean 查询条件 + * @return 单个 + */ + ${EntityName} onlyOne(${QueryName} bean); + + /** + * 查询多个$!{tbl.comment} + * + * @param bean 查询条件 + * @return 列表 + */ + List<${EntityName}> list(${QueryName} bean); + + /** + * 统计符合条件的$!{tbl.comment}实体个数 + * + * @param bean 查询条件 + * @return 统计结果 + */ + Long count(${QueryName} bean); +#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} + */ + ${EntityName} $methodName(${paramNames}); + +#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}); + +#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}); + +#end +#end } \ No newline at end of file diff --git a/src/test/resources/template/service.vm b/src/test/resources/template/service.vm index 60003dc..5f74b72 100644 --- a/src/test/resources/template/service.vm +++ b/src/test/resources/template/service.vm @@ -10,14 +10,183 @@ #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}; - +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import ${ext.entityPackageName}.${EntityName}; +import ${ext.mapperPackageName}.${MapperName}; +import ${ext.queryPackageName}.${QueryName}; import ${cls.interfacePackageName}.$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}; +import java.util.List; + /** * $!{tbl.comment}服务 * ${authorComment}${versionComment} */ +@Service public class ${ClassName} implements ${InterfaceName} { + @Autowired + private ${MapperName} ${mapperName}; + + /** + * 新增/修改$!{tbl.comment} + * + * @param bean 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + @Override + public Integer update(${QueryName} bean) { + return ${mapperName}.update(bean); + } + + /** + * 批量新增/修改$!{tbl.comment} + * + * @param list 主键为空-新增实体、主键非空-更新条件 + * @return 影响记录数 + */ + @Override + public Integer updateBatch(List<${QueryName}> list) { + return ${mapperName}.updateBatch(list); + } + + /** + * 物理删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + @Override + public Integer delete(${QueryName} bean) { + return ${mapperName}.delete(bean); + } + +#if(${invalidColumnExists}) + /** + * 逻辑删除$!{tbl.comment} + * + * @param bean 删除条件 + * @return 影响记录数 + */ + @Override + public Integer invalid(${QueryName} bean) { + return ${mapperName}.invalid(bean); + } + +#end + /** + * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 + * + * @param bean 查询条件 + * @return 单个 + */ + @Override + public ${EntityName} anyOne(${QueryName} bean) { + return ${mapperName}.anyOne(bean); + } + + /** + * 查询单个$!{tbl.comment} 明确知道结果必存在一个 + * + * @param bean 查询条件 + * @return 单个 + */ + @Override + public ${EntityName} onlyOne(${QueryName} bean) { + return ${mapperName}.onlyOne(bean); + } + + /** + * 查询多个$!{tbl.comment} + * + * @param bean 查询条件 + * @return 列表 + */ + @Override + public List<${EntityName}> list(${QueryName} bean) { + return ${mapperName}.list(bean); + } + + /** + * 统计符合条件的$!{tbl.comment}实体个数 + * + * @param bean 查询条件 + * @return 统计结果 + */ + @Override + public Long count(${QueryName} bean) { + return ${mapperName}.count(bean); + } + +#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(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") +#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 通过唯一键查询单个$!{tbl.comment} + * ${paramComments} + * @return 单个$!{tbl.comment} + */ + @Override + public ${EntityName} $methodName(${paramNames}) { + return ${mapperName}.$methodName(${paramValues}); + } + +#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(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") +#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 通过唯一键删除单个$!{tbl.comment} + * ${paramComments} + * @return 影响记录数 + */ + @Override + public Integer $methodName(${paramNames}) { + return ${mapperName}.$methodName(${paramValues}); + } + +#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(${paramValuesWithSuffix}="#foreach($indexColumn in ${indexColumns})${indexColumn.fieldName}, #end") +#set(${paramValues}="$paramValuesWithSuffix.substring(0, $paramValuesWithSuffix.length() - 2)") +#set(${paramComments}="#foreach($indexColumn in ${indexColumns}) + + * @param ${indexColumn.fieldName} ${indexColumn.comment}#end") + /** + * 逻辑删除$!{tbl.comment} + * ${paramComments} + * @return 影响记录数 + */ + @Override + public Integer $methodName(${paramNames}) { + return ${mapperName}.$methodName(${paramValues}); + } + +#end +#end } \ No newline at end of file