Commit 763e20796bb3258df1a4fe20fb496041bbb0e882
1 parent
b8015e87
基于 Velocity 的 macro 和 parse 指令,优化模板的可维护性
Showing
6 changed files
with
57 additions
and
37 deletions
src/main/resources/codegen/controller/vo/_column.vm
0 → 100644
| 1 | +## 提供给 baseVO、createVO、updateVO 生成字段 | ||
| 2 | + @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 3 | +#if (!${column.nullable})## 判断 @NotEmpty 和 @NotNull 注解 | ||
| 4 | +#if (${field.fieldType} == 'String') | ||
| 5 | + @NotEmpty(message = "${column.columnComment}不能为空") | ||
| 6 | +#else | ||
| 7 | + @NotNull(message = "${column.columnComment}不能为空") | ||
| 8 | +#end | ||
| 9 | +#end | ||
| 10 | +#if (${column.javaType} == "Date")## 时间类型 | ||
| 11 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 12 | +#end | ||
| 13 | + private ${column.javaType} ${column.javaField}; |
src/main/resources/codegen/controller/vo/baseVO.vm
| @@ -14,14 +14,7 @@ public class ${table.className}BaseVO { | @@ -14,14 +14,7 @@ public class ${table.className}BaseVO { | ||
| 14 | 14 | ||
| 15 | #foreach ($column in $columns) | 15 | #foreach ($column in $columns) |
| 16 | #if (${column.createOperation} && ${column.updateOperation} && ${column.listOperationResult})##通用操作 | 16 | #if (${column.createOperation} && ${column.updateOperation} && ${column.listOperationResult})##通用操作 |
| 17 | - @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 18 | -#if (!${column.nullable})#if (${field.fieldType} == 'String')## 判断 @NotEmpty 和 @NotNull 注解 | ||
| 19 | - @NotEmpty(message = "${column.columnComment}不能为空") | ||
| 20 | -#else | ||
| 21 | - @NotNull(message = "${column.columnComment}不能为空") | ||
| 22 | -#end | ||
| 23 | -#end | ||
| 24 | - private ${column.javaType} ${column.javaField}; | 17 | + #parse("codegen/controller/vo/_column.vm") |
| 25 | 18 | ||
| 26 | #end | 19 | #end |
| 27 | #end | 20 | #end |
src/main/resources/codegen/controller/vo/createReqVO.vm
| @@ -4,6 +4,16 @@ import lombok.*; | @@ -4,6 +4,16 @@ import lombok.*; | ||
| 4 | import java.util.*; | 4 | import java.util.*; |
| 5 | import io.swagger.annotations.*; | 5 | import io.swagger.annotations.*; |
| 6 | import javax.validation.constraints.*; | 6 | import javax.validation.constraints.*; |
| 7 | +## 处理 Date 字段的引入 | ||
| 8 | +#foreach ($column in $columns) | ||
| 9 | +#if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}) | ||
| 10 | + && ${column.javaType} == "Date")## 时间类型 | ||
| 11 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 12 | + | ||
| 13 | +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 14 | +#break | ||
| 15 | +#end | ||
| 16 | +#end | ||
| 7 | 17 | ||
| 8 | @ApiModel("${table.classComment}创建 Request VO") | 18 | @ApiModel("${table.classComment}创建 Request VO") |
| 9 | @Data | 19 | @Data |
| @@ -13,14 +23,7 @@ public class ${table.className}CreateReqVO extends ${table.className}BaseVO { | @@ -13,14 +23,7 @@ public class ${table.className}CreateReqVO extends ${table.className}BaseVO { | ||
| 13 | 23 | ||
| 14 | #foreach ($column in $columns) | 24 | #foreach ($column in $columns) |
| 15 | #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}))##不是通用字段 | 25 | #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}))##不是通用字段 |
| 16 | - @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 17 | -#if (!${column.nullable})#if (${field.fieldType} == 'String')## 判断 @NotEmpty 和 @NotNull 注解 | ||
| 18 | - @NotEmpty(message = "${column.columnComment}不能为空") | ||
| 19 | -#else | ||
| 20 | - @NotNull(message = "${column.columnComment}不能为空") | ||
| 21 | -#end | ||
| 22 | -#end | ||
| 23 | - private ${column.javaType} ${column.javaField}; | 26 | + #parse("codegen/controller/vo/_column.vm") |
| 24 | 27 | ||
| 25 | #end | 28 | #end |
| 26 | #end | 29 | #end |
src/main/resources/codegen/controller/vo/pageReqVO.vm
| @@ -4,42 +4,39 @@ import lombok.*; | @@ -4,42 +4,39 @@ import lombok.*; | ||
| 4 | import java.util.*; | 4 | import java.util.*; |
| 5 | import io.swagger.annotations.*; | 5 | import io.swagger.annotations.*; |
| 6 | import ${PageParamClassName}; | 6 | import ${PageParamClassName}; |
| 7 | -#if (${hasDateColumn}) | 7 | +## 处理 Date 字段的引入 |
| 8 | +#foreach ($column in $columns) | ||
| 9 | +#if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | ||
| 8 | import org.springframework.format.annotation.DateTimeFormat; | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 11 | ||
| 10 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 12 | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | +#break | ||
| 14 | +#end | ||
| 15 | +#end | ||
| 16 | +## 字段模板 | ||
| 17 | +#macro(columnTpl $prefix $prefixStr) | ||
| 18 | +#if (${column.javaType} == "Date")## 时间类型 | ||
| 19 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 20 | +#end | ||
| 21 | + @ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 22 | + private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end; | ||
| 11 | #end | 23 | #end |
| 12 | 24 | ||
| 13 | @ApiModel("${table.classComment}分页 Request VO") | 25 | @ApiModel("${table.classComment}分页 Request VO") |
| 14 | @Data | 26 | @Data |
| 15 | @EqualsAndHashCode(callSuper = true) | 27 | @EqualsAndHashCode(callSuper = true) |
| 16 | @ToString(callSuper = true) | 28 | @ToString(callSuper = true) |
| 17 | -@Builder | ||
| 18 | -@NoArgsConstructor | ||
| 19 | -@AllArgsConstructor | ||
| 20 | public class ${table.className}PageReqVO extends PageParam { | 29 | public class ${table.className}PageReqVO extends PageParam { |
| 21 | 30 | ||
| 22 | #foreach ($column in $columns) | 31 | #foreach ($column in $columns) |
| 23 | #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 | 32 | #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 |
| 24 | #if (${column.listOperation})##查询操作 | 33 | #if (${column.listOperation})##查询操作 |
| 25 | #if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 | 34 | #if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 |
| 26 | - @ApiModelProperty(value = "开始${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 27 | -#if (${column.javaType} == "Date")## 时间类型 | ||
| 28 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 29 | -#end | ||
| 30 | - private ${column.javaType} begin${JavaField}; | 35 | + #columnTpl('begin', '开始') |
| 31 | 36 | ||
| 32 | - @ApiModelProperty(value = "结束${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 33 | -#if (${column.javaType} == "Date")## 时间类型 | ||
| 34 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 35 | -#end | ||
| 36 | - private ${column.javaType} end${JavaField}; | 37 | + #columnTpl('end', '结束') |
| 37 | #else##情况二,非 Between 的时间 | 38 | #else##情况二,非 Between 的时间 |
| 38 | -#if (${column.javaType} == "Date")## 时间类型 | ||
| 39 | - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 40 | -#end | ||
| 41 | - @ApiModelProperty(value = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 42 | - private ${column.javaType} ${column.javaField}; | 39 | +#columnTpl('', '') |
| 43 | #end | 40 | #end |
| 44 | 41 | ||
| 45 | #end | 42 | #end |
src/main/resources/codegen/controller/vo/updateReqVO.vm
| @@ -4,6 +4,16 @@ import lombok.*; | @@ -4,6 +4,16 @@ import lombok.*; | ||
| 4 | import java.util.*; | 4 | import java.util.*; |
| 5 | import io.swagger.annotations.*; | 5 | import io.swagger.annotations.*; |
| 6 | import javax.validation.constraints.*; | 6 | import javax.validation.constraints.*; |
| 7 | +## 处理 Date 字段的引入 | ||
| 8 | +#foreach ($column in $columns) | ||
| 9 | +#if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult})) | ||
| 10 | + && ${column.javaType} == "Date")## 时间类型 | ||
| 11 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 12 | + | ||
| 13 | +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 14 | +#break | ||
| 15 | +#end | ||
| 16 | +#end | ||
| 7 | 17 | ||
| 8 | @ApiModel("${table.classComment}更新 Request VO") | 18 | @ApiModel("${table.classComment}更新 Request VO") |
| 9 | @Data | 19 | @Data |
| @@ -13,8 +23,7 @@ public class ${table.className}UpdateReqVO extends ${table.className}BaseVO { | @@ -13,8 +23,7 @@ public class ${table.className}UpdateReqVO extends ${table.className}BaseVO { | ||
| 13 | 23 | ||
| 14 | #foreach ($column in $columns) | 24 | #foreach ($column in $columns) |
| 15 | #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult}))##不是通用字段 | 25 | #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult}))##不是通用字段 |
| 16 | - @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) | ||
| 17 | - private ${column.javaType} ${column.javaField}; | 26 | + #parse("codegen/controller/vo/_column.vm") |
| 18 | 27 | ||
| 19 | #end | 28 | #end |
| 20 | #end | 29 | #end |
src/main/resources/codegen/dal/mapper.vm
| @@ -6,6 +6,11 @@ import ${BaseMapperClassName}; | @@ -6,6 +6,11 @@ import ${BaseMapperClassName}; | ||
| 6 | import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO; | 6 | import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO; |
| 7 | import org.apache.ibatis.annotations.Mapper; | 7 | import org.apache.ibatis.annotations.Mapper; |
| 8 | 8 | ||
| 9 | +/** | ||
| 10 | +* ${table.classComment} Mapper | ||
| 11 | +* | ||
| 12 | +* @author ${table.author} | ||
| 13 | +*/ | ||
| 9 | @Mapper | 14 | @Mapper |
| 10 | public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { | 15 | public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { |
| 11 | 16 |