diff --git a/wfc-modules/wfc-gen/src/main/java/org/wfc/gen/util/GenPlusUtils.java b/wfc-modules/wfc-gen/src/main/java/org/wfc/gen/util/GenPlusUtils.java index 1f93fd1..30b69b1 100644 --- a/wfc-modules/wfc-gen/src/main/java/org/wfc/gen/util/GenPlusUtils.java +++ b/wfc-modules/wfc-gen/src/main/java/org/wfc/gen/util/GenPlusUtils.java @@ -61,6 +61,8 @@ public class GenPlusUtils { .addTablePrefix("t_", "c_") // 设置过滤表前缀 .controllerBuilder() .enableRestStyle() + .template("/templates/controller.java.vm") + .enableFileOverride() .entityBuilder() .enableLombok() .enableFileOverride() @@ -70,12 +72,10 @@ public class GenPlusUtils { .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE)) .addTableFills(new Column("create_by", FieldFill.INSERT)) .addTableFills(new Column("update_by", FieldFill.INSERT_UPDATE)) - .controllerBuilder() - .enableRestStyle() - .template("/templates/controller.java.vm") - .enableFileOverride() .serviceBuilder() .enableFileOverride() + .serviceImplTemplate("/templates/serviceImpl.java.vm") + .serviceTemplate("/templates/service.java.vm") .mapperBuilder() .enableFileOverride() ) diff --git a/wfc-modules/wfc-gen/src/main/resources/templates/entity.java.vm b/wfc-modules/wfc-gen/src/main/resources/templates/entity.java.vm new file mode 100644 index 0000000..069dd3d --- /dev/null +++ b/wfc-modules/wfc-gen/src/main/resources/templates/entity.java.vm @@ -0,0 +1,162 @@ +package ${package.Entity}; + +#foreach($pkg in ${table.importPackages}) +import ${pkg}; +#end +#if(${springdoc}) +import io.swagger.v3.oas.annotations.media.Schema; +#elseif(${swagger}) +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +#end +#if(${entityLombokModel}) +import lombok.Getter; +import lombok.Setter; +#if(${chainModel}) +import lombok.experimental.Accessors; +#end +#end + +/** + *

+ * $!{table.comment} + *

+ * + * @author ${author} + * @since ${date} + */ +#if(${entityLombokModel}) +@Getter +@Setter + #if(${chainModel}) +@Accessors(chain = true) + #end +#end +#if(${table.convert}) +@TableName("${schemaName}${table.name}") +#end +#if(${springdoc}) +@Schema(name = "${entity}", description = "$!{table.comment}") +#elseif(${swagger}) +@ApiModel(value = "${entity}对象", description = "$!{table.comment}") +#end +#if(${superEntityClass}) +public class ${entity} extends ${superEntityClass}#if(${activeRecord})<${entity}>#end { +#elseif(${activeRecord}) +public class ${entity} extends Model<${entity}> { +#elseif(${entitySerialVersionUID}) +public class ${entity} implements Serializable { +#else +public class ${entity} { +#end +#if(${entitySerialVersionUID}) + + private static final long serialVersionUID = 1L; +#end +## ---------- BEGIN 字段循环遍历 ---------- +#foreach($field in ${table.fields}) + +#if(${field.keyFlag}) +#set($keyPropertyName=${field.propertyName}) +#end +#if("$!field.comment" != "") + #if(${springdoc}) + @Schema(description = "${field.comment}") + #elseif(${swagger}) + @ApiModelProperty("${field.comment}") + #else + /** + * ${field.comment} + */ + #end +#end +#if(${field.keyFlag}) +## 主键 + #if(${field.keyIdentityFlag}) + @TableId(value = "${field.annotationColumnName}", type = IdType.AUTO) + #elseif(!$null.isNull(${idType}) && "$!idType" != "") + @TableId(value = "${field.annotationColumnName}", type = IdType.${idType}) + #elseif(${field.convert}) + @TableId("${field.annotationColumnName}") + #end +## 普通字段 +#elseif(${field.fill}) +## ----- 存在字段填充设置 ----- + #if(${field.convert}) + @TableField(value = "${field.annotationColumnName}", fill = FieldFill.${field.fill}) + #else + @TableField(fill = FieldFill.${field.fill}) + #end +#elseif(${field.convert}) + @TableField("${field.annotationColumnName}") +#end +## 乐观锁注解 +#if(${field.versionField}) + @Version +#end +## 逻辑删除注解 +#if(${field.logicDeleteField}) + @TableLogic +#end + private ${field.propertyType} ${field.propertyName}; +#end +## ---------- END 字段循环遍历 ---------- +#if(!${entityLombokModel}) +#foreach($field in ${table.fields}) + #if(${field.propertyType.equals("boolean")}) + #set($getprefix="is") + #else + #set($getprefix="get") + #end + + public ${field.propertyType} ${getprefix}${field.capitalName}() { + return ${field.propertyName}; + } + + #if(${chainModel}) + public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + #else + public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) { + #end + this.${field.propertyName} = ${field.propertyName}; + #if(${chainModel}) + return this; + #end + } +#end +## --foreach end--- +#end +## --end of #if(!${entityLombokModel})-- +#if(${entityColumnConstant}) + #foreach($field in ${table.fields}) + + public static final String ${field.name.toUpperCase()} = "${field.name}"; + #end +#end +#if(${activeRecord}) + + @Override + public Serializable pkVal() { + #if(${keyPropertyName}) + return this.${keyPropertyName}; + #else + return null; + #end + } +#end +#if(!${entityLombokModel}) + + @Override + public String toString() { + return "${entity}{" + + #foreach($field in ${table.fields}) + #if($!{foreach.index}==0) + "${field.propertyName} = " + ${field.propertyName} + + #else + ", ${field.propertyName} = " + ${field.propertyName} + + #end + #end + "}"; + } +#end +} diff --git a/wfc-modules/wfc-gen/src/main/resources/templates/mapper.java.vm b/wfc-modules/wfc-gen/src/main/resources/templates/mapper.java.vm new file mode 100644 index 0000000..854201e --- /dev/null +++ b/wfc-modules/wfc-gen/src/main/resources/templates/mapper.java.vm @@ -0,0 +1,26 @@ +package ${package.Mapper}; + +import ${package.Entity}.${entity}; +import ${superMapperClassPackage}; +#if(${mapperAnnotationClass}) +import ${mapperAnnotationClass.name}; +#end + +/** + *

+ * $!{table.comment} Mapper 接口 + *

+ * + * @author ${author} + * @since ${date} + */ +#if(${mapperAnnotationClass}) +@${mapperAnnotationClass.simpleName} +#end +#if(${kotlin}) +interface ${table.mapperName} : ${superMapperClass}<${entity}> +#else +public interface ${table.mapperName} extends ${superMapperClass}<${entity}> { + +} +#end diff --git a/wfc-modules/wfc-gen/src/main/resources/templates/mapper.xml.vm b/wfc-modules/wfc-gen/src/main/resources/templates/mapper.xml.vm new file mode 100644 index 0000000..b0909e8 --- /dev/null +++ b/wfc-modules/wfc-gen/src/main/resources/templates/mapper.xml.vm @@ -0,0 +1,39 @@ + + + + +#if(${enableCache}) + + + +#end +#if(${baseResultMap}) + + +#foreach($field in ${table.fields}) +#if(${field.keyFlag})##生成主键排在第一位 + +#end +#end +#foreach($field in ${table.commonFields})##生成公共字段 + +#end +#foreach($field in ${table.fields}) +#if(!${field.keyFlag})##生成普通字段 + +#end +#end + + +#end +#if(${baseColumnList}) + + +#foreach($field in ${table.commonFields}) + ${field.columnName}, +#end + ${table.fieldNames} + + +#end + diff --git a/wfc-modules/wfc-gen/src/main/resources/templates/service.java.vm b/wfc-modules/wfc-gen/src/main/resources/templates/service.java.vm new file mode 100644 index 0000000..64aa098 --- /dev/null +++ b/wfc-modules/wfc-gen/src/main/resources/templates/service.java.vm @@ -0,0 +1,24 @@ +package ${package.Service}; + +import ${package.Entity}.${entity}; +import ${superServiceClassPackage}; + +import java.util.List; + +/** + *

+ * $!{table.comment} 服务类 + *

+ * + * @author ${author} + * @since ${date} + */ +#if(${kotlin}) +interface ${table.serviceName} : ${superServiceClass}<${entity}> +#else +public interface ${table.serviceName} extends ${superServiceClass}<${entity}> { + + #set($entityName = "${entity.substring(0, 1).toLowerCase()}${entity.substring(1)}") + List<${entity}> queryList(${entity} $entityName); +} +#end diff --git a/wfc-modules/wfc-gen/src/main/resources/templates/serviceImpl.java.vm b/wfc-modules/wfc-gen/src/main/resources/templates/serviceImpl.java.vm new file mode 100644 index 0000000..b9f59c3 --- /dev/null +++ b/wfc-modules/wfc-gen/src/main/resources/templates/serviceImpl.java.vm @@ -0,0 +1,51 @@ +package ${package.ServiceImpl}; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import ${package.Entity}.${entity}; +import ${package.Mapper}.${table.mapperName}; +import ${package.Service}.${table.serviceName}; +import ${superServiceImplClassPackage}; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * $!{table.comment} 服务实现类 + *

+ * + * @author ${author} + * @since ${date} + */ +@Service +#if(${kotlin}) +open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>(), ${table.serviceName} { + +} +#else +public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}> implements ${table.serviceName} { + + #set($entityName = "${entity.substring(0, 1).toLowerCase()}${entity.substring(1)}") + @Override + public List<${entity}> queryList(${entity} $entityName) { + return this.list(buildQueryWrapper($entityName)); + } + + private LambdaQueryWrapper<${entity}> buildQueryWrapper(${entity} bo) { + LambdaQueryWrapper<${entity}> lqw = Wrappers.lambdaQuery(); +#foreach($field in ${table.fields}) + #set($propertyNameU = "${field.propertyName.substring(0, 1).toUpperCase()}${field.propertyName.substring(1)}") + #if($field.propertyType == 'String') + #set($mpMethod='like') + #set($condition='StrUtil.isNotBlank(bo.get'+$propertyNameU+'())') + #else + #set($mpMethod='eq') + #set($condition='bo.get'+$propertyNameU+'() != null') + #end + lqw.$mpMethod($condition, ${entity}::get$propertyNameU, bo.get$propertyNameU()); +#end + return lqw; + } +} +#end