Commit 45d203550fbd34893669372313a46358cedba09a

Authored by YunaiV
1 parent 59be930f

添加 controller.vm 的模板

src/main/java/cn/iocoder/dashboard/modules/system/controller/test/SysTestDemoController.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.test;
  2 +
  3 +import cn.iocoder.dashboard.common.pojo.CommonResult;
  4 +import cn.iocoder.dashboard.common.pojo.PageResult;
  5 +import cn.iocoder.dashboard.modules.system.controller.test.vo.SysTestDemoCreateReqVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.test.vo.SysTestDemoPageReqVO;
  7 +import cn.iocoder.dashboard.modules.system.controller.test.vo.SysTestDemoRespVO;
  8 +import cn.iocoder.dashboard.modules.system.controller.test.vo.SysTestDemoUpdateReqVO;
  9 +import cn.iocoder.dashboard.modules.system.convert.test.SysTestDemoConvert;
  10 +import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.test.SysTestDemoDO;
  11 +import cn.iocoder.dashboard.modules.system.service.test.SysTestDemoService;
  12 +import io.swagger.annotations.Api;
  13 +import io.swagger.annotations.ApiImplicitParam;
  14 +import io.swagger.annotations.ApiOperation;
  15 +import org.springframework.validation.annotation.Validated;
  16 +import org.springframework.web.bind.annotation.*;
  17 +
  18 +import javax.annotation.Resource;
  19 +import javax.validation.Valid;
  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("/system/test-demo")
  28 +@Validated
  29 +public class SysTestDemoController {
  30 +
  31 + @Resource
  32 + private SysTestDemoService testDemoService;
  33 +
  34 + @ApiOperation("创建字典类型")
  35 + @PostMapping("/create")
  36 + public CommonResult<Long> createTestDemo(@Valid SysTestDemoCreateReqVO createReqVO) {
  37 + return success(testDemoService.createTestDemo(createReqVO));
  38 + }
  39 +
  40 + @ApiOperation("更新字典类型")
  41 + @PutMapping("/update")
  42 + public CommonResult<Boolean> updateTestDemo(@Valid SysTestDemoUpdateReqVO 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)
  58 + public CommonResult<SysTestDemoRespVO> getTestDemo(@RequestParam("id") Long id) {
  59 + SysTestDemoDO testDemo = testDemoService.getTestDemo(id);
  60 + return success(SysTestDemoConvert.INSTANCE.convert(testDemo));
  61 + }
  62 +
  63 + @GetMapping("/list")
  64 + @ApiOperation("获得字典类型列表")
  65 + @ApiImplicitParam(name = "ids", value = "编号列表", required = true)
  66 + public CommonResult<List<SysTestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) {
  67 + List<SysTestDemoDO> list = testDemoService.getTestDemoList(ids);
  68 + return success(SysTestDemoConvert.INSTANCE.convertList(list));
  69 + }
  70 +
  71 + @ApiOperation("获得字典类型分页")
  72 + @GetMapping("/page")
  73 + public CommonResult<PageResult<SysTestDemoRespVO>> getTestDemoPage(@Valid SysTestDemoPageReqVO pageVO) {
  74 + PageResult<SysTestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO);
  75 + return success(SysTestDemoConvert.INSTANCE.convertPage(pageResult));
  76 + }
  77 +
  78 +}
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngine.java
@@ -4,6 +4,7 @@ import cn.hutool.extra.template.TemplateConfig; @@ -4,6 +4,7 @@ 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.exception.util.ServiceExceptionUtil; 6 import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
  7 +import cn.iocoder.dashboard.common.pojo.CommonResult;
7 import cn.iocoder.dashboard.common.pojo.PageParam; 8 import cn.iocoder.dashboard.common.pojo.PageParam;
8 import cn.iocoder.dashboard.common.pojo.PageResult; 9 import cn.iocoder.dashboard.common.pojo.PageResult;
9 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; 10 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
@@ -58,6 +59,7 @@ public class ToolCodegenEngine { @@ -58,6 +59,7 @@ public class ToolCodegenEngine {
58 // 全局配置 59 // 全局配置
59 globalBindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包, 抽成参数 60 globalBindingMap.put("basePackage", "cn.iocoder.dashboard.modules"); // TODO 基础包, 抽成参数
60 // 全局 Java Bean 61 // 全局 Java Bean
  62 + globalBindingMap.put("CommonResultClassName", CommonResult.class.getName());
61 globalBindingMap.put("PageResultClassName", PageResult.class.getName()); 63 globalBindingMap.put("PageResultClassName", PageResult.class.getName());
62 globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName()); 64 globalBindingMap.put("DateUtilsClassName", DateUtils.class.getName());
63 globalBindingMap.put("ServiceExceptionUtilClassName", ServiceExceptionUtil.class.getName()); 65 globalBindingMap.put("ServiceExceptionUtilClassName", ServiceExceptionUtil.class.getName());
@@ -76,6 +78,7 @@ public class ToolCodegenEngine { @@ -76,6 +78,7 @@ public class ToolCodegenEngine {
76 bindingMap.put("table", table); 78 bindingMap.put("table", table);
77 bindingMap.put("columns", columns); 79 bindingMap.put("columns", columns);
78 bindingMap.put("primaryColumn", CollectionUtils.findFirst(columns, ToolCodegenColumnDO::getPrimaryKey)); // 主键字段 80 bindingMap.put("primaryColumn", CollectionUtils.findFirst(columns, ToolCodegenColumnDO::getPrimaryKey)); // 主键字段
  81 + // moduleName 相关
79 String simpleModuleName = codegenBuilder.getSimpleModuleName(table.getModuleName()); 82 String simpleModuleName = codegenBuilder.getSimpleModuleName(table.getModuleName());
80 bindingMap.put("simpleModuleName", simpleModuleName); // 将 system 转成 sys 83 bindingMap.put("simpleModuleName", simpleModuleName); // 将 system 转成 sys
81 // className 相关 84 // className 相关
@@ -84,6 +87,7 @@ public class ToolCodegenEngine { @@ -84,6 +87,7 @@ public class ToolCodegenEngine {
84 bindingMap.put("simpleClassName", simpleClassName); 87 bindingMap.put("simpleClassName", simpleClassName);
85 bindingMap.put("simpleClassName_underlineCase", toUnderlineCase(simpleClassName)); // 将 DictType 转换成 dict_type 88 bindingMap.put("simpleClassName_underlineCase", toUnderlineCase(simpleClassName)); // 将 DictType 转换成 dict_type
86 bindingMap.put("classNameVar", lowerFirst(simpleClassName)); // 将 DictType 转换成 dictType,用于变量 89 bindingMap.put("classNameVar", lowerFirst(simpleClassName)); // 将 DictType 转换成 dictType,用于变量
  90 + bindingMap.put("simpleClassName_strikeCase", toSymbolCase(simpleClassName, '-')); // 将 DictType 转换成 dict-type
87 // 执行生成 91 // 执行生成
88 // String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap); 92 // String result = templateEngine.getTemplate("codegen/dal/do.vm").render(bindingMap);
89 // String result = templateEngine.getTemplate("codegen/dal/mapper.vm").render(bindingMap); 93 // String result = templateEngine.getTemplate("codegen/dal/mapper.vm").render(bindingMap);
@@ -95,7 +99,8 @@ public class ToolCodegenEngine { @@ -95,7 +99,8 @@ public class ToolCodegenEngine {
95 // String result = templateEngine.getTemplate("codegen/convert/convert.vm").render(bindingMap); 99 // String result = templateEngine.getTemplate("codegen/convert/convert.vm").render(bindingMap);
96 // String result = templateEngine.getTemplate("codegen/enums/errorcode.vm").render(bindingMap); 100 // String result = templateEngine.getTemplate("codegen/enums/errorcode.vm").render(bindingMap);
97 // String result = templateEngine.getTemplate("codegen/service/service.vm").render(bindingMap); 101 // String result = templateEngine.getTemplate("codegen/service/service.vm").render(bindingMap);
98 - String result = templateEngine.getTemplate("codegen/service/serviceImpl.vm").render(bindingMap); 102 +// String result = templateEngine.getTemplate("codegen/service/serviceImpl.vm").render(bindingMap);
  103 + String result = templateEngine.getTemplate("codegen/controller/controller.vm").render(bindingMap);
99 System.out.println(result); 104 System.out.println(result);
100 } 105 }
101 106
src/main/resources/codegen/controller/controller.vm
  1 +package ${basePackage}.${table.moduleName}.controller.${table.businessName};
  2 +
1 import org.springframework.web.bind.annotation.*; 3 import org.springframework.web.bind.annotation.*;
2 -import org.springframework.beans.factory.annotation.Autowired; 4 +import javax.annotation.Resource;
  5 +import org.springframework.validation.annotation.Validated;
  6 +
3 import io.swagger.annotations.*; 7 import io.swagger.annotations.*;
  8 +
4 import javax.validation.constraints.*; 9 import javax.validation.constraints.*;
5 import javax.validation.*; 10 import javax.validation.*;
6 import java.util.*; 11 import java.util.*;
7 12
8 -import org.springframework.validation.annotation.Validated; 13 +import ${PageResultClassName};
  14 +import ${CommonResultClassName};
  15 +import static ${CommonResultClassName}.success;
  16 +
  17 +import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
  18 +import ${basePackage}.${table.moduleName}.dal.mysql.dataobject.${table.businessName}.${table.className}DO;
  19 +import ${basePackage}.${table.moduleName}.convert.${table.businessName}.${table.className}Convert;
  20 +import ${basePackage}.${table.moduleName}.service.${table.businessName}.${table.className}Service;
9 21
10 -/**  
11 - * ${class.description} Controller  
12 - */ 22 +@Api(tags = "${table.classComment}")
13 @RestController 23 @RestController
14 -@RequestMapping("/${class.classNameLowerUnderscore}")  
15 -@Api(tags = "${class.description}") 24 +##二级的 businessName 暂时不算在 HTTP 路径上,可以根据需要写
  25 +@RequestMapping("/${table.moduleName}/${simpleClassName_strikeCase}")
16 @Validated 26 @Validated
17 -public class ${class.className}Controller { 27 +public class ${table.className}Controller {
18 28
19 - @Autowired  
20 - private ${class.className}Service ${class.classNameVar}Service; 29 + @Resource
  30 + private ${table.className}Service ${classNameVar}Service;
21 31
  32 + @ApiOperation("创建${table.classComment}")
22 @PostMapping("/create") 33 @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)); 34 + public CommonResult<${primaryColumn.javaType}> create${simpleClassName}(@Valid ${table.className}CreateReqVO createReqVO) {
  35 + return success(${classNameVar}Service.create${simpleClassName}(createReqVO));
26 } 36 }
27 37
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); 38 + @ApiOperation("更新${table.classComment}")
  39 + @PutMapping("/update")
  40 + public CommonResult<Boolean> update${simpleClassName}(@Valid ${table.className}UpdateReqVO updateReqVO) {
  41 + ${classNameVar}Service.update${simpleClassName}(updateReqVO);
32 return success(true); 42 return success(true);
33 } 43 }
34 44
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); 45 + @ApiOperation("删除${table.classComment}")
  46 + @DeleteMapping("/delete")
  47 + @ApiImplicitParam(name = "id", value = "编号", required = true)
  48 + public CommonResult<Boolean> delete${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) {
  49 + ${classNameVar}Service.delete${simpleClassName}(id);
40 return success(true); 50 return success(true);
41 } 51 }
42 52
43 @GetMapping("/get") 53 @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)); 54 + @ApiOperation("获得${table.classComment}")
  55 + @ApiImplicitParam(name = "id", value = "编号", required = true)
  56 + public CommonResult<${table.className}RespVO> get${simpleClassName}(@RequestParam("id") ${primaryColumn.javaType} id) {
  57 + ${table.className}DO ${classNameVar} = ${classNameVar}Service.get${simpleClassName}(id);
  58 + return success(${table.className}Convert.INSTANCE.convert(${classNameVar}));
48 } 59 }
49 60
50 @GetMapping("/list") 61 @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)); 62 + @ApiOperation("获得${table.classComment}列表")
  63 + @ApiImplicitParam(name = "ids", value = "编号列表", required = true)
  64 + public CommonResult<List<${table.className}RespVO>> get${simpleClassName}List(@RequestParam("ids") Collection<${primaryColumn.javaType}> ids) {
  65 + List<${table.className}DO> list = ${classNameVar}Service.get${simpleClassName}List(ids);
  66 + return success(${table.className}Convert.INSTANCE.convertList(list));
55 } 67 }
56 68
  69 + @ApiOperation("获得${table.classComment}分页")
57 @GetMapping("/page") 70 @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)); 71 + public CommonResult<PageResult<${table.className}RespVO>> get${simpleClassName}Page(@Valid ${table.className}PageReqVO pageVO) {
  72 + PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Page(pageVO);
  73 + return success(${table.className}Convert.INSTANCE.convertPage(pageResult));
61 } 74 }
62 75
63 } 76 }
src/main/resources/codegen/convert/convert.vm
1 package ${basePackage}.${table.moduleName}.convert.${table.businessName}; 1 package ${basePackage}.${table.moduleName}.convert.${table.businessName};
2 2
  3 +import java.util.*;
  4 +
  5 +import ${PageResultClassName};
  6 +
3 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
4 import org.mapstruct.factory.Mappers; 8 import org.mapstruct.factory.Mappers;
5 import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*; 9 import ${basePackage}.${table.moduleName}.controller.${table.businessName}.vo.*;
@@ -19,4 +23,10 @@ public interface ${table.className}Convert { @@ -19,4 +23,10 @@ public interface ${table.className}Convert {
19 23
20 ${table.className}DO convert(${table.className}UpdateReqVO bean); 24 ${table.className}DO convert(${table.className}UpdateReqVO bean);
21 25
  26 + ${table.className}RespVO convert(${table.className}DO bean);
  27 +
  28 + List<${table.className}RespVO> convertList(List<${table.className}DO> list);
  29 +
  30 + PageResult<${table.className}RespVO> convertPage(PageResult<${table.className}DO> page);
  31 +
22 } 32 }