Commit fade9bce329a8c6130de2e49443eb78ed1624d23

Authored by YunaiV
1 parent 13f37ce0

解决现有 vo、do、mapper 的问题

src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngine.java
... ... @@ -10,8 +10,10 @@ import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX;
10 10 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
11 11 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
12 12 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
  13 +import cn.iocoder.dashboard.util.date.DateUtils;
13 14 import org.springframework.stereotype.Component;
14 15  
  16 +import java.util.Date;
15 17 import java.util.HashMap;
16 18 import java.util.List;
17 19 import java.util.Map;
... ... @@ -49,9 +51,10 @@ public class ToolCodegenEngine {
49 51 // 全局配置
50 52 globalBindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包
51 53 // 全局 Java Bean
52   - globalBindingMap.put("pageResultClassName", PageResult.class.getName());
  54 + globalBindingMap.put("PageResultClassName", PageResult.class.getName());
  55 + globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName());
53 56 // VO 类,独有字段
54   - globalBindingMap.put("pageParamClassName", PageParam.class.getName());
  57 + globalBindingMap.put("PageParamClassName", PageParam.class.getName());
55 58 // DO 类,独有字段
56 59 globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS);
57 60 globalBindingMap.put("baseDOClassName", BaseDO.class.getName());
... ... @@ -64,6 +67,8 @@ public class ToolCodegenEngine {
64 67 Map<String, Object> bindingMap = new HashMap<>();
65 68 bindingMap.put("table", table);
66 69 bindingMap.put("columns", columns);
  70 + bindingMap.put("hasDateColumn", columns.stream().anyMatch(codegenColumnDO ->
  71 + codegenColumnDO.getJavaType().equals(Date.class.getSimpleName())));
67 72 bindingMap.putAll(globalBindingMap);
68 73 // 执行生成
69 74 // String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap);
... ...
src/main/resources/codegen/controller/vo/pageReqVO.vm
... ... @@ -2,9 +2,13 @@ package ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
5   -import javax.validation.constraints.*;
6 5 import io.swagger.annotations.*;
7   -import ${pageParamClassName};
  6 +import ${PageParamClassName};
  7 +#if (${hasDateColumn})
  8 +import org.springframework.format.annotation.DateTimeFormat;
  9 +
  10 +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  11 +#end
8 12  
9 13 @ApiModel("${table.classComment}分页 Request VO")
10 14 @Data
... ... @@ -18,7 +22,7 @@ public class ${table.className}PageReqVO extends PageParam {
18 22 #foreach ($column in $columns)
19 23 #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
20 24 #if (${column.listOperation})##查询操作
21   -#if (${column.listOperationCondition} == "BETWEEN")## Between 的时候
  25 +#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候
22 26 @ApiModelProperty(value = "开始${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
23 27 #if (${column.javaType} == "Date")## 时间类型
24 28 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
... ... @@ -30,7 +34,7 @@ public class ${table.className}PageReqVO extends PageParam {
30 34 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
31 35 #end
32 36 private ${column.javaType} end${JavaField};
33   -#else
  37 +#else##情况二,非 Between 的时间
34 38 #if (${column.javaType} == "Date")## 时间类型
35 39 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
36 40 #end
... ...
src/main/resources/codegen/dal/do.vm
... ... @@ -3,7 +3,7 @@ package ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.business
3 3 import lombok.*;
4 4 import java.util.*;
5 5 import com.baomidou.mybatisplus.annotation.*;
6   -import ${baseDOClassName};
  6 +import ${BaseDOClassName};
7 7  
8 8 /**
9 9 * ${table.classComment} DO
... ...
src/main/resources/codegen/dal/mapper.vm
1 1 package ${basePackage}.${table.moduleName}.dal.mysql.dao.${table.businessName};
2 2  
3   -import ${pageResultClassName};
  3 +import ${PageResultClassName};
4 4 import ${QueryWrapperClassName};
5 5 import ${BaseMapperClassName};
6 6 import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
... ...