Commit c4933976530a1b4bd80d081a8c094aa22d4653de
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 | 1 | package cn.iocoder.yudao.module.system.api.dict; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 3 | 4 | import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; |
| 4 | -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert; | |
| 5 | 5 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 6 | 6 | import cn.iocoder.yudao.module.system.service.dict.DictDataService; |
| 7 | 7 | import org.springframework.stereotype.Service; |
| ... | ... | @@ -28,13 +28,13 @@ public class DictDataApiImpl implements DictDataApi { |
| 28 | 28 | @Override |
| 29 | 29 | public DictDataRespDTO getDictData(String dictType, String value) { |
| 30 | 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 | 34 | @Override |
| 35 | 35 | public DictDataRespDTO parseDictData(String dictType, String label) { |
| 36 | 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 | 1 | package cn.iocoder.yudao.module.system.controller.admin.dict; |
| 2 | 2 | |
| 3 | -import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; | |
| 4 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 6 | 7 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 7 | 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 | 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 | 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 | 18 | import org.springframework.security.access.prepost.PreAuthorize; |
| 15 | 19 | import org.springframework.validation.annotation.Validated; |
| 16 | 20 | import org.springframework.web.bind.annotation.*; |
| ... | ... | @@ -36,16 +40,16 @@ public class DictDataController { |
| 36 | 40 | @PostMapping("/create") |
| 37 | 41 | @Operation(summary = "新增字典数据") |
| 38 | 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 | 45 | return success(dictDataId); |
| 42 | 46 | } |
| 43 | 47 | |
| 44 | 48 | @PutMapping("/update") |
| 45 | 49 | @Operation(summary = "修改字典数据") |
| 46 | 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 | 53 | return success(true); |
| 50 | 54 | } |
| 51 | 55 | |
| ... | ... | @@ -63,14 +67,15 @@ public class DictDataController { |
| 63 | 67 | // 无需添加权限认证,因为前端全局都需要 |
| 64 | 68 | public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDataList() { |
| 65 | 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 | 73 | @GetMapping("/page") |
| 70 | 74 | @Operation(summary = "/获得字典类型的分页列表") |
| 71 | 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 | 81 | @GetMapping(value = "/get") |
| ... | ... | @@ -78,18 +83,20 @@ public class DictDataController { |
| 78 | 83 | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| 79 | 84 | @PreAuthorize("@ss.hasPermission('system:dict:query')") |
| 80 | 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 | 90 | @GetMapping("/export") |
| 85 | 91 | @Operation(summary = "导出字典数据") |
| 86 | 92 | @PreAuthorize("@ss.hasPermission('system:dict:export')") |
| 87 | 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 | 1 | package cn.iocoder.yudao.module.system.controller.admin.dict; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | |
| 4 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 5 | 7 | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| 6 | 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 | 13 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 10 | 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 | 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 | 18 | import org.springframework.security.access.prepost.PreAuthorize; |
| 15 | 19 | import org.springframework.validation.annotation.Validated; |
| 16 | 20 | import org.springframework.web.bind.annotation.*; |
| ... | ... | @@ -36,16 +40,16 @@ public class DictTypeController { |
| 36 | 40 | @PostMapping("/create") |
| 37 | 41 | @Operation(summary = "创建字典类型") |
| 38 | 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 | 45 | return success(dictTypeId); |
| 42 | 46 | } |
| 43 | 47 | |
| 44 | 48 | @PutMapping("/update") |
| 45 | 49 | @Operation(summary = "修改字典类型") |
| 46 | 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 | 53 | return success(true); |
| 50 | 54 | } |
| 51 | 55 | |
| ... | ... | @@ -58,11 +62,12 @@ public class DictTypeController { |
| 58 | 62 | return success(true); |
| 59 | 63 | } |
| 60 | 64 | |
| 61 | - @Operation(summary = "/获得字典类型的分页列表") | |
| 62 | 65 | @GetMapping("/page") |
| 66 | + @Operation(summary = "获得字典类型的分页列表") | |
| 63 | 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 | 73 | @Operation(summary = "/查询字典类型详细") |
| ... | ... | @@ -70,26 +75,28 @@ public class DictTypeController { |
| 70 | 75 | @GetMapping(value = "/get") |
| 71 | 76 | @PreAuthorize("@ss.hasPermission('system:dict:query')") |
| 72 | 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 | 83 | @Operation(summary = "获得全部字典类型列表", description = "包括开启 + 禁用的字典类型,主要用于前端的下拉选项") |
| 78 | 84 | // 无需添加权限认证,因为前端全局都需要 |
| 79 | 85 | public CommonResult<List<DictTypeSimpleRespVO>> getSimpleDictTypeList() { |
| 80 | 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 | 90 | @Operation(summary = "导出数据类型") |
| 85 | 91 | @GetMapping("/export") |
| 86 | 92 | @PreAuthorize("@ss.hasPermission('system:dict:query')") |
| 87 | 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 | 1 | package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | |
| 3 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 5 | +import cn.iocoder.yudao.framework.common.validation.InEnum; | |
| 4 | 6 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | 7 | import lombok.Data; |
| 6 | 8 | import lombok.EqualsAndHashCode; |
| ... | ... | @@ -21,6 +23,7 @@ public class DictDataPageReqVO extends PageParam { |
| 21 | 23 | private String dictType; |
| 22 | 24 | |
| 23 | 25 | @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") |
| 26 | + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") | |
| 24 | 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 | 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 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | 9 | import lombok.Data; |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.NoArgsConstructor; | |
| 8 | 10 | |
| 9 | 11 | import java.time.LocalDateTime; |
| 10 | 12 | |
| 11 | 13 | @Schema(description = "管理后台 - 字典数据信息 Response VO") |
| 12 | 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 | 18 | @Schema(description = "字典数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 19 | + @ExcelProperty("字典编码") | |
| 19 | 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 | 52 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") |
| 22 | 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 | 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 | 5 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | 6 | import lombok.Data; |
| 5 | 7 | |
| ... | ... | @@ -7,12 +9,12 @@ import javax.validation.constraints.NotBlank; |
| 7 | 9 | import javax.validation.constraints.NotNull; |
| 8 | 10 | import javax.validation.constraints.Size; |
| 9 | 11 | |
| 10 | -/** | |
| 11 | - * 字典数据 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 12 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 13 | - */ | |
| 12 | +@Schema(description = "管理后台 - 字典数据创建/修改 Request VO") | |
| 14 | 13 | @Data |
| 15 | -public class DictDataBaseVO { | |
| 14 | +public class DictDataSaveReqVO { | |
| 15 | + | |
| 16 | + @Schema(description = "字典数据编号", example = "1024") | |
| 17 | + private Long id; | |
| 16 | 18 | |
| 17 | 19 | @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 18 | 20 | @NotNull(message = "显示顺序不能为空") |
| ... | ... | @@ -35,11 +37,12 @@ public class DictDataBaseVO { |
| 35 | 37 | |
| 36 | 38 | @Schema(description = "状态,见 CommonStatusEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 37 | 39 | @NotNull(message = "状态不能为空") |
| 38 | -// @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") | |
| 40 | + @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") | |
| 39 | 41 | private Integer status; |
| 40 | 42 | |
| 41 | 43 | @Schema(description = "颜色类型,default、primary、success、info、warning、danger", example = "default") |
| 42 | 44 | private String colorType; |
| 45 | + | |
| 43 | 46 | @Schema(description = "css 样式", example = "btn-visible") |
| 44 | 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 | 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 | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | 9 | import lombok.Data; |
| 6 | -import lombok.EqualsAndHashCode; | |
| 7 | -import lombok.NoArgsConstructor; | |
| 8 | 10 | |
| 9 | 11 | import java.time.LocalDateTime; |
| 10 | 12 | |
| 11 | 13 | @Schema(description = "管理后台 - 字典类型信息 Response VO") |
| 12 | 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 | 18 | @Schema(description = "字典类型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") |
| 19 | + @ExcelProperty("字典主键") | |
| 19 | 20 | private Long id; |
| 20 | 21 | |
| 22 | + @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") | |
| 23 | + @ExcelProperty("字典名称") | |
| 24 | + private String name; | |
| 25 | + | |
| 21 | 26 | @Schema(description = "字典类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "sys_common_sex") |
| 27 | + @ExcelProperty("字典类型") | |
| 22 | 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 | 38 | @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式") |
| 25 | 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 | 7 | import javax.validation.constraints.NotNull; |
| 8 | 8 | import javax.validation.constraints.Size; |
| 9 | 9 | |
| 10 | -/** | |
| 11 | - * 字典类型 Base VO,提供给添加、修改、详细的子 VO 使用 | |
| 12 | - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 | |
| 13 | - */ | |
| 10 | +@Schema(description = "管理后台 - 字典类型创建/修改 Request VO") | |
| 14 | 11 | @Data |
| 15 | -public class DictTypeBaseVO { | |
| 12 | +public class DictTypeSaveReqVO { | |
| 13 | + | |
| 14 | + @Schema(description = "字典类型编号", example = "1024") | |
| 15 | + private Long id; | |
| 16 | 16 | |
| 17 | 17 | @Schema(description = "字典名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "性别") |
| 18 | 18 | @NotBlank(message = "字典名称不能为空") |
| 19 | 19 | @Size(max = 100, message = "字典类型名称长度不能超过100个字符") |
| 20 | 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 | 27 | @Schema(description = "状态,参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") |
| 23 | 28 | @NotNull(message = "状态不能为空") |
| 24 | 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 | 1 | package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; |
| 2 | 2 | |
| 3 | 3 | import io.swagger.v3.oas.annotations.media.Schema; |
| 4 | -import lombok.AllArgsConstructor; | |
| 5 | 4 | import lombok.Data; |
| 6 | -import lombok.NoArgsConstructor; | |
| 7 | 5 | |
| 8 | 6 | @Schema(description = "管理后台 - 字典类型精简信息 Response VO") |
| 9 | 7 | @Data |
| 10 | -@NoArgsConstructor | |
| 11 | -@AllArgsConstructor | |
| 12 | 8 | public class DictTypeSimpleRespVO { |
| 13 | 9 | |
| 14 | 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 | 1 | package cn.iocoder.yudao.module.system.controller.app.dict; |
| 2 | 2 | |
| 3 | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 4 | 5 | import cn.iocoder.yudao.module.system.controller.app.dict.vo.AppDictDataRespVO; |
| 5 | -import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert; | |
| 6 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 7 | 7 | import cn.iocoder.yudao.module.system.service.dict.DictDataService; |
| 8 | 8 | import io.swagger.v3.oas.annotations.Operation; |
| ... | ... | @@ -33,7 +33,7 @@ public class AppDictDataController { |
| 33 | 33 | @Parameter(name = "type", description = "字典类型", required = true, example = "common_status") |
| 34 | 34 | public CommonResult<List<AppDictDataRespVO>> getDictDataListByType(@RequestParam("type") String type) { |
| 35 | 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 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; |
| 8 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 9 | 8 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| ... | ... | @@ -41,13 +40,6 @@ public interface DictDataMapper extends BaseMapperX<DictDataDO> { |
| 41 | 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 | 43 | default List<DictDataDO> selectListByTypeAndStatus(String dictType, Integer status) { |
| 52 | 44 | return selectList(new LambdaQueryWrapper<DictDataDO>() |
| 53 | 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 | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO; | |
| 7 | 6 | import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO; |
| 8 | 7 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 9 | 8 | import org.apache.ibatis.annotations.Mapper; |
| ... | ... | @@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Param; |
| 11 | 10 | import org.apache.ibatis.annotations.Update; |
| 12 | 11 | |
| 13 | 12 | import java.time.LocalDateTime; |
| 14 | -import java.util.List; | |
| 15 | 13 | |
| 16 | 14 | @Mapper |
| 17 | 15 | public interface DictTypeMapper extends BaseMapperX<DictTypeDO> { |
| ... | ... | @@ -25,14 +23,6 @@ public interface DictTypeMapper extends BaseMapperX<DictTypeDO> { |
| 25 | 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 | 26 | default DictTypeDO selectByType(String type) { |
| 37 | 27 | return selectOne(DictTypeDO::getType, type); |
| 38 | 28 | } |
| ... | ... | @@ -41,8 +31,7 @@ public interface DictTypeMapper extends BaseMapperX<DictTypeDO> { |
| 41 | 31 | return selectOne(DictTypeDO::getName, name); |
| 42 | 32 | } |
| 43 | 33 | |
| 44 | - int deleteById(@Param("id") Long id, @Param("deletedTime") LocalDateTime deletedTime); | |
| 45 | - | |
| 46 | 34 | @Update("UPDATE system_dict_type SET deleted = 1, deleted_time = #{deletedTime} WHERE id = #{id}") |
| 47 | 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 | 1 | package cn.iocoder.yudao.module.system.service.dict; |
| 2 | 2 | |
| 3 | 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 | 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 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 9 | 7 | |
| 10 | 8 | import java.util.Collection; |
| ... | ... | @@ -20,17 +18,17 @@ public interface DictDataService { |
| 20 | 18 | /** |
| 21 | 19 | * 创建字典数据 |
| 22 | 20 | * |
| 23 | - * @param reqVO 字典数据信息 | |
| 21 | + * @param createReqVO 字典数据信息 | |
| 24 | 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 | 47 | /** |
| 50 | 48 | * 获得字典数据分页列表 |
| 51 | 49 | * |
| 52 | - * @param reqVO 分页请求 | |
| 50 | + * @param pageReqVO 分页请求 | |
| 53 | 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 | 4 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 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 | 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 | 10 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 13 | 11 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 14 | 12 | import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; |
| ... | ... | @@ -55,15 +53,8 @@ public class DictDataServiceImpl implements DictDataService { |
| 55 | 53 | } |
| 56 | 54 | |
| 57 | 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 | 60 | @Override |
| ... | ... | @@ -79,23 +70,29 @@ public class DictDataServiceImpl implements DictDataService { |
| 79 | 70 | } |
| 80 | 71 | |
| 81 | 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 | 81 | dictDataMapper.insert(dictData); |
| 89 | 82 | return dictData.getId(); |
| 90 | 83 | } |
| 91 | 84 | |
| 92 | 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 | 96 | dictDataMapper.updateById(updateObj); |
| 100 | 97 | } |
| 101 | 98 | |
| ... | ... | @@ -113,15 +110,6 @@ public class DictDataServiceImpl implements DictDataService { |
| 113 | 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 | 113 | @VisibleForTesting |
| 126 | 114 | public void validateDictDataValueUnique(Long id, String dictType, String value) { |
| 127 | 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 | 1 | package cn.iocoder.yudao.module.system.service.dict; |
| 2 | 2 | |
| 3 | 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 | 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 | 6 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 9 | 7 | |
| 10 | 8 | import java.util.List; |
| ... | ... | @@ -19,17 +17,17 @@ public interface DictTypeService { |
| 19 | 17 | /** |
| 20 | 18 | * 创建字典类型 |
| 21 | 19 | * |
| 22 | - * @param reqVO 字典类型信息 | |
| 20 | + * @param createReqVO 字典类型信息 | |
| 23 | 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 | 39 | /** |
| 42 | 40 | * 获得字典类型分页列表 |
| 43 | 41 | * |
| 44 | - * @param reqVO 分页请求 | |
| 42 | + * @param pageReqVO 分页请求 | |
| 45 | 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 | 3 | import cn.hutool.core.util.StrUtil; |
| 4 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 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 | 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 | 9 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 12 | 10 | import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; |
| 13 | 11 | import com.google.common.annotations.VisibleForTesting; |
| ... | ... | @@ -35,13 +33,8 @@ public class DictTypeServiceImpl implements DictTypeService { |
| 35 | 33 | private DictTypeMapper dictTypeMapper; |
| 36 | 34 | |
| 37 | 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 | 40 | @Override |
| ... | ... | @@ -55,24 +48,30 @@ public class DictTypeServiceImpl implements DictTypeService { |
| 55 | 48 | } |
| 56 | 49 | |
| 57 | 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 | 60 | dictTypeMapper.insert(dictType); |
| 66 | 61 | return dictType.getId(); |
| 67 | 62 | } |
| 68 | 63 | |
| 69 | 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 | 75 | dictTypeMapper.updateById(updateObj); |
| 77 | 76 | } |
| 78 | 77 | |
| ... | ... | @@ -93,15 +92,6 @@ public class DictTypeServiceImpl implements DictTypeService { |
| 93 | 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 | 95 | @VisibleForTesting |
| 106 | 96 | void validateDictTypeNameUnique(Long id, String name) { |
| 107 | 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 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; |
| 6 | 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 | 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 | 9 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; |
| 12 | 10 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 13 | 11 | import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; |
| ... | ... | @@ -92,34 +90,6 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { |
| 92 | 90 | } |
| 93 | 91 | |
| 94 | 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 | 93 | public void testGetDictData() { |
| 124 | 94 | // mock 数据 |
| 125 | 95 | DictDataDO dbDictData = randomDictDataDO(); |
| ... | ... | @@ -136,8 +106,9 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { |
| 136 | 106 | @Test |
| 137 | 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 | 112 | // mock 方法 |
| 142 | 113 | when(dictTypeService.getDictType(eq(reqVO.getDictType()))).thenReturn(randomDictTypeDO(reqVO.getDictType())); |
| 143 | 114 | |
| ... | ... | @@ -147,7 +118,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { |
| 147 | 118 | assertNotNull(dictDataId); |
| 148 | 119 | // 校验记录的属性是否正确 |
| 149 | 120 | DictDataDO dictData = dictDataMapper.selectById(dictDataId); |
| 150 | - assertPojoEquals(reqVO, dictData); | |
| 121 | + assertPojoEquals(reqVO, dictData, "id"); | |
| 151 | 122 | } |
| 152 | 123 | |
| 153 | 124 | @Test |
| ... | ... | @@ -156,7 +127,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { |
| 156 | 127 | DictDataDO dbDictData = randomDictDataDO(); |
| 157 | 128 | dictDataMapper.insert(dbDictData);// @Sql: 先插入出一条存在的数据 |
| 158 | 129 | // 准备参数 |
| 159 | - DictDataUpdateReqVO reqVO = randomPojo(DictDataUpdateReqVO.class, o -> { | |
| 130 | + DictDataSaveReqVO reqVO = randomPojo(DictDataSaveReqVO.class, o -> { | |
| 160 | 131 | o.setId(dbDictData.getId()); // 设置更新的 ID |
| 161 | 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 | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; |
| 6 | 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 | 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 | 9 | import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; |
| 12 | 10 | import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; |
| 13 | 11 | import org.junit.jupiter.api.Test; |
| ... | ... | @@ -75,38 +73,6 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { |
| 75 | 73 | } |
| 76 | 74 | |
| 77 | 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 | 76 | public void testGetDictType_id() { |
| 111 | 77 | // mock 数据 |
| 112 | 78 | DictTypeDO dbDictType = randomDictTypeDO(); |
| ... | ... | @@ -139,8 +105,9 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { |
| 139 | 105 | @Test |
| 140 | 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 | 113 | Long dictTypeId = dictTypeService.createDictType(reqVO); |
| ... | ... | @@ -148,7 +115,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { |
| 148 | 115 | assertNotNull(dictTypeId); |
| 149 | 116 | // 校验记录的属性是否正确 |
| 150 | 117 | DictTypeDO dictType = dictTypeMapper.selectById(dictTypeId); |
| 151 | - assertPojoEquals(reqVO, dictType); | |
| 118 | + assertPojoEquals(reqVO, dictType, "id"); | |
| 152 | 119 | } |
| 153 | 120 | |
| 154 | 121 | @Test |
| ... | ... | @@ -157,7 +124,7 @@ public class DictTypeServiceImplTest extends BaseDbUnitTest { |
| 157 | 124 | DictTypeDO dbDictType = randomDictTypeDO(); |
| 158 | 125 | dictTypeMapper.insert(dbDictType);// @Sql: 先插入出一条存在的数据 |
| 159 | 126 | // 准备参数 |
| 160 | - DictTypeUpdateReqVO reqVO = randomPojo(DictTypeUpdateReqVO.class, o -> { | |
| 127 | + DictTypeSaveReqVO reqVO = randomPojo(DictTypeSaveReqVO.class, o -> { | |
| 161 | 128 | o.setId(dbDictType.getId()); // 设置更新的 ID |
| 162 | 129 | o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); |
| 163 | 130 | }); | ... | ... |