Commit 13f37ce0cc4915433b051ea52da940217af88472

Authored by YunaiV
1 parent 18b6dfa0

分页 request vo 的编写

增加 example 字段,用于生成 swagger 示例
src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/vo/InfConfigExportReqVO.java
@@ -22,11 +22,11 @@ public class InfConfigExportReqVO { @@ -22,11 +22,11 @@ public class InfConfigExportReqVO {
22 @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举") 22 @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
23 private Integer type; 23 private Integer type;
24 24
25 - @ApiModelProperty(value = "开始时间", example = "2020-10-24") 25 + @ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
26 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 26 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
27 private Date beginTime; 27 private Date beginTime;
28 28
29 - @ApiModelProperty(value = "结束时间", example = "2020-10-24") 29 + @ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
30 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 30 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
31 private Date endTime; 31 private Date endTime;
32 32
src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/vo/InfConfigPageReqVO.java
@@ -25,11 +25,11 @@ public class InfConfigPageReqVO extends PageParam { @@ -25,11 +25,11 @@ public class InfConfigPageReqVO extends PageParam {
25 @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举") 25 @ApiModelProperty(value = "参数类型", example = "1", notes = "参见 SysConfigTypeEnum 枚举")
26 private Integer type; 26 private Integer type;
27 27
28 - @ApiModelProperty(value = "开始时间", example = "2020-10-24") 28 + @ApiModelProperty(value = "开始时间", example = "2020-10-24 00:00:00")
29 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 29 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
30 private Date beginTime; 30 private Date beginTime;
31 31
32 - @ApiModelProperty(value = "结束时间", example = "2020-10-24") 32 + @ApiModelProperty(value = "结束时间", example = "2020-10-24 23:59:59")
33 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 33 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
34 private Date endTime; 34 private Date endTime;
35 35
src/main/java/cn/iocoder/dashboard/modules/tool/dal/mysql/dataobject/codegen/ToolCodegenColumnDO.java
@@ -83,6 +83,10 @@ public class ToolCodegenColumnDO extends BaseDO { @@ -83,6 +83,10 @@ public class ToolCodegenColumnDO extends BaseDO {
83 * 关联 {@link SysDictTypeDO#getType()} 83 * 关联 {@link SysDictTypeDO#getType()}
84 */ 84 */
85 private String dictType; 85 private String dictType;
  86 + /**
  87 + * 数据示例,主要用于生成 Swagger 注解的 example 字段
  88 + */
  89 + private String example;
86 90
87 // ========== CRUD 相关字段 ========== 91 // ========== CRUD 相关字段 ==========
88 92
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenBuilder.java
@@ -48,6 +48,8 @@ public class ToolCodegenBuilder { @@ -48,6 +48,8 @@ public class ToolCodegenBuilder {
48 .put("image", ToolCodegenColumnHtmlTypeEnum.UPLOAD_IMAGE) 48 .put("image", ToolCodegenColumnHtmlTypeEnum.UPLOAD_IMAGE)
49 .put("file", ToolCodegenColumnHtmlTypeEnum.UPLOAD_FILE) 49 .put("file", ToolCodegenColumnHtmlTypeEnum.UPLOAD_FILE)
50 .put("content", ToolCodegenColumnHtmlTypeEnum.EDITOR) 50 .put("content", ToolCodegenColumnHtmlTypeEnum.EDITOR)
  51 + .put("time", ToolCodegenColumnHtmlTypeEnum.DATETIME)
  52 + .put("date", ToolCodegenColumnHtmlTypeEnum.DATETIME)
51 .build(); 53 .build();
52 54
53 /** 55 /**
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngine.java
@@ -3,12 +3,13 @@ package cn.iocoder.dashboard.modules.tool.service.codegen.impl; @@ -3,12 +3,13 @@ package cn.iocoder.dashboard.modules.tool.service.codegen.impl;
3 import cn.hutool.extra.template.TemplateConfig; 3 import cn.hutool.extra.template.TemplateConfig;
4 import cn.hutool.extra.template.TemplateEngine; 4 import cn.hutool.extra.template.TemplateEngine;
5 import cn.hutool.extra.template.TemplateUtil; 5 import cn.hutool.extra.template.TemplateUtil;
  6 +import cn.iocoder.dashboard.common.pojo.PageParam;
6 import cn.iocoder.dashboard.common.pojo.PageResult; 7 import cn.iocoder.dashboard.common.pojo.PageResult;
7 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; 8 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
  9 +import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX;
8 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; 10 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
9 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO; 11 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenColumnDO;
10 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO; 12 import cn.iocoder.dashboard.modules.tool.dal.mysql.dataobject.codegen.ToolCodegenTableDO;
11 -import com.baomidou.mybatisplus.core.mapper.BaseMapper;  
12 import org.springframework.stereotype.Component; 13 import org.springframework.stereotype.Component;
13 14
14 import java.util.HashMap; 15 import java.util.HashMap;
@@ -49,11 +50,13 @@ public class ToolCodegenEngine { @@ -49,11 +50,13 @@ public class ToolCodegenEngine {
49 globalBindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包 50 globalBindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包
50 // 全局 Java Bean 51 // 全局 Java Bean
51 globalBindingMap.put("pageResultClassName", PageResult.class.getName()); 52 globalBindingMap.put("pageResultClassName", PageResult.class.getName());
  53 + // VO 类,独有字段
  54 + globalBindingMap.put("pageParamClassName", PageParam.class.getName());
52 // DO 类,独有字段 55 // DO 类,独有字段
53 globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); 56 globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS);
54 globalBindingMap.put("baseDOClassName", BaseDO.class.getName()); 57 globalBindingMap.put("baseDOClassName", BaseDO.class.getName());
55 globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName()); 58 globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName());
56 - globalBindingMap.put("BaseMapperClassName", BaseMapper.class.getName()); 59 + globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName());
57 } 60 }
58 61
59 public void execute(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) { 62 public void execute(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) {
@@ -64,7 +67,8 @@ public class ToolCodegenEngine { @@ -64,7 +67,8 @@ public class ToolCodegenEngine {
64 bindingMap.putAll(globalBindingMap); 67 bindingMap.putAll(globalBindingMap);
65 // 执行生成 68 // 执行生成
66 // String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap); 69 // String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap);
67 - String result = templateEngine.getTemplate("codegen/dal/mapper.vm").render(bindingMap); 70 +// String result = templateEngine.getTemplate("codegen/dal/mapper.vm").render(bindingMap);
  71 + String result = templateEngine.getTemplate("codegen/controller/vo/pageReqVO.vm").render(bindingMap);
68 System.out.println(result); 72 System.out.println(result);
69 } 73 }
70 74
src/main/resources/codegen/controller/controller.vm 0 → 100644
  1 +import org.springframework.web.bind.annotation.*;
  2 +import org.springframework.beans.factory.annotation.Autowired;
  3 +import io.swagger.annotations.*;
  4 +import javax.validation.constraints.*;
  5 +import javax.validation.*;
  6 +import java.util.*;
  7 +
  8 +import org.springframework.validation.annotation.Validated;
  9 +
  10 +/**
  11 + * ${class.description} Controller
  12 + */
  13 +@RestController
  14 +@RequestMapping("/${class.classNameLowerUnderscore}")
  15 +@Api(tags = "${class.description}")
  16 +@Validated
  17 +public class ${class.className}Controller {
  18 +
  19 + @Autowired
  20 + private ${class.className}Service ${class.classNameVar}Service;
  21 +
  22 + @PostMapping("/create")
  23 + @ApiOperation("创建${class.description}")
  24 + public CommonResult<Integer> create${class.className}(@Valid ${class.className}CreateReqVO createVO) {
  25 + return success(${class.classNameVar}Service.create${class.className}(createVO));
  26 + }
  27 +
  28 + @PostMapping("/update")
  29 + @ApiOperation("更新${class.description}")
  30 + public CommonResult<Boolean> update${class.className}(@Valid ${class.className}UpdateReqVO updateVO) {
  31 + ${class.classNameVar}Service.update${class.className}(updateVO);
  32 + return success(true);
  33 + }
  34 +
  35 + @PostMapping("/delete")
  36 + @ApiOperation("删除${class.description}")
  37 + @ApiImplicitParam(name = "${class.classNameVar}Id", value = "${class.description}编号", required = true)
  38 + public CommonResult<Boolean> delete${class.className}(@RequestParam("${class.classNameVar}Id") Integer ${class.classNameVar}Id) {
  39 + ${class.classNameVar}Service.delete${class.className}(${class.classNameVar}Id);
  40 + return success(true);
  41 + }
  42 +
  43 + @GetMapping("/get")
  44 + @ApiOperation("获得${class.description}")
  45 + @ApiImplicitParam(name = "${class.classNameVar}Id", value = "${class.description}编号", required = true)
  46 + public CommonResult<${class.className}RespVO> get${class.className}(@RequestParam("${class.classNameVar}Id") Integer ${class.classNameVar}Id) {
  47 + return success(${class.classNameVar}Service.get${class.className}(${class.classNameVar}Id));
  48 + }
  49 +
  50 + @GetMapping("/list")
  51 + @ApiOperation("获得${class.description}列表")
  52 + @ApiImplicitParam(name = "${class.classNameVar}Ids", value = "${class.description}编号列表", required = true)
  53 + public CommonResult<List<${class.className}RespVO>> list${class.className}s(@RequestParam("${class.classNameVar}Ids") List<Integer> ${class.classNameVar}Ids) {
  54 + return success(${class.classNameVar}Service.list${class.className}s(${class.classNameVar}Ids));
  55 + }
  56 +
  57 + @GetMapping("/page")
  58 + @ApiOperation("获得${class.description}分页")
  59 + public CommonResult<PageResult<${class.className}RespVO>> page${class.className}(${class.className}PageReqVO pageVO) {
  60 + return success(${class.classNameVar}Service.page${class.className}(pageVO));
  61 + }
  62 +
  63 +}
src/main/resources/codegen/controller/vo/pageReqVO.vm 0 → 100644
  1 +package ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import javax.validation.constraints.*;
  6 +import io.swagger.annotations.*;
  7 +import ${pageParamClassName};
  8 +
  9 +@ApiModel("${table.classComment}分页 Request VO")
  10 +@Data
  11 +@EqualsAndHashCode(callSuper = true)
  12 +@ToString(callSuper = true)
  13 +@Builder
  14 +@NoArgsConstructor
  15 +@AllArgsConstructor
  16 +public class ${table.className}PageReqVO extends PageParam {
  17 +
  18 +#foreach ($column in $columns)
  19 +#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
  20 +#if (${column.listOperation})##查询操作
  21 +#if (${column.listOperationCondition} == "BETWEEN")## Between 的时候
  22 + @ApiModelProperty(value = "开始${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
  23 +#if (${column.javaType} == "Date")## 时间类型
  24 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  25 +#end
  26 + private ${column.javaType} begin${JavaField};
  27 +
  28 + @ApiModelProperty(value = "结束${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
  29 +#if (${column.javaType} == "Date")## 时间类型
  30 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  31 +#end
  32 + private ${column.javaType} end${JavaField};
  33 +#else
  34 +#if (${column.javaType} == "Date")## 时间类型
  35 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  36 +#end
  37 + @ApiModelProperty(value = "${column.columnComment}"#if ("$!column.example" != ""), example = "${column.example}"#end)
  38 + private ${column.javaType} ${column.javaField};
  39 +#end
  40 +
  41 +#end
  42 +#end
  43 +}
src/main/resources/codegen/dal/do.vm
1 package ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}; 1 package ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName};
2 2
3 -import com.baomidou.mybatisplus.annotation.*;  
4 -import ${baseDOClassName};  
5 import lombok.*; 3 import lombok.*;
6 import java.util.*; 4 import java.util.*;
  5 +import com.baomidou.mybatisplus.annotation.*;
  6 +import ${baseDOClassName};
7 7
8 /** 8 /**
9 * ${table.classComment} DO 9 * ${table.classComment} DO
@@ -24,7 +24,7 @@ public class ${table.className}DO extends BaseDO { @@ -24,7 +24,7 @@ public class ${table.className}DO extends BaseDO {
24 /** 24 /**
25 * ${column.columnComment} 25 * ${column.columnComment}
26 */ 26 */
27 -#if ($column.dictType != "")##处理枚举值 27 +#if ("$!column.dictType" != "")##处理枚举值
28 // TODO 枚举 ${column.dictType} 28 // TODO 枚举 ${column.dictType}
29 #end 29 #end
30 #if (${column.primaryKey} && ${column.javaType} != 'String')##处理主键 + 非 String 的情况 30 #if (${column.primaryKey} && ${column.javaType} != 'String')##处理主键 + 非 String 的情况
src/main/resources/codegen/dal/mapper.vm
1 package ${basePackage}.${table.moduleName}.dal.mysql.dao.${table.businessName}; 1 package ${basePackage}.${table.moduleName}.dal.mysql.dao.${table.businessName};
2 2
3 -import com.baomidou.mybatisplus.core.mapper.BaseMapper;  
4 -  
5 import ${pageResultClassName}; 3 import ${pageResultClassName};
6 import ${QueryWrapperClassName}; 4 import ${QueryWrapperClassName};
7 import ${BaseMapperClassName}; 5 import ${BaseMapperClassName};
8 -import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}DO; 6 +import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
9 import org.apache.ibatis.annotations.Mapper; 7 import org.apache.ibatis.annotations.Mapper;
10 8
11 @Mapper 9 @Mapper
@@ -17,22 +15,25 @@ public interface ${table.className}Mapper extends BaseMapperX&lt;${table.className} @@ -17,22 +15,25 @@ public interface ${table.className}Mapper extends BaseMapperX&lt;${table.className}
17 #if (${column.listOperation}) 15 #if (${column.listOperation})
18 #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 16 #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写
19 #if (${column.listOperationCondition} == "=")##情况一,= 的时候 17 #if (${column.listOperationCondition} == "=")##情况一,= 的时候
20 - .eqIfPresent("${column.column_name}", reqVO.get${JavaField}()) 18 + .eqIfPresent("${column.columnName}", reqVO.get${JavaField}())
21 #end 19 #end
22 #if (${column.listOperationCondition} == "!=")##情况二,!= 的时候 20 #if (${column.listOperationCondition} == "!=")##情况二,!= 的时候
23 - .neIfPresent("${column.column_name}", reqVO.get${JavaField}()) 21 + .neIfPresent("${column.columnName}", reqVO.get${JavaField}())
24 #end 22 #end
25 #if (${column.listOperationCondition} == ">")##情况三,> 的时候 23 #if (${column.listOperationCondition} == ">")##情况三,> 的时候
26 - .gtIfPresent("${column.column_name}", reqVO.get${JavaField}()) 24 + .gtIfPresent("${column.columnName}", reqVO.get${JavaField}())
27 #end 25 #end
28 #if (${column.listOperationCondition} == ">=")##情况四,>= 的时候 26 #if (${column.listOperationCondition} == ">=")##情况四,>= 的时候
29 - .geIfPresent("${column.column_name}", reqVO.get${JavaField}()) 27 + .geIfPresent("${column.columnName}", reqVO.get${JavaField}())
30 #end 28 #end
31 #if (${column.listOperationCondition} == "<")##情况五,< 的时候 29 #if (${column.listOperationCondition} == "<")##情况五,< 的时候
32 - .gtIfPresent("${column.column_name}", reqVO.get${JavaField}()) 30 + .gtIfPresent("${column.columnName}", reqVO.get${JavaField}())
  31 +#end
  32 +#if (${column.listOperationCondition} == "LIKE")##情况七,Like 的时候
  33 + .likeIfPresent("${column.columnName}", reqVO.get${JavaField}())
33 #end 34 #end
34 -#if (${column.listOperationCondition} == "<=")##情况六,<= 的时候  
35 - .geIfPresent("${column.column_name}", reqVO.get${JavaField}()) 35 +#if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候
  36 + .betweenIfPresent("${column.columnName}", reqVO.getBegin${JavaField}(), reqVO.getEnd${JavaField}())
36 #end 37 #end
37 #end 38 #end
38 #end 39 #end