Commit c4933976530a1b4bd80d081a8c094aa22d4653de

Authored by YunaiV
1 parent a9c8f6c8

🔧 简化 dictType 和 dictData 模块的 VO

Showing 28 changed files with 200 additions and 500 deletions
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java
1 package cn.iocoder.yudao.module.system.api.dict; 1 package cn.iocoder.yudao.module.system.api.dict;
2 2
  3 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
3 import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; 4 import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
4 -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert;  
5 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
6 import cn.iocoder.yudao.module.system.service.dict.DictDataService; 6 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
7 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
@@ -28,13 +28,13 @@ public class DictDataApiImpl implements DictDataApi { @@ -28,13 +28,13 @@ public class DictDataApiImpl implements DictDataApi {
28 @Override 28 @Override
29 public DictDataRespDTO getDictData(String dictType, String value) { 29 public DictDataRespDTO getDictData(String dictType, String value) {
30 DictDataDO dictData = dictDataService.getDictData(dictType, value); 30 DictDataDO dictData = dictDataService.getDictData(dictType, value);
31 - return DictDataConvert.INSTANCE.convert02(dictData); 31 + return BeanUtils.toBean(dictData, DictDataRespDTO.class);
32 } 32 }
33 33
34 @Override 34 @Override
35 public DictDataRespDTO parseDictData(String dictType, String label) { 35 public DictDataRespDTO parseDictData(String dictType, String label) {
36 DictDataDO dictData = dictDataService.parseDictData(dictType, label); 36 DictDataDO dictData = dictDataService.parseDictData(dictType, label);
37 - return DictDataConvert.INSTANCE.convert02(dictData); 37 + return BeanUtils.toBean(dictData, DictDataRespDTO.class);
38 } 38 }
39 39
40 } 40 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict; 1 package cn.iocoder.yudao.module.system.controller.admin.dict;
2 2
3 -import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;  
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 7 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 8 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.*;  
9 -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert; 9 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
  10 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataRespVO;
  11 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
  12 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSimpleRespVO;
  13 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
10 import cn.iocoder.yudao.module.system.service.dict.DictDataService; 14 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
11 -import io.swagger.v3.oas.annotations.tags.Tag;  
12 -import io.swagger.v3.oas.annotations.Parameter;  
13 import io.swagger.v3.oas.annotations.Operation; 15 import io.swagger.v3.oas.annotations.Operation;
  16 +import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.tags.Tag;
14 import org.springframework.security.access.prepost.PreAuthorize; 18 import org.springframework.security.access.prepost.PreAuthorize;
15 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 20 import org.springframework.web.bind.annotation.*;
@@ -36,16 +40,16 @@ public class DictDataController { @@ -36,16 +40,16 @@ public class DictDataController {
36 @PostMapping("/create") 40 @PostMapping("/create")
37 @Operation(summary = "新增字典数据") 41 @Operation(summary = "新增字典数据")
38 @PreAuthorize("@ss.hasPermission('system:dict:create')") 42 @PreAuthorize("@ss.hasPermission('system:dict:create')")
39 - public CommonResult<Long> createDictData(@Valid @RequestBody DictDataCreateReqVO reqVO) {  
40 - Long dictDataId = dictDataService.createDictData(reqVO); 43 + public CommonResult<Long> createDictData(@Valid @RequestBody DictDataSaveReqVO createReqVO) {
  44 + Long dictDataId = dictDataService.createDictData(createReqVO);
41 return success(dictDataId); 45 return success(dictDataId);
42 } 46 }
43 47
44 @PutMapping("/update") 48 @PutMapping("/update")
45 @Operation(summary = "修改字典数据") 49 @Operation(summary = "修改字典数据")
46 @PreAuthorize("@ss.hasPermission('system:dict:update')") 50 @PreAuthorize("@ss.hasPermission('system:dict:update')")
47 - public CommonResult<Boolean> updateDictData(@Valid @RequestBody DictDataUpdateReqVO reqVO) {  
48 - dictDataService.updateDictData(reqVO); 51 + public CommonResult<Boolean> updateDictData(@Valid @RequestBody DictDataSaveReqVO updateReqVO) {
  52 + dictDataService.updateDictData(updateReqVO);
49 return success(true); 53 return success(true);
50 } 54 }
51 55
@@ -63,14 +67,15 @@ public class DictDataController { @@ -63,14 +67,15 @@ public class DictDataController {
63 // 无需添加权限认证,因为前端全局都需要 67 // 无需添加权限认证,因为前端全局都需要
64 public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDataList() { 68 public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDataList() {
65 List<DictDataDO> list = dictDataService.getDictDataList(); 69 List<DictDataDO> list = dictDataService.getDictDataList();
66 - return success(DictDataConvert.INSTANCE.convertList(list)); 70 + return success(BeanUtils.toBean(list, DictDataSimpleRespVO.class));
67 } 71 }
68 72
69 @GetMapping("/page") 73 @GetMapping("/page")
70 @Operation(summary = "/获得字典类型的分页列表") 74 @Operation(summary = "/获得字典类型的分页列表")
71 @PreAuthorize("@ss.hasPermission('system:dict:query')") 75 @PreAuthorize("@ss.hasPermission('system:dict:query')")
72 - public CommonResult<PageResult<DictDataRespVO>> getDictTypePage(@Valid DictDataPageReqVO reqVO) {  
73 - return success(DictDataConvert.INSTANCE.convertPage(dictDataService.getDictDataPage(reqVO))); 76 + public CommonResult<PageResult<DictDataRespVO>> getDictTypePage(@Valid DictDataPageReqVO pageReqVO) {
  77 + PageResult<DictDataDO> pageResult = dictDataService.getDictDataPage(pageReqVO);
  78 + return success(BeanUtils.toBean(pageResult, DictDataRespVO.class));
74 } 79 }
75 80
76 @GetMapping(value = "/get") 81 @GetMapping(value = "/get")
@@ -78,18 +83,20 @@ public class DictDataController { @@ -78,18 +83,20 @@ public class DictDataController {
78 @Parameter(name = "id", description = "编号", required = true, example = "1024") 83 @Parameter(name = "id", description = "编号", required = true, example = "1024")
79 @PreAuthorize("@ss.hasPermission('system:dict:query')") 84 @PreAuthorize("@ss.hasPermission('system:dict:query')")
80 public CommonResult<DictDataRespVO> getDictData(@RequestParam("id") Long id) { 85 public CommonResult<DictDataRespVO> getDictData(@RequestParam("id") Long id) {
81 - return success(DictDataConvert.INSTANCE.convert(dictDataService.getDictData(id))); 86 + DictDataDO dictData = dictDataService.getDictData(id);
  87 + return success(BeanUtils.toBean(dictData, DictDataRespVO.class));
82 } 88 }
83 89
84 @GetMapping("/export") 90 @GetMapping("/export")
85 @Operation(summary = "导出字典数据") 91 @Operation(summary = "导出字典数据")
86 @PreAuthorize("@ss.hasPermission('system:dict:export')") 92 @PreAuthorize("@ss.hasPermission('system:dict:export')")
87 @OperateLog(type = EXPORT) 93 @OperateLog(type = EXPORT)
88 - public void export(HttpServletResponse response, @Valid DictDataExportReqVO reqVO) throws IOException {  
89 - List<DictDataDO> list = dictDataService.getDictDataList(reqVO);  
90 - List<DictDataExcelVO> data = DictDataConvert.INSTANCE.convertList02(list); 94 + public void export(HttpServletResponse response, @Valid DictDataPageReqVO exportReqVO) throws IOException {
  95 + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  96 + List<DictDataDO> list = dictDataService.getDictDataPage(exportReqVO).getList();
91 // 输出 97 // 输出
92 - ExcelUtils.write(response, "字典数据.xls", "数据列表", DictDataExcelVO.class, data); 98 + ExcelUtils.write(response, "字典数据.xls", "数据", DictDataRespVO.class,
  99 + BeanUtils.toBean(list, DictDataRespVO.class));
93 } 100 }
94 101
95 } 102 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictTypeController.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict; 1 package cn.iocoder.yudao.module.system.controller.admin.dict;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 7 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 8 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.*;  
8 -import cn.iocoder.yudao.module.system.convert.dict.DictTypeConvert; 9 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
  10 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeRespVO;
  11 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO;
  12 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSimpleRespVO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 13 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
10 import cn.iocoder.yudao.module.system.service.dict.DictTypeService; 14 import cn.iocoder.yudao.module.system.service.dict.DictTypeService;
11 -import io.swagger.v3.oas.annotations.tags.Tag;  
12 -import io.swagger.v3.oas.annotations.Parameter;  
13 import io.swagger.v3.oas.annotations.Operation; 15 import io.swagger.v3.oas.annotations.Operation;
  16 +import io.swagger.v3.oas.annotations.Parameter;
  17 +import io.swagger.v3.oas.annotations.tags.Tag;
14 import org.springframework.security.access.prepost.PreAuthorize; 18 import org.springframework.security.access.prepost.PreAuthorize;
15 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
16 import org.springframework.web.bind.annotation.*; 20 import org.springframework.web.bind.annotation.*;
@@ -36,16 +40,16 @@ public class DictTypeController { @@ -36,16 +40,16 @@ public class DictTypeController {
36 @PostMapping("/create") 40 @PostMapping("/create")
37 @Operation(summary = "创建字典类型") 41 @Operation(summary = "创建字典类型")
38 @PreAuthorize("@ss.hasPermission('system:dict:create')") 42 @PreAuthorize("@ss.hasPermission('system:dict:create')")
39 - public CommonResult<Long> createDictType(@Valid @RequestBody DictTypeCreateReqVO reqVO) {  
40 - Long dictTypeId = dictTypeService.createDictType(reqVO); 43 + public CommonResult<Long> createDictType(@Valid @RequestBody DictTypeSaveReqVO createReqVO) {
  44 + Long dictTypeId = dictTypeService.createDictType(createReqVO);
41 return success(dictTypeId); 45 return success(dictTypeId);
42 } 46 }
43 47
44 @PutMapping("/update") 48 @PutMapping("/update")
45 @Operation(summary = "修改字典类型") 49 @Operation(summary = "修改字典类型")
46 @PreAuthorize("@ss.hasPermission('system:dict:update')") 50 @PreAuthorize("@ss.hasPermission('system:dict:update')")
47 - public CommonResult<Boolean> updateDictType(@Valid @RequestBody DictTypeUpdateReqVO reqVO) {  
48 - dictTypeService.updateDictType(reqVO); 51 + public CommonResult<Boolean> updateDictType(@Valid @RequestBody DictTypeSaveReqVO updateReqVO) {
  52 + dictTypeService.updateDictType(updateReqVO);
49 return success(true); 53 return success(true);
50 } 54 }
51 55
@@ -58,11 +62,12 @@ public class DictTypeController { @@ -58,11 +62,12 @@ public class DictTypeController {
58 return success(true); 62 return success(true);
59 } 63 }
60 64
61 - @Operation(summary = "/获得字典类型的分页列表")  
62 @GetMapping("/page") 65 @GetMapping("/page")
  66 + @Operation(summary = "获得字典类型的分页列表")
63 @PreAuthorize("@ss.hasPermission('system:dict:query')") 67 @PreAuthorize("@ss.hasPermission('system:dict:query')")
64 - public CommonResult<PageResult<DictTypeRespVO>> pageDictTypes(@Valid DictTypePageReqVO reqVO) {  
65 - return success(DictTypeConvert.INSTANCE.convertPage(dictTypeService.getDictTypePage(reqVO))); 68 + public CommonResult<PageResult<DictTypeRespVO>> pageDictTypes(@Valid DictTypePageReqVO pageReqVO) {
  69 + PageResult<DictTypeDO> pageResult = dictTypeService.getDictTypePage(pageReqVO);
  70 + return success(BeanUtils.toBean(pageResult, DictTypeRespVO.class));
66 } 71 }
67 72
68 @Operation(summary = "/查询字典类型详细") 73 @Operation(summary = "/查询字典类型详细")
@@ -70,26 +75,28 @@ public class DictTypeController { @@ -70,26 +75,28 @@ public class DictTypeController {
70 @GetMapping(value = "/get") 75 @GetMapping(value = "/get")
71 @PreAuthorize("@ss.hasPermission('system:dict:query')") 76 @PreAuthorize("@ss.hasPermission('system:dict:query')")
72 public CommonResult<DictTypeRespVO> getDictType(@RequestParam("id") Long id) { 77 public CommonResult<DictTypeRespVO> getDictType(@RequestParam("id") Long id) {
73 - return success(DictTypeConvert.INSTANCE.convert(dictTypeService.getDictType(id))); 78 + DictTypeDO dictType = dictTypeService.getDictType(id);
  79 + return success(BeanUtils.toBean(dictType, DictTypeRespVO.class));
74 } 80 }
75 81
76 - @GetMapping("/list-all-simple") 82 + @GetMapping(value = {"/list-all-simple", "simple-list"})
77 @Operation(summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项") 83 @Operation(summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项")
78 // 无需添加权限认证,因为前端全局都需要 84 // 无需添加权限认证,因为前端全局都需要
79 public CommonResult<List<DictTypeSimpleRespVO>> getSimpleDictTypeList() { 85 public CommonResult<List<DictTypeSimpleRespVO>> getSimpleDictTypeList() {
80 List<DictTypeDO> list = dictTypeService.getDictTypeList(); 86 List<DictTypeDO> list = dictTypeService.getDictTypeList();
81 - return success(DictTypeConvert.INSTANCE.convertList(list)); 87 + return success(BeanUtils.toBean(list, DictTypeSimpleRespVO.class));
82 } 88 }
83 89
84 @Operation(summary = "导出数据类型") 90 @Operation(summary = "导出数据类型")
85 @GetMapping("/export") 91 @GetMapping("/export")
86 @PreAuthorize("@ss.hasPermission('system:dict:query')") 92 @PreAuthorize("@ss.hasPermission('system:dict:query')")
87 @OperateLog(type = EXPORT) 93 @OperateLog(type = EXPORT)
88 - public void export(HttpServletResponse response, @Valid DictTypeExportReqVO reqVO) throws IOException {  
89 - List<DictTypeDO> list = dictTypeService.getDictTypeList(reqVO);  
90 - List<DictTypeExcelVO> data = DictTypeConvert.INSTANCE.convertList02(list);  
91 - // 输出  
92 - ExcelUtils.write(response, "字典类型.xls", "类型列表", DictTypeExcelVO.class, data); 94 + public void export(HttpServletResponse response, @Valid DictTypePageReqVO exportReqVO) throws IOException {
  95 + exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  96 + List<DictTypeDO> list = dictTypeService.getDictTypePage(exportReqVO).getList();
  97 + // 导出
  98 + ExcelUtils.write(response, "字典类型.xls", "数据", DictTypeRespVO.class,
  99 + BeanUtils.toBean(list, DictTypeRespVO.class));
93 } 100 }
94 101
95 } 102 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataCreateReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -@Schema(description = "管理后台 - 字典数据创建 Request VO")  
8 -@Data  
9 -@EqualsAndHashCode(callSuper = true)  
10 -public class DictDataCreateReqVO extends DictDataBaseVO {  
11 -  
12 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataExcelVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;  
2 -  
3 -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;  
4 -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;  
5 -import cn.iocoder.yudao.module.system.enums.DictTypeConstants;  
6 -import com.alibaba.excel.annotation.ExcelProperty;  
7 -import lombok.Data;  
8 -  
9 -/**  
10 - * 字典数据 Excel 导出响应 VO  
11 - */  
12 -@Data  
13 -public class DictDataExcelVO {  
14 -  
15 - @ExcelProperty("字典编码")  
16 - private Long id;  
17 -  
18 - @ExcelProperty("字典排序")  
19 - private Integer sort;  
20 -  
21 - @ExcelProperty("字典标签")  
22 - private String label;  
23 -  
24 - @ExcelProperty("字典键值")  
25 - private String value;  
26 -  
27 - @ExcelProperty("字典类型")  
28 - private String dictType;  
29 -  
30 - @ExcelProperty(value = "状态", converter = DictConvert.class)  
31 - @DictFormat(DictTypeConstants.COMMON_STATUS)  
32 - private Integer status;  
33 -  
34 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -  
6 -import javax.validation.constraints.Size;  
7 -  
8 -@Schema(description = "管理后台 - 字典类型导出 Request VO")  
9 -@Data  
10 -public class DictDataExportReqVO {  
11 -  
12 - @Schema(description = "字典标签", example = "芋道")  
13 - @Size(max = 100, message = "字典标签长度不能超过100个字符")  
14 - private String label;  
15 -  
16 - @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex")  
17 - @Size(max = 100, message = "字典类型类型长度不能超过100个字符")  
18 - private String dictType;  
19 -  
20 - @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")  
21 - private Integer status;  
22 -  
23 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; 1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
2 2
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 4 import cn.iocoder.yudao.framework.common.pojo.PageParam;
  5 +import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import io.swagger.v3.oas.annotations.media.Schema; 6 import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 7 import lombok.Data;
6 import lombok.EqualsAndHashCode; 8 import lombok.EqualsAndHashCode;
@@ -21,6 +23,7 @@ public class DictDataPageReqVO extends PageParam { @@ -21,6 +23,7 @@ public class DictDataPageReqVO extends PageParam {
21 private String dictType; 23 private String dictType;
22 24
23 @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") 25 @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")
  26 + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
24 private Integer status; 27 private Integer status;
25 28
26 } 29 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataRespVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; 1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
2 2
  3 +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
  4 +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
  6 +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
  7 +import com.alibaba.excel.annotation.ExcelProperty;
3 import io.swagger.v3.oas.annotations.media.Schema; 8 import io.swagger.v3.oas.annotations.media.Schema;
4 -import lombok.AllArgsConstructor;  
5 import lombok.Data; 9 import lombok.Data;
6 -import lombok.EqualsAndHashCode;  
7 -import lombok.NoArgsConstructor;  
8 10
9 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
10 12
11 @Schema(description = "管理后台 - 字典数据信息 Response VO") 13 @Schema(description = "管理后台 - 字典数据信息 Response VO")
12 @Data 14 @Data
13 -@NoArgsConstructor  
14 -@AllArgsConstructor  
15 -@EqualsAndHashCode(callSuper = true)  
16 -public class DictDataRespVO extends DictDataBaseVO { 15 +@ExcelIgnoreUnannotated
  16 +public class DictDataRespVO {
17 17
18 @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 18 @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  19 + @ExcelProperty("字典编码")
19 private Long id; 20 private Long id;
20 21
  22 + @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  23 + @ExcelProperty("字典排序")
  24 + private Integer sort;
  25 +
  26 + @Schema(description = "字典标签", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
  27 + @ExcelProperty("字典标签")
  28 + private String label;
  29 +
  30 + @Schema(description = "字典值", requiredMode = Schema.RequiredMode.REQUIRED, example = "iocoder")
  31 + @ExcelProperty("字典键值")
  32 + private String value;
  33 +
  34 + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex")
  35 + @ExcelProperty("字典类型")
  36 + private String dictType;
  37 +
  38 + @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  39 + @ExcelProperty(value = "状态", converter = DictConvert.class)
  40 + @DictFormat(DictTypeConstants.COMMON_STATUS)
  41 + private Integer status;
  42 +
  43 + @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default")
  44 + private String colorType;
  45 +
  46 + @Schema(description = "css 样式", example = "btn-visible")
  47 + private String cssClass;
  48 +
  49 + @Schema(description = "备注", example = "我是一个角色")
  50 + private String remark;
  51 +
21 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") 52 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
22 private LocalDateTime createTime; 53 private LocalDateTime createTime;
23 54
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataBaseVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataSaveReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; 1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
2 2
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import cn.iocoder.yudao.framework.common.validation.InEnum;
3 import io.swagger.v3.oas.annotations.media.Schema; 5 import io.swagger.v3.oas.annotations.media.Schema;
4 import lombok.Data; 6 import lombok.Data;
5 7
@@ -7,12 +9,12 @@ import javax.validation.constraints.NotBlank; @@ -7,12 +9,12 @@ import javax.validation.constraints.NotBlank;
7 import javax.validation.constraints.NotNull; 9 import javax.validation.constraints.NotNull;
8 import javax.validation.constraints.Size; 10 import javax.validation.constraints.Size;
9 11
10 -/**  
11 - * 字典数据 Base VO,提供给添加、修改、详细的子 VO 使用  
12 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成  
13 - */ 12 +@Schema(description = "管理后台 - 字典数据创建/修改 Request VO")
14 @Data 13 @Data
15 -public class DictDataBaseVO { 14 +public class DictDataSaveReqVO {
  15 +
  16 + @Schema(description = "字典数据编号", example = "1024")
  17 + private Long id;
16 18
17 @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 19 @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
18 @NotNull(message = "显示顺序不能为空") 20 @NotNull(message = "显示顺序不能为空")
@@ -35,11 +37,12 @@ public class DictDataBaseVO { @@ -35,11 +37,12 @@ public class DictDataBaseVO {
35 37
36 @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 38 @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
37 @NotNull(message = "状态不能为空") 39 @NotNull(message = "状态不能为空")
38 -// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") 40 + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
39 private Integer status; 41 private Integer status;
40 42
41 @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") 43 @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default")
42 private String colorType; 44 private String colorType;
  45 +
43 @Schema(description = "css 样式", example = "btn-visible") 46 @Schema(description = "css 样式", example = "btn-visible")
44 private String cssClass; 47 private String cssClass;
45 48
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -  
9 -@Schema(description = "管理后台 - 字典数据更新 Request VO")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -public class DictDataUpdateReqVO extends DictDataBaseVO {  
13 -  
14 - @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
15 - @NotNull(message = "字典数据编号不能为空")  
16 - private Long id;  
17 -  
18 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeCreateReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -import javax.validation.constraints.Size;  
9 -  
10 -@Schema(description = "管理后台 - 字典类型创建 Request VO")  
11 -@Data  
12 -@EqualsAndHashCode(callSuper = true)  
13 -public class DictTypeCreateReqVO extends DictTypeBaseVO {  
14 -  
15 - @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex")  
16 - @NotNull(message = "字典类型不能为空")  
17 - @Size(max = 100, message = "字典类型类型长度不能超过100个字符")  
18 - private String type;  
19 -  
20 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExcelVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;  
2 -  
3 -import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;  
4 -import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;  
5 -import cn.iocoder.yudao.module.system.enums.DictTypeConstants;  
6 -import com.alibaba.excel.annotation.ExcelProperty;  
7 -import lombok.Data;  
8 -  
9 -/**  
10 - * 字典类型 Excel 导出响应 VO  
11 - */  
12 -@Data  
13 -public class DictTypeExcelVO {  
14 -  
15 - @ExcelProperty("字典主键")  
16 - private Long id;  
17 -  
18 - @ExcelProperty("字典名称")  
19 - private String name;  
20 -  
21 - @ExcelProperty("字典类型")  
22 - private String type;  
23 -  
24 - @ExcelProperty(value = "状态", converter = DictConvert.class)  
25 - @DictFormat(DictTypeConstants.COMMON_STATUS)  
26 - private Integer status;  
27 -  
28 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -import org.springframework.format.annotation.DateTimeFormat;  
6 -  
7 -import java.time.LocalDateTime;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
10 -  
11 -@Schema(description = "管理后台 - 字典类型分页列表 Request VO")  
12 -@Data  
13 -public class DictTypeExportReqVO {  
14 -  
15 - @Schema(description = "字典类型名称,模糊匹配", example = "芋道")  
16 - private String name;  
17 -  
18 - @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex")  
19 - private String type;  
20 -  
21 - @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1")  
22 - private Integer status;  
23 -  
24 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
25 - @Schema(description = "创建时间")  
26 - private LocalDateTime[] createTime;  
27 -  
28 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeRespVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; 1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
2 2
  3 +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
  4 +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
  6 +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
  7 +import com.alibaba.excel.annotation.ExcelProperty;
3 import io.swagger.v3.oas.annotations.media.Schema; 8 import io.swagger.v3.oas.annotations.media.Schema;
4 -import lombok.AllArgsConstructor;  
5 import lombok.Data; 9 import lombok.Data;
6 -import lombok.EqualsAndHashCode;  
7 -import lombok.NoArgsConstructor;  
8 10
9 import java.time.LocalDateTime; 11 import java.time.LocalDateTime;
10 12
11 @Schema(description = "管理后台 - 字典类型信息 Response VO") 13 @Schema(description = "管理后台 - 字典类型信息 Response VO")
12 @Data 14 @Data
13 -@NoArgsConstructor  
14 -@AllArgsConstructor  
15 -@EqualsAndHashCode(callSuper = true)  
16 -public class DictTypeRespVO extends DictTypeBaseVO { 15 +@ExcelIgnoreUnannotated
  16 +public class DictTypeRespVO {
17 17
18 @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 18 @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
  19 + @ExcelProperty("字典主键")
19 private Long id; 20 private Long id;
20 21
  22 + @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别")
  23 + @ExcelProperty("字典名称")
  24 + private String name;
  25 +
21 @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") 26 @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex")
  27 + @ExcelProperty("字典类型")
22 private String type; 28 private String type;
23 29
  30 + @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  31 + @ExcelProperty(value = "状态", converter = DictConvert.class)
  32 + @DictFormat(DictTypeConstants.COMMON_STATUS)
  33 + private Integer status;
  34 +
  35 + @Schema(description = "备注", example = "快乐的备注")
  36 + private String remark;
  37 +
24 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") 38 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
25 private LocalDateTime createTime; 39 private LocalDateTime createTime;
26 40
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeBaseVO.java renamed to yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSaveReqVO.java
@@ -7,18 +7,23 @@ import javax.validation.constraints.NotBlank; @@ -7,18 +7,23 @@ import javax.validation.constraints.NotBlank;
7 import javax.validation.constraints.NotNull; 7 import javax.validation.constraints.NotNull;
8 import javax.validation.constraints.Size; 8 import javax.validation.constraints.Size;
9 9
10 -/**  
11 - * 字典类型 Base VO,提供给添加、修改、详细的子 VO 使用  
12 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成  
13 - */ 10 +@Schema(description = "管理后台 - 字典类型创建/修改 Request VO")
14 @Data 11 @Data
15 -public class DictTypeBaseVO { 12 +public class DictTypeSaveReqVO {
  13 +
  14 + @Schema(description = "字典类型编号", example = "1024")
  15 + private Long id;
16 16
17 @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") 17 @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别")
18 @NotBlank(message = "字典名称不能为空") 18 @NotBlank(message = "字典名称不能为空")
19 @Size(max = 100, message = "字典类型名称长度不能超过100个字符") 19 @Size(max = 100, message = "字典类型名称长度不能超过100个字符")
20 private String name; 20 private String name;
21 21
  22 + @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex")
  23 + @NotNull(message = "字典类型不能为空")
  24 + @Size(max = 100, message = "字典类型类型长度不能超过 100 个字符")
  25 + private String type;
  26 +
22 @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 27 @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
23 @NotNull(message = "状态不能为空") 28 @NotNull(message = "状态不能为空")
24 private Integer status; 29 private Integer status;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeSimpleRespVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; 1 package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
2 2
3 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
4 -import lombok.AllArgsConstructor;  
5 import lombok.Data; 4 import lombok.Data;
6 -import lombok.NoArgsConstructor;  
7 5
8 @Schema(description = "管理后台 - 字典类型精简信息 Response VO") 6 @Schema(description = "管理后台 - 字典类型精简信息 Response VO")
9 @Data 7 @Data
10 -@NoArgsConstructor  
11 -@AllArgsConstructor  
12 public class DictTypeSimpleRespVO { 8 public class DictTypeSimpleRespVO {
13 9
14 @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") 10 @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;  
2 -  
3 -import io.swagger.v3.oas.annotations.media.Schema;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -  
7 -import javax.validation.constraints.NotNull;  
8 -  
9 -@Schema(description = "管理后台 - 字典类型更新 Request VO")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -public class DictTypeUpdateReqVO extends DictTypeBaseVO {  
13 -  
14 - @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")  
15 - @NotNull(message = "字典类型编号不能为空")  
16 - private Long id;  
17 -  
18 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/dict/AppDictDataController.java
1 package cn.iocoder.yudao.module.system.controller.app.dict; 1 package cn.iocoder.yudao.module.system.controller.app.dict;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO; 5 import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO;
5 -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert;  
6 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
7 import cn.iocoder.yudao.module.system.service.dict.DictDataService; 7 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
8 import io.swagger.v3.oas.annotations.Operation; 8 import io.swagger.v3.oas.annotations.Operation;
@@ -33,7 +33,7 @@ public class AppDictDataController { @@ -33,7 +33,7 @@ public class AppDictDataController {
33 @Parameter(name = "type", description = "字典类型", required = true, example = "common_status") 33 @Parameter(name = "type", description = "字典类型", required = true, example = "common_status")
34 public CommonResult<List<AppDictDataRespVO>> getDictDataListByType(@RequestParam("type") String type) { 34 public CommonResult<List<AppDictDataRespVO>> getDictDataListByType(@RequestParam("type") String type) {
35 List<DictDataDO> list = dictDataService.getEnabledDictDataListByType(type); 35 List<DictDataDO> list = dictDataService.getEnabledDictDataListByType(type);
36 - return success(DictDataConvert.INSTANCE.convertList03(list)); 36 + return success(BeanUtils.toBean(list, AppDictDataRespVO.class));
37 } 37 }
38 38
39 } 39 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/dict/DictDataConvert.java deleted
1 -package cn.iocoder.yudao.module.system.convert.dict;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;  
5 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.*;  
6 -import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO;  
7 -import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;  
8 -import org.mapstruct.Mapper;  
9 -import org.mapstruct.factory.Mappers;  
10 -  
11 -import java.util.List;  
12 -  
13 -@Mapper  
14 -public interface DictDataConvert {  
15 -  
16 - DictDataConvert INSTANCE = Mappers.getMapper(DictDataConvert.class);  
17 -  
18 - List<DictDataSimpleRespVO> convertList(List<DictDataDO> list);  
19 -  
20 - DictDataRespVO convert(DictDataDO bean);  
21 -  
22 - PageResult<DictDataRespVO> convertPage(PageResult<DictDataDO> page);  
23 -  
24 - DictDataDO convert(DictDataUpdateReqVO bean);  
25 -  
26 - DictDataDO convert(DictDataCreateReqVO bean);  
27 -  
28 - List<DictDataExcelVO> convertList02(List<DictDataDO> bean);  
29 -  
30 - DictDataRespDTO convert02(DictDataDO bean);  
31 -  
32 - List<AppDictDataRespVO> convertList03(List<DictDataDO> list);  
33 -  
34 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/dict/DictTypeConvert.java deleted
1 -package cn.iocoder.yudao.module.system.convert.dict;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.*;  
5 -import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;  
6 -import org.mapstruct.Mapper;  
7 -import org.mapstruct.factory.Mappers;  
8 -  
9 -import java.util.List;  
10 -  
11 -@Mapper  
12 -public interface DictTypeConvert {  
13 -  
14 - DictTypeConvert INSTANCE = Mappers.getMapper(DictTypeConvert.class);  
15 -  
16 - PageResult<DictTypeRespVO> convertPage(PageResult<DictTypeDO> bean);  
17 -  
18 - DictTypeRespVO convert(DictTypeDO bean);  
19 -  
20 - DictTypeDO convert(DictTypeCreateReqVO bean);  
21 -  
22 - DictTypeDO convert(DictTypeUpdateReqVO bean);  
23 -  
24 - List<DictTypeSimpleRespVO> convertList(List<DictTypeDO> list);  
25 -  
26 - List<DictTypeExcelVO> convertList02(List<DictTypeDO> list);  
27 -  
28 -}  
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictDataMapper.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict; @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;  
7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
9 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 8 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -41,13 +40,6 @@ public interface DictDataMapper extends BaseMapperX&lt;DictDataDO&gt; { @@ -41,13 +40,6 @@ public interface DictDataMapper extends BaseMapperX&lt;DictDataDO&gt; {
41 .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort))); 40 .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort)));
42 } 41 }
43 42
44 - default List<DictDataDO> selectList(DictDataExportReqVO reqVO) {  
45 - return selectList(new LambdaQueryWrapperX<DictDataDO>()  
46 - .likeIfPresent(DictDataDO::getLabel, reqVO.getLabel())  
47 - .eqIfPresent(DictDataDO::getDictType, reqVO.getDictType())  
48 - .eqIfPresent(DictDataDO::getStatus, reqVO.getStatus()));  
49 - }  
50 -  
51 default List<DictDataDO> selectListByTypeAndStatus(String dictType, Integer status) { 43 default List<DictDataDO> selectListByTypeAndStatus(String dictType, Integer status) {
52 return selectList(new LambdaQueryWrapper<DictDataDO>() 44 return selectList(new LambdaQueryWrapper<DictDataDO>()
53 .eq(DictDataDO::getDictType, dictType) 45 .eq(DictDataDO::getDictType, dictType)
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict; @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;  
7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
9 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
@@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Param; @@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Param;
11 import org.apache.ibatis.annotations.Update; 10 import org.apache.ibatis.annotations.Update;
12 11
13 import java.time.LocalDateTime; 12 import java.time.LocalDateTime;
14 -import java.util.List;  
15 13
16 @Mapper 14 @Mapper
17 public interface DictTypeMapper extends BaseMapperX<DictTypeDO> { 15 public interface DictTypeMapper extends BaseMapperX<DictTypeDO> {
@@ -25,14 +23,6 @@ public interface DictTypeMapper extends BaseMapperX&lt;DictTypeDO&gt; { @@ -25,14 +23,6 @@ public interface DictTypeMapper extends BaseMapperX&lt;DictTypeDO&gt; {
25 .orderByDesc(DictTypeDO::getId)); 23 .orderByDesc(DictTypeDO::getId));
26 } 24 }
27 25
28 - default List<DictTypeDO> selectList(DictTypeExportReqVO reqVO) {  
29 - return selectList(new LambdaQueryWrapperX<DictTypeDO>()  
30 - .likeIfPresent(DictTypeDO::getName, reqVO.getName())  
31 - .likeIfPresent(DictTypeDO::getType, reqVO.getType())  
32 - .eqIfPresent(DictTypeDO::getStatus, reqVO.getStatus())  
33 - .betweenIfPresent(DictTypeDO::getCreateTime, reqVO.getCreateTime()));  
34 - }  
35 -  
36 default DictTypeDO selectByType(String type) { 26 default DictTypeDO selectByType(String type) {
37 return selectOne(DictTypeDO::getType, type); 27 return selectOne(DictTypeDO::getType, type);
38 } 28 }
@@ -41,8 +31,7 @@ public interface DictTypeMapper extends BaseMapperX&lt;DictTypeDO&gt; { @@ -41,8 +31,7 @@ public interface DictTypeMapper extends BaseMapperX&lt;DictTypeDO&gt; {
41 return selectOne(DictTypeDO::getName, name); 31 return selectOne(DictTypeDO::getName, name);
42 } 32 }
43 33
44 - int deleteById(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime);  
45 -  
46 @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}") 34 @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}")
47 void updateToDelete(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime); 35 void updateToDelete(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime);
  36 +
48 } 37 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java
1 package cn.iocoder.yudao.module.system.service.dict; 1 package cn.iocoder.yudao.module.system.service.dict;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;  
5 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;  
6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; 5 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
9 7
10 import java.util.Collection; 8 import java.util.Collection;
@@ -20,17 +18,17 @@ public interface DictDataService { @@ -20,17 +18,17 @@ public interface DictDataService {
20 /** 18 /**
21 * 创建字典数据 19 * 创建字典数据
22 * 20 *
23 - * @param reqVO 字典数据信息 21 + * @param createReqVO 字典数据信息
24 * @return 字典数据编号 22 * @return 字典数据编号
25 */ 23 */
26 - Long createDictData(DictDataCreateReqVO reqVO); 24 + Long createDictData(DictDataSaveReqVO createReqVO);
27 25
28 /** 26 /**
29 * 更新字典数据 27 * 更新字典数据
30 * 28 *
31 - * @param reqVO 字典数据信息 29 + * @param updateReqVO 字典数据信息
32 */ 30 */
33 - void updateDictData(DictDataUpdateReqVO reqVO); 31 + void updateDictData(DictDataSaveReqVO updateReqVO);
34 32
35 /** 33 /**
36 * 删除字典数据 34 * 删除字典数据
@@ -49,18 +47,10 @@ public interface DictDataService { @@ -49,18 +47,10 @@ public interface DictDataService {
49 /** 47 /**
50 * 获得字典数据分页列表 48 * 获得字典数据分页列表
51 * 49 *
52 - * @param reqVO 分页请求 50 + * @param pageReqVO 分页请求
53 * @return 字典数据分页列表 51 * @return 字典数据分页列表
54 */ 52 */
55 - PageResult<DictDataDO> getDictDataPage(DictDataPageReqVO reqVO);  
56 -  
57 - /**  
58 - * 获得字典数据列表  
59 - *  
60 - * @param reqVO 列表请求  
61 - * @return 字典数据列表  
62 - */  
63 - List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO); 53 + PageResult<DictDataDO> getDictDataPage(DictDataPageReqVO pageReqVO);
64 54
65 /** 55 /**
66 * 获得字典数据列表 56 * 获得字典数据列表
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java
@@ -4,11 +4,9 @@ import cn.hutool.core.collection.CollUtil; @@ -4,11 +4,9 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;  
8 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; 7 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
9 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
10 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO;  
11 -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert; 9 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
12 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
13 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
14 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; 12 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper;
@@ -55,15 +53,8 @@ public class DictDataServiceImpl implements DictDataService { @@ -55,15 +53,8 @@ public class DictDataServiceImpl implements DictDataService {
55 } 53 }
56 54
57 @Override 55 @Override
58 - public PageResult<DictDataDO> getDictDataPage(DictDataPageReqVO reqVO) {  
59 - return dictDataMapper.selectPage(reqVO);  
60 - }  
61 -  
62 - @Override  
63 - public List<DictDataDO> getDictDataList(DictDataExportReqVO reqVO) {  
64 - List<DictDataDO> list = dictDataMapper.selectList(reqVO);  
65 - list.sort(COMPARATOR_TYPE_AND_SORT);  
66 - return list; 56 + public PageResult<DictDataDO> getDictDataPage(DictDataPageReqVO pageReqVO) {
  57 + return dictDataMapper.selectPage(pageReqVO);
67 } 58 }
68 59
69 @Override 60 @Override
@@ -79,23 +70,29 @@ public class DictDataServiceImpl implements DictDataService { @@ -79,23 +70,29 @@ public class DictDataServiceImpl implements DictDataService {
79 } 70 }
80 71
81 @Override 72 @Override
82 - public Long createDictData(DictDataCreateReqVO reqVO) {  
83 - // 校验正确性  
84 - validateDictDataForCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType()); 73 + public Long createDictData(DictDataSaveReqVO createReqVO) {
  74 + // 校验字典类型有效
  75 + validateDictTypeExists(createReqVO.getDictType());
  76 + // 校验字典数据的值的唯一性
  77 + validateDictDataValueUnique(null, createReqVO.getDictType(), createReqVO.getValue());
85 78
86 // 插入字典类型 79 // 插入字典类型
87 - DictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO); 80 + DictDataDO dictData = BeanUtils.toBean(createReqVO, DictDataDO.class);
88 dictDataMapper.insert(dictData); 81 dictDataMapper.insert(dictData);
89 return dictData.getId(); 82 return dictData.getId();
90 } 83 }
91 84
92 @Override 85 @Override
93 - public void updateDictData(DictDataUpdateReqVO reqVO) {  
94 - // 校验正确性  
95 - validateDictDataForCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType()); 86 + public void updateDictData(DictDataSaveReqVO updateReqVO) {
  87 + // 校验自己存在
  88 + validateDictDataExists(updateReqVO.getId());
  89 + // 校验字典类型有效
  90 + validateDictTypeExists(updateReqVO.getDictType());
  91 + // 校验字典数据的值的唯一性
  92 + validateDictDataValueUnique(updateReqVO.getId(), updateReqVO.getDictType(), updateReqVO.getValue());
96 93
97 // 更新字典类型 94 // 更新字典类型
98 - DictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO); 95 + DictDataDO updateObj = BeanUtils.toBean(updateReqVO, DictDataDO.class);
99 dictDataMapper.updateById(updateObj); 96 dictDataMapper.updateById(updateObj);
100 } 97 }
101 98
@@ -113,15 +110,6 @@ public class DictDataServiceImpl implements DictDataService { @@ -113,15 +110,6 @@ public class DictDataServiceImpl implements DictDataService {
113 return dictDataMapper.selectCountByDictType(dictType); 110 return dictDataMapper.selectCountByDictType(dictType);
114 } 111 }
115 112
116 - private void validateDictDataForCreateOrUpdate(Long id, String value, String dictType) {  
117 - // 校验自己存在  
118 - validateDictDataExists(id);  
119 - // 校验字典类型有效  
120 - validateDictTypeExists(dictType);  
121 - // 校验字典数据的值的唯一性  
122 - validateDictDataValueUnique(id, dictType, value);  
123 - }  
124 -  
125 @VisibleForTesting 113 @VisibleForTesting
126 public void validateDictDataValueUnique(Long id, String dictType, String value) { 114 public void validateDictDataValueUnique(Long id, String dictType, String value) {
127 DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value); 115 DictDataDO dictData = dictDataMapper.selectByDictTypeAndValue(dictType, value);
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeService.java
1 package cn.iocoder.yudao.module.system.service.dict; 1 package cn.iocoder.yudao.module.system.service.dict;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeCreateReqVO;  
5 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;  
6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeUpdateReqVO; 5 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
9 7
10 import java.util.List; 8 import java.util.List;
@@ -19,17 +17,17 @@ public interface DictTypeService { @@ -19,17 +17,17 @@ public interface DictTypeService {
19 /** 17 /**
20 * 创建字典类型 18 * 创建字典类型
21 * 19 *
22 - * @param reqVO 字典类型信息 20 + * @param createReqVO 字典类型信息
23 * @return 字典类型编号 21 * @return 字典类型编号
24 */ 22 */
25 - Long createDictType(DictTypeCreateReqVO reqVO); 23 + Long createDictType(DictTypeSaveReqVO createReqVO);
26 24
27 /** 25 /**
28 * 更新字典类型 26 * 更新字典类型
29 * 27 *
30 - * @param reqVO 字典类型信息 28 + * @param updateReqVO 字典类型信息
31 */ 29 */
32 - void updateDictType(DictTypeUpdateReqVO reqVO); 30 + void updateDictType(DictTypeSaveReqVO updateReqVO);
33 31
34 /** 32 /**
35 * 删除字典类型 33 * 删除字典类型
@@ -41,18 +39,10 @@ public interface DictTypeService { @@ -41,18 +39,10 @@ public interface DictTypeService {
41 /** 39 /**
42 * 获得字典类型分页列表 40 * 获得字典类型分页列表
43 * 41 *
44 - * @param reqVO 分页请求 42 + * @param pageReqVO 分页请求
45 * @return 字典类型分页列表 43 * @return 字典类型分页列表
46 */ 44 */
47 - PageResult<DictTypeDO> getDictTypePage(DictTypePageReqVO reqVO);  
48 -  
49 - /**  
50 - * 获得字典类型列表  
51 - *  
52 - * @param reqVO 列表请求  
53 - * @return 字典类型列表  
54 - */  
55 - List<DictTypeDO> getDictTypeList(DictTypeExportReqVO reqVO); 45 + PageResult<DictTypeDO> getDictTypePage(DictTypePageReqVO pageReqVO);
56 46
57 /** 47 /**
58 * 获得字典类型详情 48 * 获得字典类型详情
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java
@@ -3,11 +3,9 @@ package cn.iocoder.yudao.module.system.service.dict; @@ -3,11 +3,9 @@ package cn.iocoder.yudao.module.system.service.dict;
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils; 5 import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
6 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeCreateReqVO;  
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO; 6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
9 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeUpdateReqVO;  
10 -import cn.iocoder.yudao.module.system.convert.dict.DictTypeConvert; 8 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
12 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper;
13 import com.google.common.annotations.VisibleForTesting; 11 import com.google.common.annotations.VisibleForTesting;
@@ -35,13 +33,8 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -35,13 +33,8 @@ public class DictTypeServiceImpl implements DictTypeService {
35 private DictTypeMapper dictTypeMapper; 33 private DictTypeMapper dictTypeMapper;
36 34
37 @Override 35 @Override
38 - public PageResult<DictTypeDO> getDictTypePage(DictTypePageReqVO reqVO) {  
39 - return dictTypeMapper.selectPage(reqVO);  
40 - }  
41 -  
42 - @Override  
43 - public List<DictTypeDO> getDictTypeList(DictTypeExportReqVO reqVO) {  
44 - return dictTypeMapper.selectList(reqVO); 36 + public PageResult<DictTypeDO> getDictTypePage(DictTypePageReqVO pageReqVO) {
  37 + return dictTypeMapper.selectPage(pageReqVO);
45 } 38 }
46 39
47 @Override 40 @Override
@@ -55,24 +48,30 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -55,24 +48,30 @@ public class DictTypeServiceImpl implements DictTypeService {
55 } 48 }
56 49
57 @Override 50 @Override
58 - public Long createDictType(DictTypeCreateReqVO reqVO) {  
59 - // 校验正确性  
60 - validateDictTypeForCreateOrUpdate(null, reqVO.getName(), reqVO.getType()); 51 + public Long createDictType(DictTypeSaveReqVO createReqVO) {
  52 + // 校验字典类型的名字的唯一性
  53 + validateDictTypeNameUnique(null, createReqVO.getName());
  54 + // 校验字典类型的类型的唯一性
  55 + validateDictTypeUnique(null, createReqVO.getType());
61 56
62 // 插入字典类型 57 // 插入字典类型
63 - DictTypeDO dictType = DictTypeConvert.INSTANCE.convert(reqVO)  
64 - .setDeletedTime(LocalDateTimeUtils.EMPTY); // 唯一索引,避免 null 值 58 + DictTypeDO dictType = BeanUtils.toBean(createReqVO, DictTypeDO.class);
  59 + dictType.setDeletedTime(LocalDateTimeUtils.EMPTY); // 唯一索引,避免 null 值
65 dictTypeMapper.insert(dictType); 60 dictTypeMapper.insert(dictType);
66 return dictType.getId(); 61 return dictType.getId();
67 } 62 }
68 63
69 @Override 64 @Override
70 - public void updateDictType(DictTypeUpdateReqVO reqVO) {  
71 - // 校验正确性  
72 - validateDictTypeForCreateOrUpdate(reqVO.getId(), reqVO.getName(), null); 65 + public void updateDictType(DictTypeSaveReqVO updateReqVO) {
  66 + // 校验自己存在
  67 + validateDictTypeExists(updateReqVO.getId());
  68 + // 校验字典类型的名字的唯一性
  69 + validateDictTypeNameUnique(updateReqVO.getId(), updateReqVO.getName());
  70 + // 校验字典类型的类型的唯一性
  71 + validateDictTypeUnique(updateReqVO.getId(), updateReqVO.getType());
73 72
74 // 更新字典类型 73 // 更新字典类型
75 - DictTypeDO updateObj = DictTypeConvert.INSTANCE.convert(reqVO); 74 + DictTypeDO updateObj = BeanUtils.toBean(updateReqVO, DictTypeDO.class);
76 dictTypeMapper.updateById(updateObj); 75 dictTypeMapper.updateById(updateObj);
77 } 76 }
78 77
@@ -93,15 +92,6 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -93,15 +92,6 @@ public class DictTypeServiceImpl implements DictTypeService {
93 return dictTypeMapper.selectList(); 92 return dictTypeMapper.selectList();
94 } 93 }
95 94
96 - private void validateDictTypeForCreateOrUpdate(Long id, String name, String type) {  
97 - // 校验自己存在  
98 - validateDictTypeExists(id);  
99 - // 校验字典类型的名字的唯一性  
100 - validateDictTypeNameUnique(id, name);  
101 - // 校验字典类型的类型的唯一性  
102 - validateDictTypeUnique(id, type);  
103 - }  
104 -  
105 @VisibleForTesting 95 @VisibleForTesting
106 void validateDictTypeNameUnique(Long id, String name) { 96 void validateDictTypeNameUnique(Long id, String name) {
107 DictTypeDO dictType = dictTypeMapper.selectByName(name); 97 DictTypeDO dictType = dictTypeMapper.selectByName(name);
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImplTest.java
@@ -4,10 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -4,10 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;  
8 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;  
9 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
10 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; 8 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
12 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
13 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; 11 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper;
@@ -92,34 +90,6 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @@ -92,34 +90,6 @@ public class DictDataServiceImplTest extends BaseDbUnitTest {
92 } 90 }
93 91
94 @Test 92 @Test
95 - public void testGetDictDataList_export() {  
96 - // mock 数据  
97 - DictDataDO dbDictData = randomPojo(DictDataDO.class, o -> { // 等会查询到  
98 - o.setLabel("芋艿");  
99 - o.setDictType("yunai");  
100 - o.setStatus(CommonStatusEnum.ENABLE.getStatus());  
101 - });  
102 - dictDataMapper.insert(dbDictData);  
103 - // 测试 label 不匹配  
104 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setLabel("艿")));  
105 - // 测试 dictType 不匹配  
106 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai")));  
107 - // 测试 status 不匹配  
108 - dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));  
109 - // 准备参数  
110 - DictDataExportReqVO reqVO = new DictDataExportReqVO();  
111 - reqVO.setLabel("芋");  
112 - reqVO.setDictType("yunai");  
113 - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
114 -  
115 - // 调用  
116 - List<DictDataDO> list = dictDataService.getDictDataList(reqVO);  
117 - // 断言  
118 - assertEquals(1, list.size());  
119 - assertPojoEquals(dbDictData, list.get(0));  
120 - }  
121 -  
122 - @Test  
123 public void testGetDictData() { 93 public void testGetDictData() {
124 // mock 数据 94 // mock 数据
125 DictDataDO dbDictData = randomDictDataDO(); 95 DictDataDO dbDictData = randomDictDataDO();
@@ -136,8 +106,9 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @@ -136,8 +106,9 @@ public class DictDataServiceImplTest extends BaseDbUnitTest {
136 @Test 106 @Test
137 public void testCreateDictData_success() { 107 public void testCreateDictData_success() {
138 // 准备参数 108 // 准备参数
139 - DictDataCreateReqVO reqVO = randomPojo(DictDataCreateReqVO.class,  
140 - o -> o.setStatus(randomCommonStatus())); 109 + DictDataSaveReqVO reqVO = randomPojo(DictDataSaveReqVO.class,
  110 + o -> o.setStatus(randomCommonStatus()))
  111 + .setId(null); // 防止 id 被赋值
141 // mock 方法 112 // mock 方法
142 when(dictTypeService.getDictType(eq(reqVO.getDictType()))).thenReturn(randomDictTypeDO(reqVO.getDictType())); 113 when(dictTypeService.getDictType(eq(reqVO.getDictType()))).thenReturn(randomDictTypeDO(reqVO.getDictType()));
143 114
@@ -147,7 +118,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @@ -147,7 +118,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest {
147 assertNotNull(dictDataId); 118 assertNotNull(dictDataId);
148 // 校验记录的属性是否正确 119 // 校验记录的属性是否正确
149 DictDataDO dictData = dictDataMapper.selectById(dictDataId); 120 DictDataDO dictData = dictDataMapper.selectById(dictDataId);
150 - assertPojoEquals(reqVO, dictData); 121 + assertPojoEquals(reqVO, dictData, "id");
151 } 122 }
152 123
153 @Test 124 @Test
@@ -156,7 +127,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { @@ -156,7 +127,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest {
156 DictDataDO dbDictData = randomDictDataDO(); 127 DictDataDO dbDictData = randomDictDataDO();
157 dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 128 dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据
158 // 准备参数 129 // 准备参数
159 - DictDataUpdateReqVO reqVO = randomPojo(DictDataUpdateReqVO.class, o -> { 130 + DictDataSaveReqVO reqVO = randomPojo(DictDataSaveReqVO.class, o -> {
160 o.setId(dbDictData.getId()); // 设置更新的 ID 131 o.setId(dbDictData.getId()); // 设置更新的 ID
161 o.setStatus(randomCommonStatus()); 132 o.setStatus(randomCommonStatus());
162 }); 133 });
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImplTest.java
@@ -4,10 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -4,10 +4,8 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
7 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeCreateReqVO;  
8 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;  
9 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
10 -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeUpdateReqVO; 8 +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
12 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper;
13 import org.junit.jupiter.api.Test; 11 import org.junit.jupiter.api.Test;
@@ -75,38 +73,6 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { @@ -75,38 +73,6 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest {
75 } 73 }
76 74
77 @Test 75 @Test
78 - public void testGetDictTypeList_export() {  
79 - // mock 数据  
80 - DictTypeDO dbDictType = randomPojo(DictTypeDO.class, o -> { // 等会查询到  
81 - o.setName("yunai");  
82 - o.setType("芋艿");  
83 - o.setStatus(CommonStatusEnum.ENABLE.getStatus());  
84 - o.setCreateTime(buildTime(2021, 1, 15));  
85 - });  
86 - dictTypeMapper.insert(dbDictType);  
87 - // 测试 name 不匹配  
88 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setName("tudou")));  
89 - // 测试 type 不匹配  
90 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setType("土豆")));  
91 - // 测试 status 不匹配  
92 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));  
93 - // 测试 createTime 不匹配  
94 - dictTypeMapper.insert(cloneIgnoreId(dbDictType, o -> o.setCreateTime(buildTime(2021, 1, 1))));  
95 - // 准备参数  
96 - DictTypeExportReqVO reqVO = new DictTypeExportReqVO();  
97 - reqVO.setName("nai");  
98 - reqVO.setType("艿");  
99 - reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
100 - reqVO.setCreateTime(buildBetweenTime(2021, 1, 10, 2021, 1, 20));  
101 -  
102 - // 调用  
103 - List<DictTypeDO> list = dictTypeService.getDictTypeList(reqVO);  
104 - // 断言  
105 - assertEquals(1, list.size());  
106 - assertPojoEquals(dbDictType, list.get(0));  
107 - }  
108 -  
109 - @Test  
110 public void testGetDictType_id() { 76 public void testGetDictType_id() {
111 // mock 数据 77 // mock 数据
112 DictTypeDO dbDictType = randomDictTypeDO(); 78 DictTypeDO dbDictType = randomDictTypeDO();
@@ -139,8 +105,9 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { @@ -139,8 +105,9 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest {
139 @Test 105 @Test
140 public void testCreateDictType_success() { 106 public void testCreateDictType_success() {
141 // 准备参数 107 // 准备参数
142 - DictTypeCreateReqVO reqVO = randomPojo(DictTypeCreateReqVO.class,  
143 - o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus())); 108 + DictTypeSaveReqVO reqVO = randomPojo(DictTypeSaveReqVO.class,
  109 + o -> o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()))
  110 + .setId(null); // 避免 id 被赋值
144 111
145 // 调用 112 // 调用
146 Long dictTypeId = dictTypeService.createDictType(reqVO); 113 Long dictTypeId = dictTypeService.createDictType(reqVO);
@@ -148,7 +115,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { @@ -148,7 +115,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest {
148 assertNotNull(dictTypeId); 115 assertNotNull(dictTypeId);
149 // 校验记录的属性是否正确 116 // 校验记录的属性是否正确
150 DictTypeDO dictType = dictTypeMapper.selectById(dictTypeId); 117 DictTypeDO dictType = dictTypeMapper.selectById(dictTypeId);
151 - assertPojoEquals(reqVO, dictType); 118 + assertPojoEquals(reqVO, dictType, "id");
152 } 119 }
153 120
154 @Test 121 @Test
@@ -157,7 +124,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { @@ -157,7 +124,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest {
157 DictTypeDO dbDictType = randomDictTypeDO(); 124 DictTypeDO dbDictType = randomDictTypeDO();
158 dictTypeMapper.insert(dbDictType);// @Sql: 先插入出一条存在的数据 125 dictTypeMapper.insert(dbDictType);// @Sql: 先插入出一条存在的数据
159 // 准备参数 126 // 准备参数
160 - DictTypeUpdateReqVO reqVO = randomPojo(DictTypeUpdateReqVO.class, o -> { 127 + DictTypeSaveReqVO reqVO = randomPojo(DictTypeSaveReqVO.class, o -> {
161 o.setId(dbDictType.getId()); // 设置更新的 ID 128 o.setId(dbDictType.getId()); // 设置更新的 ID
162 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); 129 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus());
163 }); 130 });