Commit 4c3997b628130df6ca28f0b159f2da4db22d96d9
1 parent
eb3ad700
完成错误码
Showing
19 changed files
with
964 additions
and
0 deletions
src/main/java/cn/iocoder/dashboard/framework/validator/InEnum.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.framework.validator; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.core.IntArrayValuable; | ||
| 4 | + | ||
| 5 | +import javax.validation.Constraint; | ||
| 6 | +import javax.validation.Payload; | ||
| 7 | +import java.lang.annotation.*; | ||
| 8 | + | ||
| 9 | +@Target({ | ||
| 10 | + ElementType.METHOD, | ||
| 11 | + ElementType.FIELD, | ||
| 12 | + ElementType.ANNOTATION_TYPE, | ||
| 13 | + ElementType.CONSTRUCTOR, | ||
| 14 | + ElementType.PARAMETER, | ||
| 15 | + ElementType.TYPE_USE | ||
| 16 | +}) | ||
| 17 | +@Retention(RetentionPolicy.RUNTIME) | ||
| 18 | +@Documented | ||
| 19 | +@Constraint( | ||
| 20 | + validatedBy = InEnumValidator.class | ||
| 21 | +) | ||
| 22 | +public @interface InEnum { | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * @return 实现 EnumValuable 接口的 | ||
| 26 | + */ | ||
| 27 | + Class<? extends IntArrayValuable> value(); | ||
| 28 | + | ||
| 29 | + String message() default "必须在指定范围 {value}"; | ||
| 30 | + | ||
| 31 | + Class<?>[] groups() default {}; | ||
| 32 | + | ||
| 33 | + Class<? extends Payload>[] payload() default {}; | ||
| 34 | + | ||
| 35 | +} | ||
| 0 | \ No newline at end of file | 36 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/framework/validator/InEnumValidator.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.framework.validator; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.core.IntArrayValuable; | ||
| 4 | + | ||
| 5 | +import javax.validation.ConstraintValidator; | ||
| 6 | +import javax.validation.ConstraintValidatorContext; | ||
| 7 | +import java.util.Arrays; | ||
| 8 | +import java.util.Collections; | ||
| 9 | +import java.util.List; | ||
| 10 | +import java.util.stream.Collectors; | ||
| 11 | + | ||
| 12 | +public class InEnumValidator implements ConstraintValidator<InEnum, Integer> { | ||
| 13 | + | ||
| 14 | + private List<Integer> values; | ||
| 15 | + | ||
| 16 | + @Override | ||
| 17 | + public void initialize(InEnum annotation) { | ||
| 18 | + IntArrayValuable[] values = annotation.value().getEnumConstants(); | ||
| 19 | + if (values.length == 0) { | ||
| 20 | + this.values = Collections.emptyList(); | ||
| 21 | + } else { | ||
| 22 | + this.values = Arrays.stream(values[0].array()).boxed().collect(Collectors.toList()); | ||
| 23 | + } | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + @Override | ||
| 27 | + public boolean isValid(Integer value, ConstraintValidatorContext context) { | ||
| 28 | + // 为空时,默认不校验,即认为通过 | ||
| 29 | + if (value == null) { | ||
| 30 | + return true; | ||
| 31 | + } | ||
| 32 | + // 校验通过 | ||
| 33 | + if (values.contains(value)) { | ||
| 34 | + return true; | ||
| 35 | + } | ||
| 36 | + // 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值) | ||
| 37 | + context.disableDefaultConstraintViolation(); // 禁用默认的 message 的值 | ||
| 38 | + context.buildConstraintViolationWithTemplate(context.getDefaultConstraintMessageTemplate() | ||
| 39 | + .replaceAll("\\{value}", values.toString())).addConstraintViolation(); // 重新添加错误提示语句 | ||
| 40 | + return false; | ||
| 41 | + } | ||
| 42 | + | ||
| 43 | +} | ||
| 44 | + |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/ErrorCodeController.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.CommonResult; | ||
| 4 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 5 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO; | ||
| 6 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCreateDTO; | ||
| 7 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO; | ||
| 9 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; | ||
| 10 | +import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert; | ||
| 11 | +import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService; | ||
| 12 | +import cn.iocoder.dashboard.modules.system.service.errorcode.bo.ErrorCodeBO; | ||
| 13 | +import io.swagger.annotations.Api; | ||
| 14 | +import io.swagger.annotations.ApiOperation; | ||
| 15 | +import org.springframework.web.bind.annotation.*; | ||
| 16 | + | ||
| 17 | +import javax.annotation.Resource; | ||
| 18 | +import javax.validation.constraints.NotNull; | ||
| 19 | +import java.util.Date; | ||
| 20 | +import java.util.List; | ||
| 21 | + | ||
| 22 | +import static cn.iocoder.dashboard.common.pojo.CommonResult.success; | ||
| 23 | + | ||
| 24 | +@Api(tags = "错误码") | ||
| 25 | +@RestController | ||
| 26 | +@RequestMapping("/system/error-code") | ||
| 27 | +public class ErrorCodeController { | ||
| 28 | + | ||
| 29 | + @Resource | ||
| 30 | + private ErrorCodeService errorCodeService; | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 获得指定分组下的错误码列表 | ||
| 34 | + * | ||
| 35 | + * @param group 错误码分组 | ||
| 36 | + * @param minUpdateTime 最小更新时间,允许为空。 | ||
| 37 | + * 通过该参数,我们可以增量获取超过 minUpdateTime 时间的错误码 | ||
| 38 | + * @return 错误码列表 | ||
| 39 | + */ | ||
| 40 | + @ApiOperation("获取指定分组下的状态码") | ||
| 41 | + @GetMapping("/list-group") | ||
| 42 | + public CommonResult<List<ErrorCodeVO>> listErrorCodes(@NotNull(message = "错误码分组不能为空") String group, Date minUpdateTime) { | ||
| 43 | + return success(ErrorCodeConvert.INSTANCE.convertList02(errorCodeService.listErrorCodes(group, minUpdateTime))); | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + /** | ||
| 47 | + * 自动生成错误码 | ||
| 48 | + * | ||
| 49 | + * @param autoGenerateDTOs 自动生成信息 DTO | ||
| 50 | + */ | ||
| 51 | + @ApiOperation("自动生成错误码") | ||
| 52 | + @PostMapping("/generate") | ||
| 53 | + public CommonResult<Boolean> autoGenerateErrorCodes(List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs) { | ||
| 54 | + errorCodeService.autoGenerateErrorCodes(ErrorCodeConvert.INSTANCE.convertList03(autoGenerateDTOs)); | ||
| 55 | + return success(Boolean.TRUE); | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + | ||
| 59 | + /** | ||
| 60 | + * 创建错误码 | ||
| 61 | + * | ||
| 62 | + * @param createDTO 创建错误码 DTO | ||
| 63 | + * @return 错误码编号 | ||
| 64 | + */ | ||
| 65 | + @ApiOperation("创建错误码") | ||
| 66 | + @PostMapping("/create") | ||
| 67 | + public CommonResult<Integer> createErrorCode(ErrorCodeCreateDTO createDTO) { | ||
| 68 | + return success(errorCodeService.createErrorCode(ErrorCodeConvert.INSTANCE.convert(createDTO)).getId()); | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + /** | ||
| 72 | + * 更新错误码 | ||
| 73 | + * | ||
| 74 | + * @param updateDTO 更新错误码 DTO | ||
| 75 | + */ | ||
| 76 | + @ApiOperation("更新错误码") | ||
| 77 | + @PatchMapping("/update") | ||
| 78 | + public CommonResult<Boolean> updateErrorCode(ErrorCodeUpdateDTO updateDTO) { | ||
| 79 | + errorCodeService.updateErrorCode(ErrorCodeConvert.INSTANCE.convert(updateDTO)); | ||
| 80 | + return success(Boolean.TRUE); | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + /** | ||
| 84 | + * 删除错误码 | ||
| 85 | + * | ||
| 86 | + * @param errorCodeId 错误码编号 | ||
| 87 | + */ | ||
| 88 | + @ApiOperation("删除错误码") | ||
| 89 | + @DeleteMapping("delete") | ||
| 90 | + public CommonResult<Boolean> deleteErrorCode(Integer errorCodeId) { | ||
| 91 | + errorCodeService.deleteErrorCode(errorCodeId); | ||
| 92 | + return success(Boolean.TRUE); | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + /** | ||
| 96 | + * 获得错误码 | ||
| 97 | + * | ||
| 98 | + * @param errorCodeId 错误码编号 | ||
| 99 | + * @return 错误码 | ||
| 100 | + */ | ||
| 101 | + @ApiOperation("获取错误码") | ||
| 102 | + @GetMapping("/query") | ||
| 103 | + public CommonResult<ErrorCodeVO> getErrorCode(Integer errorCodeId) { | ||
| 104 | + return success(ErrorCodeConvert.INSTANCE.convert(errorCodeService.getErrorCode(errorCodeId))); | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + /** | ||
| 108 | + * 获得错误码列表 | ||
| 109 | + * | ||
| 110 | + * @param errorCodeIds 错误码编号列表 | ||
| 111 | + * @return 错误码列表 | ||
| 112 | + */ | ||
| 113 | + @ApiOperation("获取错误码列表") | ||
| 114 | + @GetMapping("/query-ids") | ||
| 115 | + public CommonResult<List<ErrorCodeVO>> listErrorCodes(List<Integer> errorCodeIds) { | ||
| 116 | + return success(ErrorCodeConvert.INSTANCE.convertList02(errorCodeService.listErrorCodes(errorCodeIds))); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + /** | ||
| 120 | + * 获得错误码分页 | ||
| 121 | + * | ||
| 122 | + * @param pageDTO 错误码分页查询 | ||
| 123 | + * @return 错误码分页结果 | ||
| 124 | + */ | ||
| 125 | + @ApiOperation("获取错误码分页列表") | ||
| 126 | + @GetMapping("/page") | ||
| 127 | + public CommonResult<PageResult<ErrorCodeVO>> pageErrorCode(ErrorCodePageDTO pageDTO) { | ||
| 128 | + final PageResult<ErrorCodeBO> pageResult = errorCodeService.pageErrorCode(ErrorCodeConvert.INSTANCE.convert(pageDTO)); | ||
| 129 | + return success(ErrorCodeConvert.INSTANCE.convertPage(pageResult)); | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + | ||
| 133 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/dto/ErrorCodeAutoGenerateDTO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode.dto; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | +import java.io.Serializable; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 错误码自动生成 DTO | ||
| 12 | + */ | ||
| 13 | +@Data | ||
| 14 | +@Accessors(chain = true) | ||
| 15 | +public class ErrorCodeAutoGenerateDTO implements Serializable { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 错误码编码 | ||
| 19 | + */ | ||
| 20 | + @NotNull(message = "错误码编码不能为空") | ||
| 21 | + private Integer code; | ||
| 22 | + /** | ||
| 23 | + * 错误码错误提示 | ||
| 24 | + */ | ||
| 25 | + @NotEmpty(message = "错误码错误提示不能为空") | ||
| 26 | + private String message; | ||
| 27 | + /** | ||
| 28 | + * 错误码分组 | ||
| 29 | + */ | ||
| 30 | + @NotNull(message = "错误码分组不能为空") | ||
| 31 | + private String group; | ||
| 32 | + | ||
| 33 | +} | ||
| 0 | \ No newline at end of file | 34 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/dto/ErrorCodeCreateDTO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode.dto; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.validator.InEnum; | ||
| 4 | +import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.experimental.Accessors; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotEmpty; | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | +import java.io.Serializable; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 错误码创建 DTO | ||
| 14 | + */ | ||
| 15 | +@Data | ||
| 16 | +@Accessors(chain = true) | ||
| 17 | +public class ErrorCodeCreateDTO implements Serializable { | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * 错误码编码 | ||
| 21 | + */ | ||
| 22 | + @NotNull(message = "错误码编码不能为空") | ||
| 23 | + private Integer code; | ||
| 24 | + /** | ||
| 25 | + * 错误码错误提示 | ||
| 26 | + */ | ||
| 27 | + @NotEmpty(message = "错误码错误提示不能为空") | ||
| 28 | + private String message; | ||
| 29 | + /** | ||
| 30 | + * 错误码类型 | ||
| 31 | + */ | ||
| 32 | + @NotNull(message = "错误码类型不能为空") | ||
| 33 | + @InEnum(value = ErrorCodeTypeEnum.class, message = "错误码类型必须是 {value}") | ||
| 34 | + private Integer type; | ||
| 35 | + /** | ||
| 36 | + * 错误码分组 | ||
| 37 | + */ | ||
| 38 | + @NotNull(message = "错误码分组不能为空") | ||
| 39 | + private String group; | ||
| 40 | + /** | ||
| 41 | + * 错误码备注 | ||
| 42 | + */ | ||
| 43 | + private String memo; | ||
| 44 | + | ||
| 45 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/dto/ErrorCodePageDTO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode.dto; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageParam; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.EqualsAndHashCode; | ||
| 6 | +import lombok.experimental.Accessors; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 错误码分页 DTO | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +@EqualsAndHashCode(callSuper = true) | ||
| 13 | +@Accessors(chain = true) | ||
| 14 | +public class ErrorCodePageDTO extends PageParam { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 错误码编码 | ||
| 18 | + */ | ||
| 19 | + private Integer code; | ||
| 20 | + /** | ||
| 21 | + * 错误码错误提示 | ||
| 22 | + * | ||
| 23 | + * 模糊匹配 | ||
| 24 | + */ | ||
| 25 | + private String message; | ||
| 26 | + /** | ||
| 27 | + * 错误码分组 | ||
| 28 | + * | ||
| 29 | + * 模糊匹配 | ||
| 30 | + */ | ||
| 31 | + private String group; | ||
| 32 | + | ||
| 33 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/dto/ErrorCodeUpdateDTO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode.dto; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.validator.InEnum; | ||
| 4 | +import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import lombok.experimental.Accessors; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotNull; | ||
| 9 | +import java.io.Serializable; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 错误码更新 DTO | ||
| 13 | + */ | ||
| 14 | +@Data | ||
| 15 | +@Accessors(chain = true) | ||
| 16 | +public class ErrorCodeUpdateDTO implements Serializable { | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 错误码编号 | ||
| 20 | + */ | ||
| 21 | + @NotNull(message = "错误码编号不能为空") | ||
| 22 | + private Integer id; | ||
| 23 | + /** | ||
| 24 | + * 错误码编码 | ||
| 25 | + */ | ||
| 26 | + @NotNull(message = "错误码编码不能为空") | ||
| 27 | + private Integer code; | ||
| 28 | + /** | ||
| 29 | + * 错误码错误提示 | ||
| 30 | + */ | ||
| 31 | + private String message; | ||
| 32 | + /** | ||
| 33 | + * 错误码类型 | ||
| 34 | + */ | ||
| 35 | + @InEnum(value = ErrorCodeTypeEnum.class, message = "错误码类型必须是 {value}") | ||
| 36 | + private Integer type; | ||
| 37 | + /** | ||
| 38 | + * 错误码分组 | ||
| 39 | + */ | ||
| 40 | + private String group; | ||
| 41 | + /** | ||
| 42 | + * 错误码备注 | ||
| 43 | + */ | ||
| 44 | + private String memo; | ||
| 45 | + | ||
| 46 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/controller/errorcode/vo/ErrorCodeVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.errorcode.vo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import java.io.Serializable; | ||
| 7 | +import java.util.Date; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 错误码 | ||
| 11 | + */ | ||
| 12 | +@Data | ||
| 13 | +@Accessors(chain = true) | ||
| 14 | +public class ErrorCodeVO implements Serializable { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 错误码编号 | ||
| 18 | + */ | ||
| 19 | + private Integer id; | ||
| 20 | + /** | ||
| 21 | + * 错误码编码 | ||
| 22 | + */ | ||
| 23 | + private Integer code; | ||
| 24 | + /** | ||
| 25 | + * 错误码错误提示 | ||
| 26 | + */ | ||
| 27 | + private String message; | ||
| 28 | + /** | ||
| 29 | + * 错误码类型 | ||
| 30 | + */ | ||
| 31 | + private Integer type; | ||
| 32 | + /** | ||
| 33 | + * 错误码分组 | ||
| 34 | + */ | ||
| 35 | + private String group; | ||
| 36 | + /** | ||
| 37 | + * 错误码备注 | ||
| 38 | + */ | ||
| 39 | + private String memo; | ||
| 40 | + /** | ||
| 41 | + * 创建时间 | ||
| 42 | + */ | ||
| 43 | + private Date createTime; | ||
| 44 | + /** | ||
| 45 | + * 最后更新时间 | ||
| 46 | + */ | ||
| 47 | + private Date updateTime; | ||
| 48 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/convert/errorcode/ErrorCodeConvert.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.convert.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 4 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO; | ||
| 5 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCreateDTO; | ||
| 6 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO; | ||
| 7 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; | ||
| 9 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; | ||
| 10 | +import cn.iocoder.dashboard.modules.system.service.errorcode.bo.*; | ||
| 11 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 12 | +import org.mapstruct.Mapper; | ||
| 13 | +import org.mapstruct.Mapping; | ||
| 14 | +import org.mapstruct.factory.Mappers; | ||
| 15 | + | ||
| 16 | +import java.util.List; | ||
| 17 | + | ||
| 18 | +@Mapper | ||
| 19 | +public interface ErrorCodeConvert { | ||
| 20 | + | ||
| 21 | + ErrorCodeConvert INSTANCE = Mappers.getMapper(ErrorCodeConvert.class); | ||
| 22 | + | ||
| 23 | + ErrorCodeDO convert(ErrorCodeCreateBO bean); | ||
| 24 | + | ||
| 25 | + ErrorCodeBO convert(ErrorCodeDO bean); | ||
| 26 | + | ||
| 27 | + List<ErrorCodeBO> convertList(List<ErrorCodeDO> list); | ||
| 28 | + | ||
| 29 | + @Mapping(source = "records", target = "list") | ||
| 30 | + PageResult<ErrorCodeBO> convertPage(IPage<ErrorCodeDO> page); | ||
| 31 | + | ||
| 32 | + ErrorCodeDO convert(ErrorCodeUpdateBO bean); | ||
| 33 | + | ||
| 34 | + ErrorCodeCreateBO convert(ErrorCodeCreateDTO bean); | ||
| 35 | + | ||
| 36 | + ErrorCodeUpdateBO convert(ErrorCodeUpdateDTO bean); | ||
| 37 | + | ||
| 38 | + ErrorCodeVO convert(ErrorCodeBO bean); | ||
| 39 | + | ||
| 40 | + List<ErrorCodeVO> convertList02(List<ErrorCodeBO> list); | ||
| 41 | + | ||
| 42 | + PageResult<ErrorCodeVO> convertPage(PageResult<ErrorCodeBO> page); | ||
| 43 | + | ||
| 44 | + ErrorCodePageBO convert(ErrorCodePageDTO bean); | ||
| 45 | + | ||
| 46 | + ErrorCodeDO convert(ErrorCodeAutoGenerateBO bean); | ||
| 47 | + | ||
| 48 | + List<ErrorCodeAutoGenerateBO> convertList03(List<ErrorCodeAutoGenerateDTO> list); | ||
| 49 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/errorcode/ErrorCodeDO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum; | ||
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | ||
| 5 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
| 6 | +import lombok.Data; | ||
| 7 | +import lombok.EqualsAndHashCode; | ||
| 8 | +import lombok.experimental.Accessors; | ||
| 9 | + | ||
| 10 | +@Data | ||
| 11 | +@TableName(value = "system_error_code") | ||
| 12 | +@EqualsAndHashCode() | ||
| 13 | +@Accessors(chain = true) | ||
| 14 | +public class ErrorCodeDO { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 错误码编号 | ||
| 18 | + */ | ||
| 19 | + private Integer id; | ||
| 20 | + /** | ||
| 21 | + * 错误码编码 | ||
| 22 | + */ | ||
| 23 | + private Integer code; | ||
| 24 | + /** | ||
| 25 | + * 错误码错误提示 | ||
| 26 | + */ | ||
| 27 | + private String message; | ||
| 28 | + /** | ||
| 29 | + * 错误码类型 | ||
| 30 | + * | ||
| 31 | + * 外键 {@link ErrorCodeTypeEnum} | ||
| 32 | + */ | ||
| 33 | + private Integer type; | ||
| 34 | + /** | ||
| 35 | + * 错误码分组 | ||
| 36 | + * | ||
| 37 | + * 一般情况下,可以采用应用名 | ||
| 38 | + */ | ||
| 39 | + @TableField("`group`") // 避免和数据库关键字冲突 | ||
| 40 | + private String group; | ||
| 41 | + /** | ||
| 42 | + * 错误码备注 | ||
| 43 | + */ | ||
| 44 | + private String memo; | ||
| 45 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/errorcode/ErrorCodeMapper.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.dal.mysql.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | ||
| 4 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; | ||
| 5 | +import cn.iocoder.dashboard.modules.system.service.errorcode.bo.ErrorCodePageBO; | ||
| 6 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 7 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
| 8 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 9 | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
| 10 | +import org.apache.ibatis.annotations.Mapper; | ||
| 11 | + | ||
| 12 | +import java.util.Collection; | ||
| 13 | +import java.util.Date; | ||
| 14 | +import java.util.List; | ||
| 15 | + | ||
| 16 | +@Mapper | ||
| 17 | +public interface ErrorCodeMapper extends BaseMapper<ErrorCodeDO> { | ||
| 18 | + default IPage<ErrorCodeDO> selectPage(ErrorCodePageBO pageBO) { | ||
| 19 | + return selectPage(new Page<>(pageBO.getPageNo(), pageBO.getPageSize()), | ||
| 20 | + new QueryWrapperX<ErrorCodeDO>().likeIfPresent("`group`", pageBO.getGroup()) | ||
| 21 | + .eqIfPresent("code", pageBO.getCode()).likeIfPresent("message", pageBO.getMessage())); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + default List<ErrorCodeDO> selectListByCodes(Collection<Integer> codes) { | ||
| 25 | + return selectList(new QueryWrapper<ErrorCodeDO>().in("code", codes)); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + default ErrorCodeDO selectByCode(Integer code) { | ||
| 29 | + return selectOne(new QueryWrapper<ErrorCodeDO>().eq("code", code)); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + default List<ErrorCodeDO> selectListByGroup(String group, Date minUpdateTime) { | ||
| 33 | + return selectList(new QueryWrapperX<ErrorCodeDO>().eq("`group`", group) | ||
| 34 | + .gtIfPresent("update_time", minUpdateTime)); | ||
| 35 | + } | ||
| 36 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java
| @@ -75,4 +75,9 @@ public interface SysErrorCodeConstants { | @@ -75,4 +75,9 @@ public interface SysErrorCodeConstants { | ||
| 75 | // ========== 文件 1002009000 ========== | 75 | // ========== 文件 1002009000 ========== |
| 76 | ErrorCode FILE_PATH_EXISTS = new ErrorCode(1002009001, "文件路径已经存在"); | 76 | ErrorCode FILE_PATH_EXISTS = new ErrorCode(1002009001, "文件路径已经存在"); |
| 77 | 77 | ||
| 78 | + // ========== 错误码模块 1002009000 ========== | ||
| 79 | + ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002009000, "错误码不存在"); | ||
| 80 | + ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002009001, "已经存在编码为【{}}】的错误码"); | ||
| 81 | + ErrorCode ERROR_CAN_NOT_UPDATE_SYSTEM_TYPE_ERROR = new ErrorCode(1002004003, "不能修改类型为系统内置的错误码"); | ||
| 82 | + | ||
| 78 | } | 83 | } |
src/main/java/cn/iocoder/dashboard/modules/system/enums/errorcode/ErrorCodeTypeEnum.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.enums.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.core.IntArrayValuable; | ||
| 4 | + | ||
| 5 | +import java.util.Arrays; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * @author dylan | ||
| 9 | + */ | ||
| 10 | + | ||
| 11 | +public enum ErrorCodeTypeEnum implements IntArrayValuable { | ||
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 自动生成 | ||
| 15 | + */ | ||
| 16 | + AUTO_GENERATION(1), | ||
| 17 | + /** | ||
| 18 | + * 手动编辑 | ||
| 19 | + */ | ||
| 20 | + MANUAL_OPERATION(2); | ||
| 21 | + | ||
| 22 | + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(ErrorCodeTypeEnum::getType).toArray(); | ||
| 23 | + | ||
| 24 | + private final Integer type; | ||
| 25 | + | ||
| 26 | + ErrorCodeTypeEnum(Integer type) { | ||
| 27 | + this.type = type; | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + public Integer getType() { | ||
| 31 | + return type; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + @Override | ||
| 35 | + public int[] array() { | ||
| 36 | + return ARRAYS; | ||
| 37 | + } | ||
| 38 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/ErrorCodeService.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | ||
| 5 | +import cn.iocoder.dashboard.common.pojo.PageResult; | ||
| 6 | +import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert; | ||
| 7 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.dal.mysql.errorcode.ErrorCodeMapper; | ||
| 9 | +import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum; | ||
| 10 | +import cn.iocoder.dashboard.modules.system.service.errorcode.bo.*; | ||
| 11 | +import cn.iocoder.dashboard.util.collection.CollectionUtils; | ||
| 12 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
| 13 | +import lombok.extern.slf4j.Slf4j; | ||
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 15 | +import org.springframework.stereotype.Service; | ||
| 16 | +import org.springframework.transaction.annotation.Transactional; | ||
| 17 | +import org.springframework.validation.annotation.Validated; | ||
| 18 | + | ||
| 19 | +import javax.validation.Valid; | ||
| 20 | +import java.util.Date; | ||
| 21 | +import java.util.List; | ||
| 22 | +import java.util.Map; | ||
| 23 | + | ||
| 24 | +import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.ERROR_CODE_DUPLICATE; | ||
| 25 | +import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.ERROR_CODE_NOT_EXISTS; | ||
| 26 | + | ||
| 27 | +/** | ||
| 28 | + * 错误码 Service | ||
| 29 | + */ | ||
| 30 | +@Slf4j | ||
| 31 | +@Validated | ||
| 32 | +@Service | ||
| 33 | +public class ErrorCodeService { | ||
| 34 | + | ||
| 35 | + @Autowired | ||
| 36 | + ErrorCodeMapper errorCodeMapper; | ||
| 37 | + | ||
| 38 | + /** | ||
| 39 | + * 创建错误码 | ||
| 40 | + * | ||
| 41 | + * @param createBO 创建错误码 BO | ||
| 42 | + * @return 错误码 | ||
| 43 | + */ | ||
| 44 | + public ErrorCodeBO createErrorCode(@Valid ErrorCodeCreateBO createBO) { | ||
| 45 | + checkDuplicateErrorCode(createBO.getCode(), null); | ||
| 46 | + // 插入到数据库 | ||
| 47 | + ErrorCodeDO errorCodeDO = ErrorCodeConvert.INSTANCE.convert(createBO); | ||
| 48 | + errorCodeMapper.insert(errorCodeDO); | ||
| 49 | + // 返回 | ||
| 50 | + return ErrorCodeConvert.INSTANCE.convert(errorCodeDO); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + /** | ||
| 54 | + * 更新错误码 | ||
| 55 | + * | ||
| 56 | + * @param updateBO 更新错误码 BO | ||
| 57 | + */ | ||
| 58 | + public void updateErrorCode(@Valid ErrorCodeUpdateBO updateBO) { | ||
| 59 | + checkDuplicateErrorCode(updateBO.getCode(), updateBO.getId()); | ||
| 60 | + // 校验更新的错误码是否存在 | ||
| 61 | + if (errorCodeMapper.selectById(updateBO.getId()) == null) { | ||
| 62 | + throw ServiceExceptionUtil.exception(ERROR_CODE_NOT_EXISTS); | ||
| 63 | + } | ||
| 64 | + // 更新到数据库 | ||
| 65 | + ErrorCodeDO updateObject = ErrorCodeConvert.INSTANCE.convert(updateBO); | ||
| 66 | + errorCodeMapper.updateById(updateObject); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + @Transactional | ||
| 70 | + public void autoGenerateErrorCodes(@Valid List<ErrorCodeAutoGenerateBO> autoGenerateBOs) { | ||
| 71 | + if (CollUtil.isEmpty(autoGenerateBOs)) { | ||
| 72 | + return; | ||
| 73 | + } | ||
| 74 | + List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByCodes( | ||
| 75 | + CollectionUtils.convertSet(autoGenerateBOs, ErrorCodeAutoGenerateBO::getCode)); | ||
| 76 | + Map<Integer, ErrorCodeDO> errorCodeDOMap = CollectionUtils.convertMap(errorCodeDOs, ErrorCodeDO::getCode); | ||
| 77 | + // 遍历 autoGenerateBOs 数组,逐个插入或更新。考虑到每次量级不大,就不走批量了 | ||
| 78 | + autoGenerateBOs.forEach(autoGenerateBO -> { | ||
| 79 | + ErrorCodeDO errorCodeDO = errorCodeDOMap.get(autoGenerateBO.getCode()); | ||
| 80 | + // 不存在,则进行新增 | ||
| 81 | + if (errorCodeDO == null) { | ||
| 82 | + errorCodeDO = ErrorCodeConvert.INSTANCE.convert(autoGenerateBO) | ||
| 83 | + .setType(ErrorCodeTypeEnum.AUTO_GENERATION.getType()); | ||
| 84 | + errorCodeMapper.insert(errorCodeDO); | ||
| 85 | + return; | ||
| 86 | + } | ||
| 87 | + // 存在,则进行更新。更新有三个前置条件: | ||
| 88 | + // 条件 1. 只更新自动生成的错误码,即 Type 为 ErrorCodeTypeEnum.AUTO_GENERATION | ||
| 89 | + if (!ErrorCodeTypeEnum.AUTO_GENERATION.getType().equals(errorCodeDO.getType())) { | ||
| 90 | + return; | ||
| 91 | + } | ||
| 92 | + // 条件 2. 分组 group 必须匹配,避免存在错误码冲突的情况 | ||
| 93 | + if (!autoGenerateBO.getGroup().equals(errorCodeDO.getGroup())) { | ||
| 94 | + log.error("[autoGenerateErrorCodes][自动创建({}/{}) 错误码失败,数据库中已经存在({}/{})]", | ||
| 95 | + autoGenerateBO.getCode(), autoGenerateBO.getGroup(), | ||
| 96 | + errorCodeDO.getCode(), errorCodeDO.getGroup()); | ||
| 97 | + return; | ||
| 98 | + } | ||
| 99 | + // 条件 3. 错误提示语存在差异 | ||
| 100 | + if (autoGenerateBO.getMessage().equals(errorCodeDO.getMessage())) { | ||
| 101 | + return; | ||
| 102 | + } | ||
| 103 | + // 最终匹配,进行更新 | ||
| 104 | + errorCodeMapper.updateById(new ErrorCodeDO().setId(errorCodeDO.getId()).setMessage(autoGenerateBO.getMessage())); | ||
| 105 | + }); | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + /** | ||
| 109 | + * 删除错误码 | ||
| 110 | + * | ||
| 111 | + * @param errorCodeId 错误码编号 | ||
| 112 | + */ | ||
| 113 | + public void deleteErrorCode(Integer errorCodeId) { | ||
| 114 | + // 校验删除的错误码是否存在 | ||
| 115 | + if (errorCodeMapper.selectById(errorCodeId) == null) { | ||
| 116 | + throw ServiceExceptionUtil.exception(ERROR_CODE_NOT_EXISTS); | ||
| 117 | + } | ||
| 118 | + // 标记删除 | ||
| 119 | + errorCodeMapper.deleteById(errorCodeId); | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + /** | ||
| 123 | + * 获得错误码 | ||
| 124 | + * | ||
| 125 | + * @param errorCodeId 错误码编号 | ||
| 126 | + * @return 错误码 | ||
| 127 | + */ | ||
| 128 | + public ErrorCodeBO getErrorCode(Integer errorCodeId) { | ||
| 129 | + ErrorCodeDO errorCodeDO = errorCodeMapper.selectById(errorCodeId); | ||
| 130 | + return ErrorCodeConvert.INSTANCE.convert(errorCodeDO); | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + /** | ||
| 134 | + * 获得错误码列表 | ||
| 135 | + * | ||
| 136 | + * @param errorCodeIds 错误码编号列表 | ||
| 137 | + * @return 错误码列表 | ||
| 138 | + */ | ||
| 139 | + public List<ErrorCodeBO> listErrorCodes(List<Integer> errorCodeIds) { | ||
| 140 | + List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectBatchIds(errorCodeIds); | ||
| 141 | + return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs); | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + /** | ||
| 145 | + * 获得错误码分页 | ||
| 146 | + * | ||
| 147 | + * @param pageBO 错误码分页查询 | ||
| 148 | + * @return 错误码分页结果 | ||
| 149 | + */ | ||
| 150 | + public PageResult<ErrorCodeBO> pageErrorCode(ErrorCodePageBO pageBO) { | ||
| 151 | + IPage<ErrorCodeDO> errorCodeDOPage = errorCodeMapper.selectPage(pageBO); | ||
| 152 | + return ErrorCodeConvert.INSTANCE.convertPage(errorCodeDOPage); | ||
| 153 | + } | ||
| 154 | + | ||
| 155 | + /** | ||
| 156 | + * 校验错误码的唯一字段是否重复 | ||
| 157 | + * | ||
| 158 | + * 是否存在相同编码的错误码 | ||
| 159 | + * | ||
| 160 | + * @param code 错误码编码 | ||
| 161 | + * @param id 错误码编号 | ||
| 162 | + */ | ||
| 163 | + private void checkDuplicateErrorCode(Integer code, Integer id) { | ||
| 164 | + ErrorCodeDO errorCodeDO = errorCodeMapper.selectByCode(code); | ||
| 165 | + if (errorCodeDO == null) { | ||
| 166 | + return; | ||
| 167 | + } | ||
| 168 | + // 如果 id 为空,说明不用比较是否为相同 id 的错误码 | ||
| 169 | + if (id == null) { | ||
| 170 | + throw ServiceExceptionUtil.exception(ERROR_CODE_DUPLICATE); | ||
| 171 | + } | ||
| 172 | + if (!errorCodeDO.getId().equals(id)) { | ||
| 173 | + throw ServiceExceptionUtil.exception(ERROR_CODE_DUPLICATE); | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + public List<ErrorCodeBO> listErrorCodes(String group, Date minUpdateTime) { | ||
| 178 | + List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByGroup(group, minUpdateTime); | ||
| 179 | + return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs); | ||
| 180 | + } | ||
| 181 | + | ||
| 182 | +} | ||
| 183 | + |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/bo/ErrorCodeAutoGenerateBO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode.bo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | +import java.io.Serializable; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 错误码自动生成 BO | ||
| 12 | + */ | ||
| 13 | +@Data | ||
| 14 | +@Accessors(chain = true) | ||
| 15 | +public class ErrorCodeAutoGenerateBO implements Serializable { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 错误码编码 | ||
| 19 | + */ | ||
| 20 | + @NotNull(message = "错误码编码不能为空") | ||
| 21 | + private Integer code; | ||
| 22 | + /** | ||
| 23 | + * 错误码错误提示 | ||
| 24 | + */ | ||
| 25 | + @NotEmpty(message = "错误码错误提示不能为空") | ||
| 26 | + private String message; | ||
| 27 | + /** | ||
| 28 | + * 错误码分组 | ||
| 29 | + */ | ||
| 30 | + @NotNull(message = "错误码分组不能为空") | ||
| 31 | + private String group; | ||
| 32 | + | ||
| 33 | +} | ||
| 0 | \ No newline at end of file | 34 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/bo/ErrorCodeBO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode.bo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import java.util.Date; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 错误码 BO | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +@Accessors(chain = true) | ||
| 13 | +public class ErrorCodeBO { | ||
| 14 | + | ||
| 15 | + /** | ||
| 16 | + * 错误码编号 | ||
| 17 | + */ | ||
| 18 | + private Integer id; | ||
| 19 | + /** | ||
| 20 | + * 错误码编码 | ||
| 21 | + */ | ||
| 22 | + private Integer code; | ||
| 23 | + /** | ||
| 24 | + * 错误码错误提示 | ||
| 25 | + */ | ||
| 26 | + private String message; | ||
| 27 | + /** | ||
| 28 | + * 错误码类型 | ||
| 29 | + */ | ||
| 30 | + private Integer type; | ||
| 31 | + /** | ||
| 32 | + * 错误码分组 | ||
| 33 | + */ | ||
| 34 | + private String group; | ||
| 35 | + /** | ||
| 36 | + * 错误码备注 | ||
| 37 | + */ | ||
| 38 | + private String memo; | ||
| 39 | + /** | ||
| 40 | + * 创建时间 | ||
| 41 | + */ | ||
| 42 | + private Date createTime; | ||
| 43 | + /** | ||
| 44 | + * 最后更新时间 | ||
| 45 | + */ | ||
| 46 | + private Date updateTime; | ||
| 47 | + | ||
| 48 | +} | ||
| 0 | \ No newline at end of file | 49 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/bo/ErrorCodeCreateBO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode.bo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | + | ||
| 9 | +@Data | ||
| 10 | +@Accessors(chain = true) | ||
| 11 | +public class ErrorCodeCreateBO { | ||
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 错误码编码 | ||
| 15 | + */ | ||
| 16 | + @NotNull(message = "错误码编码不能为空") | ||
| 17 | + private Integer code; | ||
| 18 | + /** | ||
| 19 | + * 错误码错误提示 | ||
| 20 | + */ | ||
| 21 | + @NotEmpty(message = "错误码错误提示不能为空") | ||
| 22 | + private String message; | ||
| 23 | + /** | ||
| 24 | + * 错误码类型 | ||
| 25 | + */ | ||
| 26 | + @NotNull(message = "错误码类型不能为空") | ||
| 27 | + private Integer type; | ||
| 28 | + /** | ||
| 29 | + * 错误码分组 | ||
| 30 | + */ | ||
| 31 | + private String group; | ||
| 32 | + /** | ||
| 33 | + * 错误码备注 | ||
| 34 | + */ | ||
| 35 | + private String memo; | ||
| 36 | +} |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/bo/ErrorCodePageBO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode.bo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.dashboard.common.pojo.PageParam; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.EqualsAndHashCode; | ||
| 6 | +import lombok.experimental.Accessors; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 错误码分页 BO | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +@EqualsAndHashCode(callSuper = true) | ||
| 13 | +@Accessors(chain = true) | ||
| 14 | +public class ErrorCodePageBO extends PageParam { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 错误码编码 | ||
| 18 | + */ | ||
| 19 | + private Integer code; | ||
| 20 | + /** | ||
| 21 | + * 错误码错误提示 | ||
| 22 | + */ | ||
| 23 | + private String message; | ||
| 24 | + /** | ||
| 25 | + * 错误码分组 | ||
| 26 | + */ | ||
| 27 | + private String group; | ||
| 28 | + | ||
| 29 | +} | ||
| 0 | \ No newline at end of file | 30 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/modules/system/service/errorcode/bo/ErrorCodeUpdateBO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.errorcode.bo; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import javax.validation.constraints.NotEmpty; | ||
| 7 | +import javax.validation.constraints.NotNull; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 错误码更新 BO | ||
| 11 | + */ | ||
| 12 | +@Data | ||
| 13 | +@Accessors(chain = true) | ||
| 14 | +public class ErrorCodeUpdateBO { | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 错误码编号 | ||
| 18 | + */ | ||
| 19 | + @NotNull(message = "错误码编号不能为空") | ||
| 20 | + private Integer id; | ||
| 21 | + /** | ||
| 22 | + * 错误码编码 | ||
| 23 | + */ | ||
| 24 | + @NotNull(message = "错误码编码不能为空") | ||
| 25 | + private Integer code; | ||
| 26 | + /** | ||
| 27 | + * 错误码错误提示 | ||
| 28 | + */ | ||
| 29 | + @NotEmpty(message = "错误码错误提示不能为空") | ||
| 30 | + private String message; | ||
| 31 | + /** | ||
| 32 | + * 错误码类型 | ||
| 33 | + */ | ||
| 34 | + @NotNull(message = "错误码类型不能为空") | ||
| 35 | + private Integer type; | ||
| 36 | + /** | ||
| 37 | + * 错误码分组 | ||
| 38 | + */ | ||
| 39 | + private String group; | ||
| 40 | + /** | ||
| 41 | + * 错误码备注 | ||
| 42 | + */ | ||
| 43 | + private String memo; | ||
| 44 | + | ||
| 45 | +} | ||
| 0 | \ No newline at end of file | 46 | \ No newline at end of file |