修改: 优化模板配置 删除 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(); private final OutputInfo outputInfo = new OutputInfo();
public InfoOutBuilder setTableInfoList(List<TableInfo> tableInfoList) { public InfoOutBuilder setTableInfoList(List<TableInfo> tableInfoList) {
this.outputInfo.setTableInfoList(tableInfoList); this.outputInfo.setTableInfoList(tableInfoList);
return this; return this;
@ -36,26 +35,6 @@ public class InfoOutBuilder {
return this; 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() { public OutputInfo build() {
this.outputInfo.setOutputFunction(className -> CfgUtils.getJavaFilePath( this.outputInfo.setOutputFunction(className -> CfgUtils.getJavaFilePath(
this.outputInfo.getPackagePath(), this.outputInfo.getPackagePath(),

@ -2,7 +2,6 @@ package space.caoshd.otone.builder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import space.caoshd.otone.entity.ClassInfo;
import space.caoshd.otone.entity.ContextInfo; import space.caoshd.otone.entity.ContextInfo;
import space.caoshd.otone.entity.OutputInfo; import space.caoshd.otone.entity.OutputInfo;
import space.caoshd.otone.entity.TableInfo; 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.CfgUtils;
import space.caoshd.otone.util.FileUtils; import space.caoshd.otone.util.FileUtils;
import space.caoshd.otone.util.PathConsts; import space.caoshd.otone.util.PathConsts;
import space.caoshd.otone.util.StrUtils;
import space.caoshd.otone.util.VelocityUtils; import space.caoshd.otone.util.VelocityUtils;
import java.util.Arrays; import java.util.Arrays;
@ -29,13 +29,6 @@ public class SourceBuilder {
private List<TableInfo> tableInfoList; private List<TableInfo> tableInfoList;
private List<OutputInfo> outputInfoList; 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) { public SourceBuilder setTableInfo(TableInfo tableInfo) {
this.tableInfo = tableInfo; this.tableInfo = tableInfo;
return this; return this;
@ -96,10 +89,10 @@ public class SourceBuilder {
// 创建数据文件夹 // 创建数据文件夹
FileUtils.mkdir(outputInfo.getPackagePath()); FileUtils.mkdir(outputInfo.getPackagePath());
// 创建上下文环境信息 // 创建上下文环境信息
ClassInfo classInfo = buildClassInfo(tableInfo, outputInfo); ContextInfo contextInfo = createContextInfo(tableInfo);
ContextInfo contextInfo = createContextInfo(tableInfo, classInfo);
// 判断输出文件是否已存在 // 判断输出文件是否已存在
String outputPath = outputInfo.getOutputPath(classInfo.getClassName()); String className = (String) contextInfo.getExtra().get("ClassName");
String outputPath = outputInfo.getOutputPath(className);
if (!FileUtils.exists(outputPath)) { if (!FileUtils.exists(outputPath)) {
// 输出文件不存在 直接生成 // 输出文件不存在 直接生成
VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo); VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo);
@ -111,30 +104,33 @@ public class SourceBuilder {
VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo); VelocityUtils.render(outputInfo.getTemplatePath(), outputPath, contextInfo);
} else { } 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]", + " config.properties should like [output.cover_if_exists=true]",
outputPath outputPath
); );
} }
} }
private ContextInfo createContextInfo(TableInfo tableInfo, ClassInfo classInfo) { private ContextInfo createContextInfo(TableInfo tableInfo) {
ContextInfo result = new ContextInfo(); ContextInfo result = new ContextInfo();
// 设置表信息 // 设置表信息
result.setTableInfo(tableInfo); result.setTableInfo(tableInfo);
// 设置类信息
result.setClassInfo(classInfo);
// 设置附加信息 // 设置附加信息
result.setExtra(loadExtra()); result.setExtra(loadExtra(tableInfo.getTableName()));
return result; return result;
} }
private Map<String, Object> loadExtra() { private Map<String, Object> loadExtra(String tableName) {
extra.put("mapperPackageName", CfgUtils.getMapperPackageName()); extra.put("mapperPackageName", CfgUtils.getMapperPackageName());
extra.put("entityPackageName", CfgUtils.getEntityPackageName()); extra.put("entityPackageName", CfgUtils.getEntityPackageName());
extra.put("resPackageName", CfgUtils.getResPackageName()); extra.put("resPackageName", CfgUtils.getResPackageName());
extra.put("reqPackageName", CfgUtils.getReqPackageName()); extra.put("reqPackageName", CfgUtils.getReqPackageName());
extra.put("queryPackageName", CfgUtils.getQueryPackageName()); 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("controllerNameSuffix", CfgUtils.getControllerNameSuffix());
extra.put("serviceNameSuffix", CfgUtils.getServiceNameSuffix()); extra.put("serviceNameSuffix", CfgUtils.getServiceNameSuffix());
extra.put("servieInterfaceNamePrefix", CfgUtils.getServiceInterfacePrefix()); extra.put("servieInterfaceNamePrefix", CfgUtils.getServiceInterfacePrefix());
@ -144,9 +140,21 @@ public class SourceBuilder {
extra.put("reqNameSuffix", CfgUtils.getReqNameSuffix()); extra.put("reqNameSuffix", CfgUtils.getReqNameSuffix());
extra.put("queryNameSuffix", CfgUtils.getQueryNameSuffix()); extra.put("queryNameSuffix", CfgUtils.getQueryNameSuffix());
extra.put("mybatisMapperEnable", CfgUtils.mybatisMapperEnable()); 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; 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) { private void build(TableInfo tableInfo, List<OutputInfo> outputInfoList) {
// 循环输出信息 // 循环输出信息
for (OutputInfo outputInfo : outputInfoList) { for (OutputInfo outputInfo : outputInfoList) {
@ -157,57 +165,61 @@ public class SourceBuilder {
private List<OutputInfo> defaultOutputInfoList() { private List<OutputInfo> defaultOutputInfoList() {
return Arrays.asList( return Arrays.asList(
// PO // ENTITY
new InfoOutBuilder().setNameSuffix(CfgUtils.getEntityNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getEntityNameSuffix())
.setTemplatePath(CfgUtils.getEntityTemplatePath()) .setTemplatePath(CfgUtils.getEntityTemplatePath())
.setPackagePath(CfgUtils.getEntityPackagePath()) .setPackagePath(CfgUtils.getEntityPackagePath())
.setPackageName(CfgUtils.getEntityPackageName())
.build(), .build(),
// MAPPER // MAPPER
new InfoOutBuilder().setNameSuffix(CfgUtils.getMapperNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getMapperNameSuffix())
.setTemplatePath(CfgUtils.getMapperTemplatePath()) .setTemplatePath(CfgUtils.getMapperTemplatePath())
.setPackagePath(CfgUtils.getMapperPackagePath()) .setPackagePath(CfgUtils.getMapperPackagePath())
.setPackageName(CfgUtils.getMapperPackageName())
.setEntityPackageName(CfgUtils.getEntityPackageName())
.setQueryPackageName(CfgUtils.getQueryPackageName())
.build(), .build(),
// SERVICE // SERVICE
new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getServiceNameSuffix())
.setTemplatePath(CfgUtils.getServiceTemplatePath()) .setTemplatePath(CfgUtils.getServiceTemplatePath())
.setPackagePath(CfgUtils.getServicePackagePath()) .setPackagePath(CfgUtils.getServicePackagePath())
.setPackageName(CfgUtils.getServicePackageName())
.setInterfacePackageName(CfgUtils.getServiceInterfacePackageName())
.build(), .build(),
// SERVICE INTERFACE // SERVICE INTERFACE
new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) new InfoOutBuilder()
.setNamePrefix(CfgUtils.getServiceInterfacePrefix()) .setNamePrefix(CfgUtils.getServiceInterfacePrefix())
.setNameSuffix(CfgUtils.getServiceNameSuffix())
.setTemplatePath(CfgUtils.getServiceInterfaceTemplatePath()) .setTemplatePath(CfgUtils.getServiceInterfaceTemplatePath())
.setPackagePath(CfgUtils.getServiceInterfacePackagePath()) .setPackagePath(CfgUtils.getServiceInterfacePackagePath())
.setPackageName(CfgUtils.getServiceInterfacePackageName())
.build(), .build(),
// CONTROLLER // CONTROLLER
new InfoOutBuilder().setNameSuffix(CfgUtils.getControllerNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getControllerNameSuffix())
.setTemplatePath(CfgUtils.getControllerTemplatePath()) .setTemplatePath(CfgUtils.getControllerTemplatePath())
.setPackagePath(CfgUtils.getControllerPackagePath()) .setPackagePath(CfgUtils.getControllerPackagePath())
.setPackageName(CfgUtils.getControllerPackageName())
.build(), .build(),
// VIEW // VIEW
new InfoOutBuilder().setNameSuffix(CfgUtils.getResNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getResNameSuffix())
.setTemplatePath(CfgUtils.getResTemplatePath()) .setTemplatePath(CfgUtils.getResTemplatePath())
.setPackagePath(CfgUtils.getResPackagePath()) .setPackagePath(CfgUtils.getResPackagePath())
.setPackageName(CfgUtils.getResPackageName())
.build(), .build(),
// FORM // FORM
new InfoOutBuilder().setNameSuffix(CfgUtils.getReqNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getReqNameSuffix())
.setTemplatePath(CfgUtils.getReqTemplatePath()) .setTemplatePath(CfgUtils.getReqTemplatePath())
.setPackagePath(CfgUtils.getReqPackagePath()) .setPackagePath(CfgUtils.getReqPackagePath())
.setPackageName(CfgUtils.getReqPackageName())
.build(), .build(),
// QUERY // QUERY
new InfoOutBuilder().setNameSuffix(CfgUtils.getQueryNameSuffix()) new InfoOutBuilder()
.setNamePrefix("")
.setNameSuffix(CfgUtils.getQueryNameSuffix())
.setTemplatePath(CfgUtils.getQueryTemplatePath()) .setTemplatePath(CfgUtils.getQueryTemplatePath())
.setPackagePath(CfgUtils.getQueryPackagePath()) .setPackagePath(CfgUtils.getQueryPackagePath())
.setPackageName(CfgUtils.getQueryPackageName())
.build() .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 TableInfo tableInfo;
private ClassInfo classInfo;
private Map<String, Object> extra; private Map<String, Object> extra;
public TableInfo getTableInfo() { public TableInfo getTableInfo() {
@ -18,14 +16,6 @@ public class ContextInfo {
this.tableInfo = tableInfo; this.tableInfo = tableInfo;
} }
public ClassInfo getClassInfo() {
return classInfo;
}
public void setClassInfo(ClassInfo classInfo) {
this.classInfo = classInfo;
}
public Map<String, Object> getExtra() { public Map<String, Object> getExtra() {
return extra; return extra;
} }

@ -26,7 +26,6 @@ public class VelocityUtils {
VelocityContext context = new VelocityContext(); VelocityContext context = new VelocityContext();
context.put("tbl", ctx.getTableInfo()); context.put("tbl", ctx.getTableInfo());
context.put("cls", ctx.getClassInfo());
context.put("ext", ctx.getExtra()); context.put("ext", ctx.getExtra());
Template template = Velocity.getTemplate(templatePath, StandardCharsets.UTF_8.name()); 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.form=Req
#java.name.suffix.query=Query #java.name.suffix.query=Query
#java.name.suffix.mapper=Mapper #java.name.suffix.mapper=Mapper
#java.name.suffix.entity= #java.name.suffix.entity=Entity
#database.name.schemas=otone #database.name.schemas=otone
#database.name.tables= #database.name.tables=
database.table.prefixes=t_,m_ database.table.prefixes=t_,m_

@ -8,10 +8,20 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.controllerNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.controllerNameSuffix}")
package ${cls.packageName}; #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 org.springframework.web.bind.annotation.RestController;
import ${ext.reqPackageName}.${ReqName};
import ${ext.resPackageName}.${ResName};
import ${ext.serviceInterfacePackageName}.${ServiceInterfaceName};
import java.util.List;
/** /**
* $!{tbl.comment}控制器 * $!{tbl.comment}控制器
@ -19,4 +29,146 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
public class ${ClassName} { 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 * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.entityNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.entityNameSuffix}")
package ${cls.packageName}; package ${ext.entityPackageName};
import java.io.Serializable; import java.io.Serializable;
#if(${tbl.decimalExists}) #if(${tbl.decimalExists})

@ -10,10 +10,10 @@
#end #end
#set(${invalidColumnExists}=${tbl.invalidColumn} && ${tbl.invalidColumn} != "") #set(${invalidColumnExists}=${tbl.invalidColumn} && ${tbl.invalidColumn} != "")
#set(${pkColumn}=${tbl.indexes["PRIMARY"][0]}) #set(${pkColumn}=${tbl.indexes["PRIMARY"][0]})
#set(${ClassName}="${cls.className}$!{ext.mapperNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.mapperNameSuffix}")
#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") #set(${QueryName}="${ext.ClassName}$!{ext.queryNameSuffix}")
#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") #set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}")
package ${cls.packageName}; package ${ext.mapperPackageName};
#if(${ext.mybatisMapperEnable}) #if(${ext.mybatisMapperEnable})
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -36,83 +36,83 @@ public interface ${ClassName} {
/** /**
* 新增/修改$!{tbl.comment} * 新增/修改$!{tbl.comment}
* *
* @param bean 主键为空-新增实体、主键非空-更新条件 * @param query 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer update( Integer updateInsert(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
/** /**
* 批量新增/修改$!{tbl.comment} * 批量新增/修改$!{tbl.comment}
* *
* @param list 主键为空-新增实体、主键非空-更新条件 * @param queries 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer updateBatch( Integer updateInsertBatch(
@Param("list") List<${QueryName}> list @Param("queries") List<${QueryName}> queries
); );
/** /**
* 物理删除$!{tbl.comment} * 物理删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param query 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer delete( Integer delete(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
#if(${invalidColumnExists}) #if(${invalidColumnExists})
/** /**
* 逻辑删除$!{tbl.comment} * 逻辑删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param query 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer invalid( Integer invalid(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
#end #end
/** /**
* 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个
* *
* @param bean 查询条件 * @param query 查询条件
* @return 单个 * @return 单个
*/ */
${EntityName} anyOne( ${EntityName} anyOne(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
/** /**
* 查询单个$!{tbl.comment} 明确知道结果必存在一个 * 查询单个$!{tbl.comment} 明确知道结果必存在一个
* *
* @param bean 查询条件 * @param query 查询条件
* @return 单个 * @return 单个
*/ */
${EntityName} onlyOne( ${EntityName} onlyOne(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
/** /**
* 查询多个$!{tbl.comment} * 查询多个$!{tbl.comment}
* *
* @param bean 查询条件 * @param query 查询条件
* @return 列表 * @return 列表
*/ */
List<${EntityName}> list( List<${EntityName}> list(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
/** /**
* 统计符合条件的$!{tbl.comment}实体个数 * 统计符合条件的$!{tbl.comment}实体个数
* *
* @param bean 查询条件 * @param query 查询条件
* @return 统计结果 * @return 统计结果
*/ */
Long count( Long count(
@Param("bean") ${QueryName} bean @Param("query") ${QueryName} query
); );
#foreach($indexColumns in ${tbl.indexes}) #foreach($indexColumns in ${tbl.indexes})

@ -8,13 +8,13 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.queryNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.queryNameSuffix}")
package ${cls.packageName}; package ${ext.queryPackageName};
/** /**
* $!{tbl.comment}查询 * $!{tbl.comment}查询
* ${authorComment}${versionComment} * ${authorComment}${versionComment}
*/ */
public class ${cls.className}$!{ext.queryNameSuffix} { public class ${ext.ClassName}$!{ext.queryNameSuffix} {
} }

@ -8,8 +8,8 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.reqNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.reqNameSuffix}")
package ${cls.packageName}; package ${ext.reqPackageName};
/** /**
* $!{tbl.comment}表单提交 * $!{tbl.comment}表单提交

@ -8,8 +8,8 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.resNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.resNameSuffix}")
package ${cls.packageName}; package ${ext.resPackageName};
/** /**
* $!{tbl.comment}视图 * $!{tbl.comment}视图

@ -8,12 +8,13 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set($InterfaceName="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}") #set($InterfaceName="$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}")
#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") #set(${ReqName}="${ext.ClassName}$!{ext.ReqNameSuffix}")
#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") #set(${ReqName}="${ext.ClassName}$!{ext.reqNameSuffix}")
package ${cls.packageName}; #set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}")
package ${ext.serviceInterfacePackageName};
import ${ext.queryPackageName}.${QueryName}; import ${ext.reqPackageName}.${ReqName};
import ${ext.entityPackageName}.${EntityName}; import ${ext.entityPackageName}.${EntityName};
import java.util.List; import java.util.List;
@ -26,68 +27,68 @@ public interface $InterfaceName {
/** /**
* 新增/修改$!{tbl.comment} * 新增/修改$!{tbl.comment}
* *
* @param bean 主键为空-新增实体、主键非空-更新条件 * @param query 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer update(${QueryName} bean); Integer updateInsert(${ReqName} query);
/** /**
* 批量新增/修改$!{tbl.comment} * 批量新增/修改$!{tbl.comment}
* *
* @param list 主键为空-新增实体、主键非空-更新条件 * @param queries 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer updateBatch(List<${QueryName}> list); Integer updateInsertBatch(List<${ReqName}> queries);
/** /**
* 物理删除$!{tbl.comment} * 物理删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param query 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer delete(${QueryName} bean); Integer delete(${ReqName} query);
#if(${invalidColumnExists}) #if(${invalidColumnExists})
/** /**
* 逻辑删除$!{tbl.comment} * 逻辑删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param query 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
Integer invalid(${QueryName} bean); Integer invalid(${ReqName} query);
#end #end
/** /**
* 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个
* *
* @param bean 查询条件 * @param query 查询条件
* @return 单个 * @return 单个
*/ */
${EntityName} anyOne(${QueryName} bean); ${EntityName} anyOne(${ReqName} query);
/** /**
* 查询单个$!{tbl.comment} 明确知道结果必存在一个 * 查询单个$!{tbl.comment} 明确知道结果必存在一个
* *
* @param bean 查询条件 * @param query 查询条件
* @return 单个 * @return 单个
*/ */
${EntityName} onlyOne(${QueryName} bean); ${EntityName} onlyOne(${ReqName} query);
/** /**
* 查询多个$!{tbl.comment} * 查询多个$!{tbl.comment}
* *
* @param bean 查询条件 * @param query 查询条件
* @return 列表 * @return 列表
*/ */
List<${EntityName}> list(${QueryName} bean); List<${EntityName}> list(${ReqName} query);
/** /**
* 统计符合条件的$!{tbl.comment}实体个数 * 统计符合条件的$!{tbl.comment}实体个数
* *
* @param bean 查询条件 * @param query 查询条件
* @return 统计结果 * @return 统计结果
*/ */
Long count(${QueryName} bean); Long count(${ReqName} query);
#foreach($indexColumns in ${tbl.indexes}) #foreach($indexColumns in ${tbl.indexes})
#set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end") #set(${methodNameWithSuffix}="oneBy#foreach($indexColumn in ${indexColumns})${indexColumn.fieldNameCap}And#end")

@ -8,21 +8,26 @@
* @version ${ext.version}#end * @version ${ext.version}#end
#end #end
#set(${ClassName}="${cls.className}$!{ext.serviceNameSuffix}") #set(${ClassName}="${ext.ClassName}$!{ext.serviceNameSuffix}")
#set(${InterfaceName}="$!{ext.servieInterfaceNamePrefix}${cls.className}$!{ext.serviceNameSuffix}") #set(${InterfaceName}="$!{ext.servieInterfaceNamePrefix}${ext.ClassName}$!{ext.serviceNameSuffix}")
#set(${QueryName}="${cls.className}$!{ext.queryNameSuffix}") #set(${QueryName}="${ext.ClassName}$!{ext.queryNameSuffix}")
#set(${EntityName}="${cls.className}$!{ext.entityNameSuffix}") #set(${ReqName}="${ext.ClassName}$!{ext.reqNameSuffix}")
#set(${MapperName}="${cls.className}$!{ext.mapperNameSuffix}") #set(${EntityName}="${ext.ClassName}$!{ext.entityNameSuffix}")
#set(${mapperName}="${cls.classNameLow}$!{ext.mapperNameSuffix}") #set(${MapperName}="${ext.ClassName}$!{ext.mapperNameSuffix}")
package ${cls.packageName}; #set(${mapperName}="${ext.className}$!{ext.mapperNameSuffix}")
package ${ext.servicePackageName};
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ${ext.reqPackageName}.${ReqName};
import ${ext.entityPackageName}.${EntityName}; import ${ext.entityPackageName}.${EntityName};
import ${ext.mapperPackageName}.${MapperName}; import ${ext.mapperPackageName}.${MapperName};
import ${ext.queryPackageName}.${QueryName}; 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.List;
import java.util.stream.Collectors;
/** /**
* $!{tbl.comment}服务 * $!{tbl.comment}服务
@ -37,91 +42,110 @@ public class ${ClassName} implements ${InterfaceName} {
/** /**
* 新增/修改$!{tbl.comment} * 新增/修改$!{tbl.comment}
* *
* @param bean 主键为空-新增实体、主键非空-更新条件 * @param req 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
@Override @Override
public Integer update(${QueryName} bean) { public Integer updateInsert(${ReqName} req) {
return ${mapperName}.update(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.updateInsert(query);
} }
/** /**
* 批量新增/修改$!{tbl.comment} * 批量新增/修改$!{tbl.comment}
* *
* @param list 主键为空-新增实体、主键非空-更新条件 * @param reqs 主键为空-新增实体、主键非空-更新条件
* @return 影响记录数 * @return 影响记录数
*/ */
@Override @Override
public Integer updateBatch(List<${QueryName}> list) { public Integer updateInsertBatch(List<${ReqName}> reqs) {
return ${mapperName}.updateBatch(list); 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} * 物理删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param req 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
@Override @Override
public Integer delete(${QueryName} bean) { public Integer delete(${ReqName} req) {
return ${mapperName}.delete(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.delete(query);
} }
#if(${invalidColumnExists}) #if(${invalidColumnExists})
/** /**
* 逻辑删除$!{tbl.comment} * 逻辑删除$!{tbl.comment}
* *
* @param bean 删除条件 * @param req 删除条件
* @return 影响记录数 * @return 影响记录数
*/ */
@Override @Override
public Integer invalid(${QueryName} bean) { public Integer invalid(${ReqName} req) {
return ${mapperName}.invalid(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.invalid(query);
} }
#end #end
/** /**
* 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个 * 查询单个$!{tbl.comment} 当结果存在多个时 随便拿一个
* *
* @param bean 查询条件 * @param req 查询条件
* @return 单个 * @return 单个
*/ */
@Override @Override
public ${EntityName} anyOne(${QueryName} bean) { public ${EntityName} anyOne(${ReqName} req) {
return ${mapperName}.anyOne(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.anyOne(query);
} }
/** /**
* 查询单个$!{tbl.comment} 明确知道结果必存在一个 * 查询单个$!{tbl.comment} 明确知道结果必存在一个
* *
* @param bean 查询条件 * @param req 查询条件
* @return 单个 * @return 单个
*/ */
@Override @Override
public ${EntityName} onlyOne(${QueryName} bean) { public ${EntityName} onlyOne(${ReqName} req) {
return ${mapperName}.onlyOne(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.onlyOne(query);
} }
/** /**
* 查询多个$!{tbl.comment} * 查询多个$!{tbl.comment}
* *
* @param bean 查询条件 * @param req 查询条件
* @return 列表 * @return 列表
*/ */
@Override @Override
public List<${EntityName}> list(${QueryName} bean) { public List<${EntityName}> list(${ReqName} req) {
return ${mapperName}.list(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.list(query);
} }
/** /**
* 统计符合条件的$!{tbl.comment}实体个数 * 统计符合条件的$!{tbl.comment}实体个数
* *
* @param bean 查询条件 * @param req 查询条件
* @return 统计结果 * @return 统计结果
*/ */
@Override @Override
public Long count(${QueryName} bean) { public Long count(${ReqName} req) {
return ${mapperName}.count(bean); ${QueryName} query = new ${QueryName}();
BeanUtils.copyProperties(req, query);
return ${mapperName}.count(query);
} }
#foreach($indexColumns in ${tbl.indexes}) #foreach($indexColumns in ${tbl.indexes})

Loading…
Cancel
Save