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 | |
| 15 | 15 | #foreach ($column in $columns) |
| 16 | 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 | 19 | #end |
| 27 | 20 | #end | ... | ... |
src/main/resources/codegen/controller/vo/createReqVO.vm
| ... | ... | @@ -4,6 +4,16 @@ import lombok.*; |
| 4 | 4 | import java.util.*; |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 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 | 18 | @ApiModel("${table.classComment}创建 Request VO") |
| 9 | 19 | @Data |
| ... | ... | @@ -13,14 +23,7 @@ public class ${table.className}CreateReqVO extends ${table.className}BaseVO { |
| 13 | 23 | |
| 14 | 24 | #foreach ($column in $columns) |
| 15 | 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 | 28 | #end |
| 26 | 29 | #end | ... | ... |
src/main/resources/codegen/controller/vo/pageReqVO.vm
| ... | ... | @@ -4,42 +4,39 @@ import lombok.*; |
| 4 | 4 | import java.util.*; |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 6 | import ${PageParamClassName}; |
| 7 | -#if (${hasDateColumn}) | |
| 7 | +## 处理 Date 字段的引入 | |
| 8 | +#foreach ($column in $columns) | |
| 9 | +#if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | |
| 8 | 10 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 11 | |
| 10 | 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 | 23 | #end |
| 12 | 24 | |
| 13 | 25 | @ApiModel("${table.classComment}分页 Request VO") |
| 14 | 26 | @Data |
| 15 | 27 | @EqualsAndHashCode(callSuper = true) |
| 16 | 28 | @ToString(callSuper = true) |
| 17 | -@Builder | |
| 18 | -@NoArgsConstructor | |
| 19 | -@AllArgsConstructor | |
| 20 | 29 | public class ${table.className}PageReqVO extends PageParam { |
| 21 | 30 | |
| 22 | 31 | #foreach ($column in $columns) |
| 23 | 32 | #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 |
| 24 | 33 | #if (${column.listOperation})##查询操作 |
| 25 | 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 | 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 | 40 | #end |
| 44 | 41 | |
| 45 | 42 | #end | ... | ... |
src/main/resources/codegen/controller/vo/updateReqVO.vm
| ... | ... | @@ -4,6 +4,16 @@ import lombok.*; |
| 4 | 4 | import java.util.*; |
| 5 | 5 | import io.swagger.annotations.*; |
| 6 | 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 | 18 | @ApiModel("${table.classComment}更新 Request VO") |
| 9 | 19 | @Data |
| ... | ... | @@ -13,8 +23,7 @@ public class ${table.className}UpdateReqVO extends ${table.className}BaseVO { |
| 13 | 23 | |
| 14 | 24 | #foreach ($column in $columns) |
| 15 | 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 | 28 | #end |
| 20 | 29 | #end | ... | ... |
src/main/resources/codegen/dal/mapper.vm
| ... | ... | @@ -6,6 +6,11 @@ import ${BaseMapperClassName}; |
| 6 | 6 | import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO; |
| 7 | 7 | import org.apache.ibatis.annotations.Mapper; |
| 8 | 8 | |
| 9 | +/** | |
| 10 | +* ${table.classComment} Mapper | |
| 11 | +* | |
| 12 | +* @author ${table.author} | |
| 13 | +*/ | |
| 9 | 14 | @Mapper |
| 10 | 15 | public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { |
| 11 | 16 | ... | ... |