mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	基于 Velocity 的 macro 和 parse 指令,优化模板的可维护性
This commit is contained in:
		
							
								
								
									
										13
									
								
								src/main/resources/codegen/controller/vo/_column.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/main/resources/codegen/controller/vo/_column.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | ## 提供给 baseVO、createVO、updateVO 生成字段 | ||||||
|  |     @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) | ||||||
|  | #if (!${column.nullable})## 判断 @NotEmpty 和 @NotNull 注解 | ||||||
|  | #if (${field.fieldType} == 'String') | ||||||
|  |     @NotEmpty(message = "${column.columnComment}不能为空") | ||||||
|  | #else | ||||||
|  |     @NotNull(message = "${column.columnComment}不能为空") | ||||||
|  | #end | ||||||
|  | #end | ||||||
|  | #if (${column.javaType} == "Date")## 时间类型 | ||||||
|  |     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||||
|  | #end | ||||||
|  |     private ${column.javaType} ${column.javaField}; | ||||||
| @@ -14,14 +14,7 @@ public class ${table.className}BaseVO { | |||||||
|  |  | ||||||
| #foreach ($column in $columns) | #foreach ($column in $columns) | ||||||
| #if (${column.createOperation} && ${column.updateOperation} && ${column.listOperationResult})##通用操作 | #if (${column.createOperation} && ${column.updateOperation} && ${column.listOperationResult})##通用操作 | ||||||
|     @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) |     #parse("codegen/controller/vo/_column.vm") | ||||||
| #if (!${column.nullable})#if (${field.fieldType} == 'String')## 判断 @NotEmpty 和 @NotNull 注解 |  | ||||||
|     @NotEmpty(message = "${column.columnComment}不能为空") |  | ||||||
| #else |  | ||||||
|     @NotNull(message = "${column.columnComment}不能为空") |  | ||||||
| #end |  | ||||||
| #end |  | ||||||
|     private ${column.javaType} ${column.javaField}; |  | ||||||
|  |  | ||||||
| #end | #end | ||||||
| #end | #end | ||||||
|   | |||||||
| @@ -4,6 +4,16 @@ import lombok.*; | |||||||
| import java.util.*; | import java.util.*; | ||||||
| import io.swagger.annotations.*; | import io.swagger.annotations.*; | ||||||
| import javax.validation.constraints.*; | import javax.validation.constraints.*; | ||||||
|  | ## 处理 Date 字段的引入 | ||||||
|  | #foreach ($column in $columns) | ||||||
|  | #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}) | ||||||
|  |     && ${column.javaType} == "Date")## 时间类型 | ||||||
|  | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  |  | ||||||
|  | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||||
|  | #break | ||||||
|  | #end | ||||||
|  | #end | ||||||
|  |  | ||||||
| @ApiModel("${table.classComment}创建 Request VO") | @ApiModel("${table.classComment}创建 Request VO") | ||||||
| @Data | @Data | ||||||
| @@ -13,14 +23,7 @@ public class ${table.className}CreateReqVO extends ${table.className}BaseVO { | |||||||
|  |  | ||||||
| #foreach ($column in $columns) | #foreach ($column in $columns) | ||||||
| #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}))##不是通用字段 | #if (${column.createOperation} && (!${column.updateOperation} || !${column.listOperationResult}))##不是通用字段 | ||||||
|     @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) |     #parse("codegen/controller/vo/_column.vm") | ||||||
| #if (!${column.nullable})#if (${field.fieldType} == 'String')## 判断 @NotEmpty 和 @NotNull 注解 |  | ||||||
|     @NotEmpty(message = "${column.columnComment}不能为空") |  | ||||||
| #else |  | ||||||
|     @NotNull(message = "${column.columnComment}不能为空") |  | ||||||
| #end |  | ||||||
| #end |  | ||||||
|     private ${column.javaType} ${column.javaField}; |  | ||||||
|  |  | ||||||
| #end | #end | ||||||
| #end | #end | ||||||
|   | |||||||
| @@ -4,42 +4,39 @@ import lombok.*; | |||||||
| import java.util.*; | import java.util.*; | ||||||
| import io.swagger.annotations.*; | import io.swagger.annotations.*; | ||||||
| import ${PageParamClassName}; | import ${PageParamClassName}; | ||||||
| #if (${hasDateColumn}) | ## 处理 Date 字段的引入 | ||||||
|  | #foreach ($column in $columns) | ||||||
|  | #if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | ||||||
| import org.springframework.format.annotation.DateTimeFormat; | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  |  | ||||||
| import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||||
|  | #break | ||||||
|  | #end | ||||||
|  | #end | ||||||
|  | ## 字段模板 | ||||||
|  | #macro(columnTpl $prefix $prefixStr) | ||||||
|  | #if (${column.javaType} == "Date")## 时间类型 | ||||||
|  |     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||||||
|  | #end | ||||||
|  |     @ApiModelProperty(value = "${prefixStr}${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) | ||||||
|  |     private ${column.javaType}#if ("$!prefix" != "") ${prefix}${JavaField}#else ${column.javaField}#end; | ||||||
| #end | #end | ||||||
|  |  | ||||||
| @ApiModel("${table.classComment}分页 Request VO") | @ApiModel("${table.classComment}分页 Request VO") | ||||||
| @Data | @Data | ||||||
| @EqualsAndHashCode(callSuper = true) | @EqualsAndHashCode(callSuper = true) | ||||||
| @ToString(callSuper = true) | @ToString(callSuper = true) | ||||||
| @Builder |  | ||||||
| @NoArgsConstructor |  | ||||||
| @AllArgsConstructor |  | ||||||
| public class ${table.className}PageReqVO extends PageParam { | public class ${table.className}PageReqVO extends PageParam { | ||||||
|  |  | ||||||
| #foreach ($column in $columns) | #foreach ($column in $columns) | ||||||
| #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 | #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 | ||||||
| #if (${column.listOperation})##查询操作 | #if (${column.listOperation})##查询操作 | ||||||
| #if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 | #if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 | ||||||
|     @ApiModelProperty(value = "开始${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) |     #columnTpl('begin', '开始') | ||||||
| #if (${column.javaType} == "Date")## 时间类型 |  | ||||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |  | ||||||
| #end |  | ||||||
|     private ${column.javaType} begin${JavaField}; |  | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "结束${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) |     #columnTpl('end', '结束') | ||||||
| #if (${column.javaType} == "Date")## 时间类型 |  | ||||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |  | ||||||
| #end |  | ||||||
|     private ${column.javaType} end${JavaField}; |  | ||||||
| #else##情况二,非 Between 的时间 | #else##情况二,非 Between 的时间 | ||||||
| #if (${column.javaType} == "Date")## 时间类型 | #columnTpl('', '') | ||||||
|     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |  | ||||||
| #end |  | ||||||
|     @ApiModelProperty(value = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end) |  | ||||||
|     private ${column.javaType} ${column.javaField}; |  | ||||||
| #end | #end | ||||||
|  |  | ||||||
| #end | #end | ||||||
|   | |||||||
| @@ -4,6 +4,16 @@ import lombok.*; | |||||||
| import java.util.*; | import java.util.*; | ||||||
| import io.swagger.annotations.*; | import io.swagger.annotations.*; | ||||||
| import javax.validation.constraints.*; | import javax.validation.constraints.*; | ||||||
|  | ## 处理 Date 字段的引入 | ||||||
|  | #foreach ($column in $columns) | ||||||
|  | #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult})) | ||||||
|  |     && ${column.javaType} == "Date")## 时间类型 | ||||||
|  | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  |  | ||||||
|  | import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||||
|  | #break | ||||||
|  | #end | ||||||
|  | #end | ||||||
|  |  | ||||||
| @ApiModel("${table.classComment}更新 Request VO") | @ApiModel("${table.classComment}更新 Request VO") | ||||||
| @Data | @Data | ||||||
| @@ -13,8 +23,7 @@ public class ${table.className}UpdateReqVO extends ${table.className}BaseVO { | |||||||
|  |  | ||||||
| #foreach ($column in $columns) | #foreach ($column in $columns) | ||||||
| #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult}))##不是通用字段 | #if (${column.updateOperation} && (!${column.createOperation} || !${column.listOperationResult}))##不是通用字段 | ||||||
|     @ApiModelProperty(value = "${column.columnComment}"#if (!${column.nullable}), required = true#end#if ("$!column.example" != ""), example = "${column.example}"#end) |     #parse("codegen/controller/vo/_column.vm") | ||||||
|     private ${column.javaType} ${column.javaField}; |  | ||||||
|  |  | ||||||
| #end | #end | ||||||
| #end | #end | ||||||
|   | |||||||
| @@ -6,6 +6,11 @@ import ${BaseMapperClassName}; | |||||||
| import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO; | import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  | * ${table.classComment} Mapper | ||||||
|  | * | ||||||
|  | * @author ${table.author} | ||||||
|  | */ | ||||||
| @Mapper | @Mapper | ||||||
| public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { | public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV