Commit eb3d0386eed53c9ceecca4beff5a7180ea28dc23
1 parent
392dfa47
代码生成器,增加 excel 导出功能
Showing
34 changed files
with
761 additions
and
68 deletions
src/main/java/cn/iocoder/dashboard/modules/infra/enums/InfErrorCodeConstants.java
| @@ -5,7 +5,7 @@ import cn.iocoder.dashboard.common.exception.ErrorCode; | @@ -5,7 +5,7 @@ import cn.iocoder.dashboard.common.exception.ErrorCode; | ||
| 5 | /** | 5 | /** |
| 6 | * Infra 错误码枚举类 | 6 | * Infra 错误码枚举类 |
| 7 | * | 7 | * |
| 8 | - * system 系统,使用 1-001-000-000 段 | 8 | + * infra 系统,使用 1-001-000-000 段 |
| 9 | */ | 9 | */ |
| 10 | public interface InfErrorCodeConstants { | 10 | public interface InfErrorCodeConstants { |
| 11 | 11 |
src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java
| @@ -75,7 +75,4 @@ public interface SysErrorCodeConstants { | @@ -75,7 +75,4 @@ public interface SysErrorCodeConstants { | ||
| 75 | // ========== 文件 1002009000 ========== | 75 | // ========== 文件 1002009000 ========== |
| 76 | ErrorCode FILE_PATH_EXISTS = new ErrorCode(1002009001, "文件路径已经存在"); | 76 | ErrorCode FILE_PATH_EXISTS = new ErrorCode(1002009001, "文件路径已经存在"); |
| 77 | 77 | ||
| 78 | - // ========== 字典类型(测试) 1002010000 ========== | ||
| 79 | - ErrorCode TEST_DEMO_NOT_EXISTS = new ErrorCode(1002010000, "字典类型不存在}"); | ||
| 80 | - | ||
| 81 | } | 78 | } |
src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java
| @@ -16,6 +16,8 @@ public enum SysDictTypeEnum { | @@ -16,6 +16,8 @@ public enum SysDictTypeEnum { | ||
| 16 | SYS_LOGIN_RESULT("sys_login_result"), // 登陆结果 | 16 | SYS_LOGIN_RESULT("sys_login_result"), // 登陆结果 |
| 17 | SYS_CONFIG_TYPE("sys_config_type"), // 参数配置类型 | 17 | SYS_CONFIG_TYPE("sys_config_type"), // 参数配置类型 |
| 18 | SYS_BOOLEAN_STRING("sys_boolean_string"), // Boolean 是否类型 | 18 | SYS_BOOLEAN_STRING("sys_boolean_string"), // Boolean 是否类型 |
| 19 | + | ||
| 20 | + INF_REDIS_TIMEOUT_TYPE("inf_redis_timeout_type"), // Redis 超时类型 | ||
| 19 | ; | 21 | ; |
| 20 | 22 | ||
| 21 | 23 |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.controller; |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/ToolTestDemoController.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; | ||
| 6 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.*; | ||
| 7 | +import cn.iocoder.dashboard.modules.tool.convert.test.ToolTestDemoConvert; | ||
| 8 | +import cn.iocoder.dashboard.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||
| 9 | +import cn.iocoder.dashboard.modules.tool.service.test.ToolTestDemoService; | ||
| 10 | +import io.swagger.annotations.Api; | ||
| 11 | +import io.swagger.annotations.ApiImplicitParam; | ||
| 12 | +import io.swagger.annotations.ApiOperation; | ||
| 13 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | +import org.springframework.web.bind.annotation.*; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import javax.servlet.http.HttpServletResponse; | ||
| 18 | +import javax.validation.Valid; | ||
| 19 | +import java.io.IOException; | ||
| 20 | +import java.util.Collection; | ||
| 21 | +import java.util.List; | ||
| 22 | + | ||
| 23 | +import static cn.iocoder.dashboard.common.pojo.CommonResult.success; | ||
| 24 | + | ||
| 25 | +@Api(tags = "字典类型") | ||
| 26 | +@RestController | ||
| 27 | +@RequestMapping("/tool/test-demo") | ||
| 28 | +@Validated | ||
| 29 | +public class ToolTestDemoController { | ||
| 30 | + | ||
| 31 | + @Resource | ||
| 32 | + private ToolTestDemoService testDemoService; | ||
| 33 | + | ||
| 34 | + @ApiOperation("创建字典类型") | ||
| 35 | + @PostMapping("/create") | ||
| 36 | + public CommonResult<Long> createTestDemo(@Valid ToolTestDemoCreateReqVO createReqVO) { | ||
| 37 | + return success(testDemoService.createTestDemo(createReqVO)); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + @ApiOperation("更新字典类型") | ||
| 41 | + @PutMapping("/update") | ||
| 42 | + public CommonResult<Boolean> updateTestDemo(@Valid ToolTestDemoUpdateReqVO updateReqVO) { | ||
| 43 | + testDemoService.updateTestDemo(updateReqVO); | ||
| 44 | + return success(true); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + @ApiOperation("删除字典类型") | ||
| 48 | + @DeleteMapping("/delete") | ||
| 49 | + @ApiImplicitParam(name = "id", value = "编号", required = true) | ||
| 50 | + public CommonResult<Boolean> deleteTestDemo(@RequestParam("id") Long id) { | ||
| 51 | + testDemoService.deleteTestDemo(id); | ||
| 52 | + return success(true); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @GetMapping("/get") | ||
| 56 | + @ApiOperation("获得字典类型") | ||
| 57 | + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) | ||
| 58 | + public CommonResult<ToolTestDemoRespVO> getTestDemo(@RequestParam("id") Long id) { | ||
| 59 | + ToolTestDemoDO testDemo = testDemoService.getTestDemo(id); | ||
| 60 | + return success(ToolTestDemoConvert.INSTANCE.convert(testDemo)); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + @GetMapping("/list") | ||
| 64 | + @ApiOperation("获得字典类型列表") | ||
| 65 | + @ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class) | ||
| 66 | + public CommonResult<List<ToolTestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) { | ||
| 67 | + List<ToolTestDemoDO> list = testDemoService.getTestDemoList(ids); | ||
| 68 | + return success(ToolTestDemoConvert.INSTANCE.convertList(list)); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + @ApiOperation("获得字典类型分页") | ||
| 72 | + @GetMapping("/page") | ||
| 73 | + public CommonResult<PageResult<ToolTestDemoRespVO>> getTestDemoPage(@Valid ToolTestDemoPageReqVO pageVO) { | ||
| 74 | + PageResult<ToolTestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO); | ||
| 75 | + return success(ToolTestDemoConvert.INSTANCE.convertPage(pageResult)); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + @GetMapping("/export-excel") | ||
| 79 | + @ApiOperation("导出字典类型 Excel") | ||
| 80 | + public void exportTestDemoExcel(@Valid ToolTestDemoExportReqVO exportReqVO, | ||
| 81 | + HttpServletResponse response) throws IOException { | ||
| 82 | + List<ToolTestDemoDO> list = testDemoService.getTestDemoList(exportReqVO); | ||
| 83 | + // 导出 Excel | ||
| 84 | + List<ToolTestDemoExcelVO> datas = ToolTestDemoConvert.INSTANCE.convertList02(list); | ||
| 85 | + ExcelUtils.write(response, "字典类型.xls", "数据", ToolTestDemoExcelVO.class, datas); | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoBaseVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModelProperty; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotNull; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | +* 字典类型 Base VO,提供给添加、修改、详细的子 VO 使用 | ||
| 10 | +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | ||
| 11 | +*/ | ||
| 12 | +@Data | ||
| 13 | +public class ToolTestDemoBaseVO { | ||
| 14 | + | ||
| 15 | + @ApiModelProperty(value = "名字", required = true, example = "芋道") | ||
| 16 | + @NotNull(message = "名字不能为空") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "状态", required = true, example = "1") | ||
| 20 | + @NotNull(message = "状态不能为空") | ||
| 21 | + private Integer status; | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "类型", required = true, example = "2") | ||
| 24 | + @NotNull(message = "类型不能为空") | ||
| 25 | + private Integer type; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "分类", required = true, example = "3") | ||
| 28 | + @NotNull(message = "分类不能为空") | ||
| 29 | + private Integer category; | ||
| 30 | + | ||
| 31 | + @ApiModelProperty(value = "备注", example = "我是备注") | ||
| 32 | + private String remark; | ||
| 33 | + | ||
| 34 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoCreateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.EqualsAndHashCode; | ||
| 6 | +import lombok.ToString; | ||
| 7 | + | ||
| 8 | +@ApiModel("字典类型创建 Request VO") | ||
| 9 | +@Data | ||
| 10 | +@EqualsAndHashCode(callSuper = true) | ||
| 11 | +@ToString(callSuper = true) | ||
| 12 | +public class ToolTestDemoCreateReqVO extends ToolTestDemoBaseVO { | ||
| 13 | + | ||
| 14 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoExcelVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; | ||
| 4 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +import static cn.iocoder.dashboard.modules.system.enums.dict.SysDictTypeEnum.*; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 字典类型 Excel VO | ||
| 13 | + * | ||
| 14 | + * @author 芋艿 | ||
| 15 | + */ | ||
| 16 | +@Data | ||
| 17 | +public class ToolTestDemoExcelVO { | ||
| 18 | + | ||
| 19 | + @ExcelProperty("编号") | ||
| 20 | + private Long id; | ||
| 21 | + | ||
| 22 | + @ExcelProperty("名字") | ||
| 23 | + private String name; | ||
| 24 | + | ||
| 25 | + @ExcelProperty("状态") | ||
| 26 | + @DictFormat(SYS_COMMON_STATUS) | ||
| 27 | + private Integer status; | ||
| 28 | + | ||
| 29 | + @ExcelProperty("类型") | ||
| 30 | + @DictFormat(SYS_OPERATE_TYPE) | ||
| 31 | + private Integer type; | ||
| 32 | + | ||
| 33 | + @ExcelProperty("分类") | ||
| 34 | + @DictFormat(INF_REDIS_TIMEOUT_TYPE) | ||
| 35 | + private Integer category; | ||
| 36 | + | ||
| 37 | + @ExcelProperty("备注") | ||
| 38 | + private String remark; | ||
| 39 | + | ||
| 40 | + @ExcelProperty("创建时间") | ||
| 41 | + private Date createTime; | ||
| 42 | + | ||
| 43 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoExportReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 7 | + | ||
| 8 | +import java.util.Date; | ||
| 9 | + | ||
| 10 | +import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 11 | + | ||
| 12 | +@ApiModel(value = "字典类型 Excel 导出 Request VO", description = "参数和 ToolTestDemoPageReqVO 是一致的") | ||
| 13 | +@Data | ||
| 14 | +public class ToolTestDemoExportReqVO { | ||
| 15 | + | ||
| 16 | + @ApiModelProperty(value = "名字", example = "芋道") | ||
| 17 | + private String name; | ||
| 18 | + | ||
| 19 | + @ApiModelProperty(value = "状态", example = "1") | ||
| 20 | + private Integer status; | ||
| 21 | + | ||
| 22 | + @ApiModelProperty(value = "类型", example = "2") | ||
| 23 | + private Integer type; | ||
| 24 | + | ||
| 25 | + @ApiModelProperty(value = "分类", example = "3") | ||
| 26 | + private Integer category; | ||
| 27 | + | ||
| 28 | + @ApiModelProperty(value = "备注", example = "我是备注") | ||
| 29 | + private String remark; | ||
| 30 | + | ||
| 31 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 32 | + @ApiModelProperty(value = "开始创建时间") | ||
| 33 | + private Date beginCreateTime; | ||
| 34 | + | ||
| 35 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 36 | + @ApiModelProperty(value = "结束创建时间") | ||
| 37 | + private Date endCreateTime; | ||
| 38 | + | ||
| 39 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoPageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageParam; | ||
| 4 | +import io.swagger.annotations.ApiModel; | ||
| 5 | +import io.swagger.annotations.ApiModelProperty; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.ToString; | ||
| 9 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 10 | + | ||
| 11 | +import java.util.Date; | ||
| 12 | + | ||
| 13 | +import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 14 | + | ||
| 15 | +@ApiModel("字典类型分页 Request VO") | ||
| 16 | +@Data | ||
| 17 | +@EqualsAndHashCode(callSuper = true) | ||
| 18 | +@ToString(callSuper = true) | ||
| 19 | +public class ToolTestDemoPageReqVO extends PageParam { | ||
| 20 | + | ||
| 21 | + @ApiModelProperty(value = "名字", example = "芋道") | ||
| 22 | + private String name; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "状态", example = "1") | ||
| 25 | + private Integer status; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "类型", example = "2") | ||
| 28 | + private Integer type; | ||
| 29 | + | ||
| 30 | + @ApiModelProperty(value = "分类", example = "3") | ||
| 31 | + private Integer category; | ||
| 32 | + | ||
| 33 | + @ApiModelProperty(value = "备注", example = "我是备注") | ||
| 34 | + private String remark; | ||
| 35 | + | ||
| 36 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 37 | + @ApiModelProperty(value = "开始创建时间") | ||
| 38 | + private Date beginCreateTime; | ||
| 39 | + | ||
| 40 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 41 | + @ApiModelProperty(value = "结束创建时间") | ||
| 42 | + private Date endCreateTime; | ||
| 43 | + | ||
| 44 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoRespVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import java.util.Date; | ||
| 10 | + | ||
| 11 | +@ApiModel("字典类型 Response VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class ToolTestDemoRespVO extends ToolTestDemoBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "编号", required = true, example = "1") | ||
| 18 | + private Long id; | ||
| 19 | + | ||
| 20 | + @ApiModelProperty(value = "创建时间", required = true) | ||
| 21 | + private Date createTime; | ||
| 22 | + | ||
| 23 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/controller/test/vo/ToolTestDemoUpdateReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.controller.test.vo; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.EqualsAndHashCode; | ||
| 7 | +import lombok.ToString; | ||
| 8 | + | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +@ApiModel("字典类型更新 Request VO") | ||
| 12 | +@Data | ||
| 13 | +@EqualsAndHashCode(callSuper = true) | ||
| 14 | +@ToString(callSuper = true) | ||
| 15 | +public class ToolTestDemoUpdateReqVO extends ToolTestDemoBaseVO { | ||
| 16 | + | ||
| 17 | + @ApiModelProperty(value = "编号", required = true, example = "1") | ||
| 18 | + @NotNull(message = "编号不能为空") | ||
| 19 | + private Long id; | ||
| 20 | + | ||
| 21 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/convert/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.convert; |
src/main/java/cn/iocoder/dashboard/modules/tool/convert/test/ToolTestDemoConvert.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.convert.test; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; | ||
| 5 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoExcelVO; | ||
| 6 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoRespVO; | ||
| 7 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; | ||
| 8 | +import cn.iocoder.dashboard.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||
| 9 | +import org.mapstruct.Mapper; | ||
| 10 | +import org.mapstruct.factory.Mappers; | ||
| 11 | + | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | +* 字典类型 Convert | ||
| 16 | +* | ||
| 17 | +* @author 芋艿 | ||
| 18 | +*/ | ||
| 19 | +@Mapper | ||
| 20 | +public interface ToolTestDemoConvert { | ||
| 21 | + | ||
| 22 | + ToolTestDemoConvert INSTANCE = Mappers.getMapper(ToolTestDemoConvert.class); | ||
| 23 | + | ||
| 24 | + ToolTestDemoDO convert(ToolTestDemoCreateReqVO bean); | ||
| 25 | + | ||
| 26 | + ToolTestDemoDO convert(ToolTestDemoUpdateReqVO bean); | ||
| 27 | + | ||
| 28 | + ToolTestDemoRespVO convert(ToolTestDemoDO bean); | ||
| 29 | + | ||
| 30 | + List<ToolTestDemoRespVO> convertList(List<ToolTestDemoDO> list); | ||
| 31 | + | ||
| 32 | + PageResult<ToolTestDemoRespVO> convertPage(PageResult<ToolTestDemoDO> page); | ||
| 33 | + | ||
| 34 | + List<ToolTestDemoExcelVO> convertList02(List<ToolTestDemoDO> list); | ||
| 35 | + | ||
| 36 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/dal/dataobject/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.dal.dataobject; |
src/main/java/cn/iocoder/dashboard/modules/tool/dal/dataobject/test/ToolTestDemoDO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.dal.dataobject.test; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.TableId; | ||
| 5 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 6 | +import lombok.*; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | +* 字典类型 DO | ||
| 10 | +* | ||
| 11 | +* @author 芋艿 | ||
| 12 | +*/ | ||
| 13 | +@TableName("tool_test_demo") | ||
| 14 | +@Data | ||
| 15 | +@EqualsAndHashCode(callSuper = true) | ||
| 16 | +@ToString(callSuper = true) | ||
| 17 | +@Builder | ||
| 18 | +@NoArgsConstructor | ||
| 19 | +@AllArgsConstructor | ||
| 20 | +public class ToolTestDemoDO extends BaseDO { | ||
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * 编号 | ||
| 24 | + */ | ||
| 25 | + @TableId | ||
| 26 | + private Long id; | ||
| 27 | + /** | ||
| 28 | + * 名字 | ||
| 29 | + */ | ||
| 30 | + private String name; | ||
| 31 | + /** | ||
| 32 | + * 状态 | ||
| 33 | + * | ||
| 34 | + * 枚举 {@link cn.iocoder.dashboard.common.enums.CommonStatusEnum} | ||
| 35 | + */ | ||
| 36 | + private Integer status; | ||
| 37 | + /** | ||
| 38 | + * 类型 | ||
| 39 | + * | ||
| 40 | + * 枚举 {@link cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum} | ||
| 41 | + */ | ||
| 42 | + private Integer type; | ||
| 43 | + /** | ||
| 44 | + * 分类 | ||
| 45 | + * | ||
| 46 | + * 枚举 {@link cn.iocoder.dashboard.framework.redis.core.RedisKeyDefine.TimeoutTypeEnum} | ||
| 47 | + */ | ||
| 48 | + private Integer category; | ||
| 49 | + /** | ||
| 50 | + * 备注 | ||
| 51 | + */ | ||
| 52 | + private String remark; | ||
| 53 | + | ||
| 54 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/dal/mysql/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.dal.mysql; |
src/main/java/cn/iocoder/dashboard/modules/tool/dal/mysql/test/ToolTestDemoMapper.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.dal.mysql.test; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | +import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | ||
| 6 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; | ||
| 7 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; | ||
| 8 | +import cn.iocoder.dashboard.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||
| 9 | +import org.apache.ibatis.annotations.Mapper; | ||
| 10 | + | ||
| 11 | +import java.util.List; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 字典类型 Mapper | ||
| 15 | + * | ||
| 16 | + * @author 芋艿 | ||
| 17 | + */ | ||
| 18 | +@Mapper | ||
| 19 | +public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> { | ||
| 20 | + | ||
| 21 | + default PageResult<ToolTestDemoDO> selectPage(ToolTestDemoPageReqVO reqVO) { | ||
| 22 | + return selectPage(reqVO, new QueryWrapperX<ToolTestDemoDO>() | ||
| 23 | + .likeIfPresent("name", reqVO.getName()) | ||
| 24 | + .eqIfPresent("status", reqVO.getStatus()) | ||
| 25 | + .eqIfPresent("type", reqVO.getType()) | ||
| 26 | + .eqIfPresent("category", reqVO.getCategory()) | ||
| 27 | + .eqIfPresent("remark", reqVO.getRemark()) | ||
| 28 | + .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||
| 29 | + ); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + default List<ToolTestDemoDO> selectList(ToolTestDemoExportReqVO reqVO) { | ||
| 33 | + return selectList(new QueryWrapperX<ToolTestDemoDO>() | ||
| 34 | + .likeIfPresent("name", reqVO.getName()) | ||
| 35 | + .eqIfPresent("status", reqVO.getStatus()) | ||
| 36 | + .eqIfPresent("type", reqVO.getType()) | ||
| 37 | + .eqIfPresent("category", reqVO.getCategory()) | ||
| 38 | + .eqIfPresent("remark", reqVO.getRemark()) | ||
| 39 | + .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||
| 40 | + ); | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/enums/ToolErrorCodeConstants.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.enums; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.exception.ErrorCode; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Tool 错误码枚举类 | ||
| 7 | + * | ||
| 8 | + * tool 系统,使用 1-003-000-000 段 | ||
| 9 | + */ | ||
| 10 | +public interface ToolErrorCodeConstants { | ||
| 11 | + | ||
| 12 | + // ========== 字典类型(测试) 1003000000 ========== | ||
| 13 | + ErrorCode TEST_DEMO_NOT_EXISTS = new ErrorCode(1003000000, "测试示例不存在"); | ||
| 14 | + | ||
| 15 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/enums/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.enums; |
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngine.java
| @@ -10,9 +10,12 @@ import cn.iocoder.dashboard.common.pojo.CommonResult; | @@ -10,9 +10,12 @@ import cn.iocoder.dashboard.common.pojo.CommonResult; | ||
| 10 | import cn.iocoder.dashboard.common.pojo.PageParam; | 10 | import cn.iocoder.dashboard.common.pojo.PageParam; |
| 11 | import cn.iocoder.dashboard.common.pojo.PageResult; | 11 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 12 | import cn.iocoder.dashboard.framework.codegen.config.CodegenProperties; | 12 | import cn.iocoder.dashboard.framework.codegen.config.CodegenProperties; |
| 13 | +import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; | ||
| 14 | +import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; | ||
| 13 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | 15 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; |
| 14 | import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; | 16 | import cn.iocoder.dashboard.framework.mybatis.core.mapper.BaseMapperX; |
| 15 | import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | 17 | import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; |
| 18 | +import cn.iocoder.dashboard.modules.system.enums.dict.SysDictTypeEnum; | ||
| 16 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO; | 19 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO; |
| 17 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; | 20 | import cn.iocoder.dashboard.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; |
| 18 | import cn.iocoder.dashboard.util.collection.CollectionUtils; | 21 | import cn.iocoder.dashboard.util.collection.CollectionUtils; |
| @@ -59,6 +62,10 @@ public class ToolCodegenEngine { | @@ -59,6 +62,10 @@ public class ToolCodegenEngine { | ||
| 59 | javaFilePath("controller/${table.businessName}/vo/${table.className}RespVO")) | 62 | javaFilePath("controller/${table.businessName}/vo/${table.className}RespVO")) |
| 60 | .put(javaTemplatePath("controller/vo/updateReqVO"), | 63 | .put(javaTemplatePath("controller/vo/updateReqVO"), |
| 61 | javaFilePath("controller/${table.businessName}/vo/${table.className}UpdateReqVO")) | 64 | javaFilePath("controller/${table.businessName}/vo/${table.className}UpdateReqVO")) |
| 65 | + .put(javaTemplatePath("controller/vo/exportReqVO"), | ||
| 66 | + javaFilePath("controller/${table.businessName}/vo/${table.className}ExportReqVO")) | ||
| 67 | + .put(javaTemplatePath("controller/vo/excelVO"), | ||
| 68 | + javaFilePath("controller/${table.businessName}/vo/${table.className}ExcelVO")) | ||
| 62 | .put(javaTemplatePath("convert/convert"), | 69 | .put(javaTemplatePath("convert/convert"), |
| 63 | javaFilePath("convert/${table.businessName}/${table.className}Convert")) | 70 | javaFilePath("convert/${table.businessName}/${table.className}Convert")) |
| 64 | .put(javaTemplatePath("dal/do"), | 71 | .put(javaTemplatePath("dal/do"), |
| @@ -106,15 +113,19 @@ public class ToolCodegenEngine { | @@ -106,15 +113,19 @@ public class ToolCodegenEngine { | ||
| 106 | // 全局 Java Bean | 113 | // 全局 Java Bean |
| 107 | globalBindingMap.put("CommonResultClassName", CommonResult.class.getName()); | 114 | globalBindingMap.put("CommonResultClassName", CommonResult.class.getName()); |
| 108 | globalBindingMap.put("PageResultClassName", PageResult.class.getName()); | 115 | globalBindingMap.put("PageResultClassName", PageResult.class.getName()); |
| 109 | - globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName()); | ||
| 110 | - globalBindingMap.put("ServiceExceptionUtilClassName", ServiceExceptionUtil.class.getName()); | ||
| 111 | // VO 类,独有字段 | 116 | // VO 类,独有字段 |
| 112 | globalBindingMap.put("PageParamClassName", PageParam.class.getName()); | 117 | globalBindingMap.put("PageParamClassName", PageParam.class.getName()); |
| 118 | + globalBindingMap.put("DictFormatClassName", DictFormat.class.getName()); | ||
| 119 | + globalBindingMap.put("SysDictTypeEnumClassName", SysDictTypeEnum.class.getName()); | ||
| 113 | // DO 类,独有字段 | 120 | // DO 类,独有字段 |
| 114 | globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); | 121 | globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); |
| 115 | globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); | 122 | globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); |
| 116 | globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName()); | 123 | globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName()); |
| 117 | globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName()); | 124 | globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName()); |
| 125 | + // Util 了诶 | ||
| 126 | + globalBindingMap.put("ServiceExceptionUtilClassName", ServiceExceptionUtil.class.getName()); | ||
| 127 | + globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName()); | ||
| 128 | + globalBindingMap.put("ExcelUtilsClassName", ExcelUtils.class.getName()); | ||
| 118 | } | 129 | } |
| 119 | 130 | ||
| 120 | public Map<String, String> execute(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) { | 131 | public Map<String, String> execute(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) { |
src/main/java/cn/iocoder/dashboard/modules/tool/service/package-info.java deleted
| 1 | -package cn.iocoder.dashboard.modules.tool.service; |
src/main/java/cn/iocoder/dashboard/modules/tool/service/test/ToolTestDemoService.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.service.test; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; | ||
| 5 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; | ||
| 6 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; | ||
| 7 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; | ||
| 8 | +import cn.iocoder.dashboard.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||
| 9 | + | ||
| 10 | +import javax.validation.Valid; | ||
| 11 | +import java.util.Collection; | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 字典类型 Service 接口 | ||
| 16 | + * | ||
| 17 | + * @author 芋艿 | ||
| 18 | + */ | ||
| 19 | +public interface ToolTestDemoService { | ||
| 20 | + | ||
| 21 | + /** | ||
| 22 | + * 创建字典类型 | ||
| 23 | + * | ||
| 24 | + * @param createReqVO 创建信息 | ||
| 25 | + * @return 编号 | ||
| 26 | + */ | ||
| 27 | + Long createTestDemo(@Valid ToolTestDemoCreateReqVO createReqVO); | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * 更新字典类型 | ||
| 31 | + * | ||
| 32 | + * @param updateReqVO 更新信息 | ||
| 33 | + */ | ||
| 34 | + void updateTestDemo(@Valid ToolTestDemoUpdateReqVO updateReqVO); | ||
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 删除字典类型 | ||
| 38 | + * | ||
| 39 | + * @param id 编号 | ||
| 40 | + */ | ||
| 41 | + void deleteTestDemo(Long id); | ||
| 42 | + | ||
| 43 | + /** | ||
| 44 | + * 获得字典类型 | ||
| 45 | + * | ||
| 46 | + * @param id 编号 | ||
| 47 | + * @return 字典类型 | ||
| 48 | + */ | ||
| 49 | + ToolTestDemoDO getTestDemo(Long id); | ||
| 50 | + | ||
| 51 | + /** | ||
| 52 | + * 获得字典类型列表 | ||
| 53 | + * | ||
| 54 | + * @param ids 编号 | ||
| 55 | + * @return 字典类型列表 | ||
| 56 | + */ | ||
| 57 | + List<ToolTestDemoDO> getTestDemoList(Collection<Long> ids); | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 获得字典类型分页 | ||
| 61 | + * | ||
| 62 | + * @param pageReqVO 分页查询 | ||
| 63 | + * @return 字典类型分页 | ||
| 64 | + */ | ||
| 65 | + PageResult<ToolTestDemoDO> getTestDemoPage(ToolTestDemoPageReqVO pageReqVO); | ||
| 66 | + | ||
| 67 | + /** | ||
| 68 | + * 获得字典类型列表, 用于 Excel 导出 | ||
| 69 | + * | ||
| 70 | + * @param exportReqVO 查询条件 | ||
| 71 | + * @return 字典类型分页 | ||
| 72 | + */ | ||
| 73 | + List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO); | ||
| 74 | + | ||
| 75 | +} |
src/main/java/cn/iocoder/dashboard/modules/tool/service/test/impl/ToolTestDemoServiceImpl.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.tool.service.test.impl; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | ||
| 4 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; | ||
| 6 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; | ||
| 7 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; | ||
| 8 | +import cn.iocoder.dashboard.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; | ||
| 9 | +import cn.iocoder.dashboard.modules.tool.convert.test.ToolTestDemoConvert; | ||
| 10 | +import cn.iocoder.dashboard.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||
| 11 | +import cn.iocoder.dashboard.modules.tool.dal.mysql.test.ToolTestDemoMapper; | ||
| 12 | +import cn.iocoder.dashboard.modules.tool.service.test.ToolTestDemoService; | ||
| 13 | +import org.springframework.stereotype.Service; | ||
| 14 | +import org.springframework.validation.annotation.Validated; | ||
| 15 | + | ||
| 16 | +import javax.annotation.Resource; | ||
| 17 | +import java.util.Collection; | ||
| 18 | +import java.util.List; | ||
| 19 | + | ||
| 20 | +import static cn.iocoder.dashboard.modules.tool.enums.ToolErrorCodeConstants.TEST_DEMO_NOT_EXISTS; | ||
| 21 | + | ||
| 22 | +/** | ||
| 23 | + * 字典类型 Service 实现类 | ||
| 24 | + * | ||
| 25 | + * @author 芋艿 | ||
| 26 | + */ | ||
| 27 | +@Service | ||
| 28 | +@Validated | ||
| 29 | +public class ToolTestDemoServiceImpl implements ToolTestDemoService { | ||
| 30 | + | ||
| 31 | + @Resource | ||
| 32 | + private ToolTestDemoMapper testDemoMapper; | ||
| 33 | + | ||
| 34 | + @Override | ||
| 35 | + public Long createTestDemo(ToolTestDemoCreateReqVO createReqVO) { | ||
| 36 | + // 插入 | ||
| 37 | + ToolTestDemoDO testDemo = ToolTestDemoConvert.INSTANCE.convert(createReqVO); | ||
| 38 | + testDemoMapper.insert(testDemo); | ||
| 39 | + // 返回 | ||
| 40 | + return testDemo.getId(); | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | + @Override | ||
| 44 | + public void updateTestDemo(ToolTestDemoUpdateReqVO updateReqVO) { | ||
| 45 | + // 校验存在 | ||
| 46 | + this.validateTestDemoExists(updateReqVO.getId()); | ||
| 47 | + // 更新 | ||
| 48 | + ToolTestDemoDO updateObj = ToolTestDemoConvert.INSTANCE.convert(updateReqVO); | ||
| 49 | + testDemoMapper.updateById(updateObj); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + @Override | ||
| 53 | + public void deleteTestDemo(Long id) { | ||
| 54 | + // 校验存在 | ||
| 55 | + this.validateTestDemoExists(id); | ||
| 56 | + // 更新 | ||
| 57 | + testDemoMapper.deleteById(id); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + private void validateTestDemoExists(Long id) { | ||
| 61 | + if (testDemoMapper.selectById(id) == null) { | ||
| 62 | + throw ServiceExceptionUtil.exception(TEST_DEMO_NOT_EXISTS); | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + @Override | ||
| 67 | + public ToolTestDemoDO getTestDemo(Long id) { | ||
| 68 | + return testDemoMapper.selectById(id); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + @Override | ||
| 72 | + public List<ToolTestDemoDO> getTestDemoList(Collection<Long> ids) { | ||
| 73 | + return testDemoMapper.selectBatchIds(ids); | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + @Override | ||
| 77 | + public PageResult<ToolTestDemoDO> getTestDemoPage(ToolTestDemoPageReqVO pageReqVO) { | ||
| 78 | + return testDemoMapper.selectPage(pageReqVO); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + @Override | ||
| 82 | + public List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO) { | ||
| 83 | + return testDemoMapper.selectList(exportReqVO); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | +} |
src/main/resources/codegen/java/controller/controller.vm
| @@ -8,12 +8,16 @@ import io.swagger.annotations.*; | @@ -8,12 +8,16 @@ import io.swagger.annotations.*; | ||
| 8 | 8 | ||
| 9 | import javax.validation.constraints.*; | 9 | import javax.validation.constraints.*; |
| 10 | import javax.validation.*; | 10 | import javax.validation.*; |
| 11 | +import javax.servlet.http.*; | ||
| 11 | import java.util.*; | 12 | import java.util.*; |
| 13 | +import java.io.IOException; | ||
| 12 | 14 | ||
| 13 | import ${PageResultClassName}; | 15 | import ${PageResultClassName}; |
| 14 | import ${CommonResultClassName}; | 16 | import ${CommonResultClassName}; |
| 15 | import static ${CommonResultClassName}.success; | 17 | import static ${CommonResultClassName}.success; |
| 16 | 18 | ||
| 19 | +import ${ExcelUtilsClassName}; | ||
| 20 | + | ||
| 17 | import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; | 21 | import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; |
| 18 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; | 22 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; |
| 19 | import ${basePackage}.${table.moduleName}.convert.${table.businessName}.${table.className}Convert; | 23 | import ${basePackage}.${table.moduleName}.convert.${table.businessName}.${table.className}Convert; |
| @@ -73,6 +77,14 @@ public class ${table.className}Controller { | @@ -73,6 +77,14 @@ public class ${table.className}Controller { | ||
| 73 | return success(${table.className}Convert.INSTANCE.convertPage(pageResult)); | 77 | return success(${table.className}Convert.INSTANCE.convertPage(pageResult)); |
| 74 | } | 78 | } |
| 75 | 79 | ||
| 76 | - | 80 | + @GetMapping("/export-excel") |
| 81 | + @ApiOperation("导出${table.classComment} Excel") | ||
| 82 | + public void export${simpleClassName}Excel(@Valid ${table.className}ExportReqVO exportReqVO, | ||
| 83 | + HttpServletResponse response) throws IOException { | ||
| 84 | + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(exportReqVO); | ||
| 85 | + // 导出 Excel | ||
| 86 | + List<${table.className}ExcelVO> datas = ${table.className}Convert.INSTANCE.convertList02(list); | ||
| 87 | + ExcelUtils.write(response, "${table.classComment}.xls", "数据", ${table.className}ExcelVO.class, datas); | ||
| 88 | + } | ||
| 77 | 89 | ||
| 78 | } | 90 | } |
src/main/resources/codegen/java/controller/vo/excelRespVO.vm deleted
src/main/resources/codegen/java/controller/vo/excelVO.vm
0 → 100644
| 1 | +package ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo; | ||
| 2 | + | ||
| 3 | +import lombok.*; | ||
| 4 | +import java.util.*; | ||
| 5 | +import io.swagger.annotations.*; | ||
| 6 | + | ||
| 7 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
| 8 | +#foreach ($column in $columns) | ||
| 9 | +#if ("$!column.dictType" != "")## 有设置数据字典 | ||
| 10 | +import ${DictFormatClassName}; | ||
| 11 | + | ||
| 12 | +import static ${SysDictTypeEnumClassName}.*; | ||
| 13 | +#break | ||
| 14 | +#end | ||
| 15 | +#end | ||
| 16 | + | ||
| 17 | +/** | ||
| 18 | + * ${table.classComment} Excel VO | ||
| 19 | + * | ||
| 20 | + * @author ${table.author} | ||
| 21 | + */ | ||
| 22 | +@Data | ||
| 23 | +public class ${table.className}ExcelVO { | ||
| 24 | + | ||
| 25 | +#foreach ($column in $columns) | ||
| 26 | + #if (${column.listOperationResult})##返回字段 | ||
| 27 | + @ExcelProperty("${column.columnComment}") | ||
| 28 | + #if ("$!column.dictType" != "")##处理枚举值 | ||
| 29 | + @DictFormat(${column.dictType.toUpperCase()}) | ||
| 30 | + #end | ||
| 31 | + private ${column.javaType} ${column.javaField}; | ||
| 32 | + | ||
| 33 | + #end | ||
| 34 | +#end | ||
| 35 | +} |
src/main/resources/codegen/java/controller/vo/excelReqVO.vm renamed to src/main/resources/codegen/java/controller/vo/exportReqVO.vm
| @@ -6,37 +6,37 @@ import io.swagger.annotations.*; | @@ -6,37 +6,37 @@ import io.swagger.annotations.*; | ||
| 6 | import ${PageParamClassName}; | 6 | import ${PageParamClassName}; |
| 7 | ## 处理 Date 字段的引入 | 7 | ## 处理 Date 字段的引入 |
| 8 | #foreach ($column in $columns) | 8 | #foreach ($column in $columns) |
| 9 | - #if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 | ||
| 10 | - import org.springframework.format.annotation.DateTimeFormat; | 9 | +#if (${column.listOperation} && ${column.javaType} == "Date")## 时间类型 |
| 10 | +import org.springframework.format.annotation.DateTimeFormat; | ||
| 11 | 11 | ||
| 12 | - import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 13 | - #break | ||
| 14 | - #end | 12 | +import static ${DateUtilsClassName}.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | +#break | ||
| 14 | +#end | ||
| 15 | #end | 15 | #end |
| 16 | ## 字段模板 | 16 | ## 字段模板 |
| 17 | #macro(columnTpl $prefix $prefixStr) | 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; | 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; | ||
| 23 | #end | 23 | #end |
| 24 | 24 | ||
| 25 | @ApiModel(value = "${table.classComment} Excel 导出 Request VO", description = "参数和 ${table.className}PageReqVO 是一致的") | 25 | @ApiModel(value = "${table.classComment} Excel 导出 Request VO", description = "参数和 ${table.className}PageReqVO 是一致的") |
| 26 | @Data | 26 | @Data |
| 27 | -public class ${table.className}ExcelReqVO { | 27 | +public class ${table.className}ExportReqVO { |
| 28 | 28 | ||
| 29 | #foreach ($column in $columns) | 29 | #foreach ($column in $columns) |
| 30 | - #set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 | ||
| 31 | - #if (${column.listOperation})##查询操作 | ||
| 32 | - #if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 | ||
| 33 | - #columnTpl('begin', '开始') | 30 | +#set ($JavaField = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})##首字母大写 |
| 31 | +#if (${column.listOperation})##查询操作 | ||
| 32 | +#if (${column.listOperationCondition} == "BETWEEN")## 情况一,Between 的时候 | ||
| 33 | + #columnTpl('begin', '开始') | ||
| 34 | 34 | ||
| 35 | - #columnTpl('end', '结束') | ||
| 36 | - #else##情况二,非 Between 的时间 | ||
| 37 | - #columnTpl('', '') | ||
| 38 | - #end | 35 | + #columnTpl('end', '结束') |
| 36 | +#else##情况二,非 Between 的时间 | ||
| 37 | + #columnTpl('', '') | ||
| 38 | +#end | ||
| 39 | 39 | ||
| 40 | - #end | 40 | +#end |
| 41 | #end | 41 | #end |
| 42 | } | 42 | } |
src/main/resources/codegen/java/convert/convert.vm
| @@ -10,10 +10,10 @@ import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; | @@ -10,10 +10,10 @@ import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; | ||
| 10 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; | 10 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; |
| 11 | 11 | ||
| 12 | /** | 12 | /** |
| 13 | -* ${table.classComment} Convert | ||
| 14 | -* | ||
| 15 | -* @author ${table.author} | ||
| 16 | -*/ | 13 | + * ${table.classComment} Convert |
| 14 | + * | ||
| 15 | + * @author ${table.author} | ||
| 16 | + */ | ||
| 17 | @Mapper | 17 | @Mapper |
| 18 | public interface ${table.className}Convert { | 18 | public interface ${table.className}Convert { |
| 19 | 19 | ||
| @@ -29,4 +29,6 @@ public interface ${table.className}Convert { | @@ -29,4 +29,6 @@ public interface ${table.className}Convert { | ||
| 29 | 29 | ||
| 30 | PageResult<${table.className}RespVO> convertPage(PageResult<${table.className}DO> page); | 30 | PageResult<${table.className}RespVO> convertPage(PageResult<${table.className}DO> page); |
| 31 | 31 | ||
| 32 | + List<${table.className}ExcelVO> convertList02(List<${table.className}DO> list); | ||
| 33 | + | ||
| 32 | } | 34 | } |
src/main/resources/codegen/java/dal/do.vm
| @@ -6,10 +6,10 @@ import com.baomidou.mybatisplus.annotation.*; | @@ -6,10 +6,10 @@ import com.baomidou.mybatisplus.annotation.*; | ||
| 6 | import ${BaseDOClassName}; | 6 | import ${BaseDOClassName}; |
| 7 | 7 | ||
| 8 | /** | 8 | /** |
| 9 | -* ${table.classComment} DO | ||
| 10 | -* | ||
| 11 | -* @author ${table.author} | ||
| 12 | -*/ | 9 | + * ${table.classComment} DO |
| 10 | + * | ||
| 11 | + * @author ${table.author} | ||
| 12 | + */ | ||
| 13 | @TableName("${table.tableName}") | 13 | @TableName("${table.tableName}") |
| 14 | @Data | 14 | @Data |
| 15 | @EqualsAndHashCode(callSuper = true) | 15 | @EqualsAndHashCode(callSuper = true) |
src/main/resources/codegen/java/dal/mapper.vm
| 1 | package ${basePackage}.${table.moduleName}.dal.mysql.${table.businessName}; | 1 | package ${basePackage}.${table.moduleName}.dal.mysql.${table.businessName}; |
| 2 | 2 | ||
| 3 | +import java.util.*; | ||
| 4 | + | ||
| 3 | import ${PageResultClassName}; | 5 | import ${PageResultClassName}; |
| 4 | import ${QueryWrapperClassName}; | 6 | import ${QueryWrapperClassName}; |
| 5 | import ${BaseMapperClassName}; | 7 | import ${BaseMapperClassName}; |
| 6 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; | 8 | import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; |
| 7 | import org.apache.ibatis.annotations.Mapper; | 9 | import org.apache.ibatis.annotations.Mapper; |
| 8 | -import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.${table.className}PageReqVO; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | -* ${table.classComment} Mapper | ||
| 12 | -* | ||
| 13 | -* @author ${table.author} | ||
| 14 | -*/ | ||
| 15 | -@Mapper | ||
| 16 | -public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { | 10 | +import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; |
| 17 | 11 | ||
| 18 | - default PageResult<${table.className}DO> selectPage(${table.className}PageReqVO reqVO) { | ||
| 19 | - return selectPage(reqVO, new QueryWrapperX<${table.className}DO>() | 12 | +## 字段模板 |
| 13 | +#macro(listCondition) | ||
| 20 | #foreach ($column in $columns) | 14 | #foreach ($column in $columns) |
| 21 | #if (${column.listOperation}) | 15 | #if (${column.listOperation}) |
| 22 | #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)})##首字母大写 |
| 23 | #if (${column.listOperationCondition} == "=")##情况一,= 的时候 | 17 | #if (${column.listOperationCondition} == "=")##情况一,= 的时候 |
| 24 | - .eqIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 18 | + .eqIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 25 | #end | 19 | #end |
| 26 | #if (${column.listOperationCondition} == "!=")##情况二,!= 的时候 | 20 | #if (${column.listOperationCondition} == "!=")##情况二,!= 的时候 |
| 27 | - .neIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 21 | + .neIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 28 | #end | 22 | #end |
| 29 | #if (${column.listOperationCondition} == ">")##情况三,> 的时候 | 23 | #if (${column.listOperationCondition} == ">")##情况三,> 的时候 |
| 30 | - .gtIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 24 | + .gtIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 31 | #end | 25 | #end |
| 32 | #if (${column.listOperationCondition} == ">=")##情况四,>= 的时候 | 26 | #if (${column.listOperationCondition} == ">=")##情况四,>= 的时候 |
| 33 | - .geIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 27 | + .geIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 34 | #end | 28 | #end |
| 35 | #if (${column.listOperationCondition} == "<")##情况五,< 的时候 | 29 | #if (${column.listOperationCondition} == "<")##情况五,< 的时候 |
| 36 | - .gtIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 30 | + .gtIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 37 | #end | 31 | #end |
| 38 | #if (${column.listOperationCondition} == "LIKE")##情况七,Like 的时候 | 32 | #if (${column.listOperationCondition} == "LIKE")##情况七,Like 的时候 |
| 39 | - .likeIfPresent("${column.columnName}", reqVO.get${JavaField}()) | 33 | + .likeIfPresent("${column.columnName}", reqVO.get${JavaField}()) |
| 40 | #end | 34 | #end |
| 41 | #if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候 | 35 | #if (${column.listOperationCondition} == "BETWEEN")##情况八,Between 的时候 |
| 42 | - .betweenIfPresent("${column.columnName}", reqVO.getBegin${JavaField}(), reqVO.getEnd${JavaField}()) | 36 | + .betweenIfPresent("${column.columnName}", reqVO.getBegin${JavaField}(), reqVO.getEnd${JavaField}()) |
| 43 | #end | 37 | #end |
| 44 | #end | 38 | #end |
| 45 | #end | 39 | #end |
| 40 | +#end | ||
| 41 | +/** | ||
| 42 | + * ${table.classComment} Mapper | ||
| 43 | + * | ||
| 44 | + * @author ${table.author} | ||
| 45 | + */ | ||
| 46 | +@Mapper | ||
| 47 | +public interface ${table.className}Mapper extends BaseMapperX<${table.className}DO> { | ||
| 48 | + | ||
| 49 | + default PageResult<${table.className}DO> selectPage(${table.className}PageReqVO reqVO) { | ||
| 50 | + return selectPage(reqVO, new QueryWrapperX<${table.className}DO>() | ||
| 51 | + #listCondition() | ||
| 52 | + ); | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + default List<${table.className}DO> selectList(${table.className}ExportReqVO reqVO) { | ||
| 56 | + return selectList(new QueryWrapperX<${table.className}DO>() | ||
| 57 | + #listCondition() | ||
| 46 | ); | 58 | ); |
| 47 | } | 59 | } |
| 48 | 60 |
src/main/resources/codegen/java/enums/errorcode.vm
| 1 | // ========== ${table.classComment} TODO 补充编号 ========== | 1 | // ========== ${table.classComment} TODO 补充编号 ========== |
| 2 | -ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${table.classComment}不存在}"); | 2 | +ErrorCode ${simpleClassName_underlineCase.toUpperCase()}_NOT_EXISTS = new ErrorCode(TODO 补充编号, "${table.classComment}不存在"); |
src/main/resources/codegen/java/service/service.vm
| @@ -7,10 +7,10 @@ import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.$ | @@ -7,10 +7,10 @@ import ${basePackage}.${table.moduleName}.dal.dataobject.${table.businessName}.$ | ||
| 7 | import ${PageResultClassName}; | 7 | import ${PageResultClassName}; |
| 8 | 8 | ||
| 9 | /** | 9 | /** |
| 10 | -* ${table.classComment} Service 接口 | ||
| 11 | -* | ||
| 12 | -* @author ${table.author} | ||
| 13 | -*/ | 10 | + * ${table.classComment} Service 接口 |
| 11 | + * | ||
| 12 | + * @author ${table.author} | ||
| 13 | + */ | ||
| 14 | public interface ${table.className}Service { | 14 | public interface ${table.className}Service { |
| 15 | 15 | ||
| 16 | /** | 16 | /** |
| @@ -59,4 +59,12 @@ public interface ${table.className}Service { | @@ -59,4 +59,12 @@ public interface ${table.className}Service { | ||
| 59 | */ | 59 | */ |
| 60 | PageResult<${table.className}DO> get${simpleClassName}Page(${table.className}PageReqVO pageReqVO); | 60 | PageResult<${table.className}DO> get${simpleClassName}Page(${table.className}PageReqVO pageReqVO); |
| 61 | 61 | ||
| 62 | + /** | ||
| 63 | + * 获得${table.classComment}列表, 用于 Excel 导出 | ||
| 64 | + * | ||
| 65 | + * @param exportReqVO 查询条件 | ||
| 66 | + * @return ${table.classComment}分页 | ||
| 67 | + */ | ||
| 68 | + List<${table.className}DO> get${simpleClassName}List(${table.className}ExportReqVO exportReqVO); | ||
| 69 | + | ||
| 62 | } | 70 | } |
src/main/resources/codegen/java/service/serviceImpl.vm
| @@ -19,10 +19,10 @@ import ${ServiceExceptionUtilClassName}; | @@ -19,10 +19,10 @@ import ${ServiceExceptionUtilClassName}; | ||
| 19 | import static ${basePackage}.${table.moduleName}.enums.${simpleModuleName_upperFirst}ErrorCodeConstants.*; | 19 | import static ${basePackage}.${table.moduleName}.enums.${simpleModuleName_upperFirst}ErrorCodeConstants.*; |
| 20 | 20 | ||
| 21 | /** | 21 | /** |
| 22 | -* ${table.classComment} Service 实现类 | ||
| 23 | -* | ||
| 24 | -* @author ${table.author} | ||
| 25 | -*/ | 22 | + * ${table.classComment} Service 实现类 |
| 23 | + * | ||
| 24 | + * @author ${table.author} | ||
| 25 | + */ | ||
| 26 | @Service | 26 | @Service |
| 27 | @Validated | 27 | @Validated |
| 28 | public class ${table.className}ServiceImpl implements ${table.className}Service { | 28 | public class ${table.className}ServiceImpl implements ${table.className}Service { |
| @@ -77,4 +77,9 @@ public class ${table.className}ServiceImpl implements ${table.className}Service | @@ -77,4 +77,9 @@ public class ${table.className}ServiceImpl implements ${table.className}Service | ||
| 77 | return ${classNameVar}Mapper.selectPage(pageReqVO); | 77 | return ${classNameVar}Mapper.selectPage(pageReqVO); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | + @Override | ||
| 81 | + public List<${table.className}DO> get${simpleClassName}List(${table.className}ExportReqVO exportReqVO) { | ||
| 82 | + return ${classNameVar}Mapper.selectList(exportReqVO); | ||
| 83 | + } | ||
| 84 | + | ||
| 80 | } | 85 | } |