修改: 优化模板配置 删除 classInfo 信息

master
曹世达 6 months ago
parent b1f746a122
commit 47e7a229a3

@ -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<String> 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;
}
}

@ -10,7 +10,6 @@ public class InfoOutBuilder {
private final OutputInfo outputInfo = new OutputInfo();
public InfoOutBuilder setTableInfoList(List<TableInfo> 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(),

@ -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<TableInfo> tableInfoList;
private List<OutputInfo> 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<String, Object> loadExtra() {
private Map<String, Object> 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<String> tablePrefixes = CONFIG.getStringList(CfgUtils.DATABASE_TABLE_PREFIXES);
for (String tablePrefix : tablePrefixes) {
tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix);
}
return tableNameWithoutPrefix;
}
private void build(TableInfo tableInfo, List<OutputInfo> outputInfoList) {
// 循环输出信息
for (OutputInfo outputInfo : outputInfoList) {
@ -157,57 +165,61 @@ public class SourceBuilder {
private List<OutputInfo> 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()
);
}

@ -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;
}
}

@ -6,8 +6,6 @@ public class ContextInfo {
private TableInfo tableInfo;
private ClassInfo classInfo;
private Map<String, Object> 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<String, Object> getExtra() {
return extra;
}

@ -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());

@ -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_

@ -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
}

@ -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})

@ -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})

@ -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} {
}

@ -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}表单提交

@ -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}视图

@ -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")

@ -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})

Loading…
Cancel
Save