refactor(error-code): 移除错误码BO

This commit is contained in:
dylan 2021-03-21 21:09:25 +08:00
parent c6ef8b3a44
commit e973a4368f
13 changed files with 75 additions and 296 deletions

View File

@ -1,39 +1,25 @@
package cn.iocoder.dashboard.framework.errorcode.config; package cn.iocoder.dashboard.framework.errorcode.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ConfigurationProperties("ruoyi.error-code") @ConfigurationProperties("yudao.error-code")
@Validated @Validated
@Getter
@Setter
public class ErrorCodeProperties { public class ErrorCodeProperties {
/** /**
* 应用分组 * 应用分组
*/ */
@NotNull(message = "应用分组不能为空,请设置 ruoyi.error-code.group 配置项,推荐直接使用 spring. application.name 配置项") @NotNull(message = "应用分组不能为空,请设置 yudao.error-code.group 配置项,推荐直接使用 spring.application.name 配置项")
private String group; private String group;
/** /**
* 错误码枚举类 * 错误码枚举类
*/ */
private String constantsClass; private String constantsClass;
public String getGroup() {
return group;
}
public ErrorCodeProperties setGroup(String group) {
this.group = group;
return this;
}
public String getConstantsClass() {
return constantsClass;
}
public ErrorCodeProperties setConstantsClass(String constantsClass) {
this.constantsClass = constantsClass;
return this;
}
} }

View File

@ -3,10 +3,8 @@ package cn.iocoder.dashboard.framework.errorcode.core;
import cn.iocoder.dashboard.common.exception.ErrorCode; import cn.iocoder.dashboard.common.exception.ErrorCode;
import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO;
import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert;
import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService; import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService;
import org.slf4j.Logger; import lombok.extern.slf4j.Slf4j;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
@ -17,10 +15,9 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@Slf4j
public class ErrorCodeAutoGenerator { public class ErrorCodeAutoGenerator {
private Logger logger = LoggerFactory.getLogger(ErrorCodeAutoGenerator.class);
/** /**
* 应用分组 * 应用分组
*/ */
@ -47,18 +44,18 @@ public class ErrorCodeAutoGenerator {
public void execute() { public void execute() {
// 校验 errorCodeConstantsClass 参数 // 校验 errorCodeConstantsClass 参数
if (!StringUtils.hasText(errorCodeConstantsClass)) { if (!StringUtils.hasText(errorCodeConstantsClass)) {
logger.info("[execute][未配置 ruoyi.error-code.constants-class 配置项,不进行自动写入到 system-service 服务]"); log.info("[execute][未配置 yudao.error-code.constants-class 配置项,不进行自动写入到当前服务中]");
return; return;
} }
Class errorCodeConstantsClazz; Class errorCodeConstantsClazz;
try { try {
errorCodeConstantsClazz = Class.forName(errorCodeConstantsClass); errorCodeConstantsClazz = Class.forName(errorCodeConstantsClass);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
logger.error("[execute][配置的 ({}) 找不到对应的类]", errorCodeConstantsClass); log.error("[execute][配置的 ({}) 找不到对应的类]", errorCodeConstantsClass);
return; return;
} }
// 写入 system-service 服务 // 写入 system-service 服务
logger.info("[execute][自动将 ({}) 类的错误码,准备写入到 system-service 服务]", errorCodeConstantsClass); log.info("[execute][自动将 ({}) 类的错误码,准备写入到当前服务]", errorCodeConstantsClass);
List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs = new ArrayList<>(); List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs = new ArrayList<>();
Arrays.stream(errorCodeConstantsClazz.getFields()).forEach(field -> { Arrays.stream(errorCodeConstantsClazz.getFields()).forEach(field -> {
if (field.getType() != ErrorCode.class) { if (field.getType() != ErrorCode.class) {
@ -73,11 +70,11 @@ public class ErrorCodeAutoGenerator {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}); });
CommonResult<Boolean> autoGenerateErrorCodesResult = errorCodeService.autoGenerateErrorCodes1(ErrorCodeConvert.INSTANCE.convertList03(autoGenerateDTOs)); CommonResult<Boolean> autoGenerateErrorCodesResult = errorCodeService.autoGenerateErrorCodes1(autoGenerateDTOs);
if (autoGenerateErrorCodesResult.isSuccess()) { if (autoGenerateErrorCodesResult.isSuccess()) {
logger.info("[execute][自动将 ({}) 类的错误码,成功写入到 system-service 服务]", errorCodeConstantsClass); log.info("[execute][自动将 ({}) 类的错误码,成功写入到当前服务]", errorCodeConstantsClass);
} else { } else {
logger.error("[execute][自动将 ({}) 类的错误码,失败写入到 system-service 服务,原因为 ({}/{})]", errorCodeConstantsClass, log.error("[execute][自动将 ({}) 类的错误码,失败写入到当前服务,原因为 ({}/{})]", errorCodeConstantsClass,
autoGenerateErrorCodesResult.getCode(), autoGenerateErrorCodesResult.getMsg()); autoGenerateErrorCodesResult.getCode(), autoGenerateErrorCodesResult.getMsg());
} }
} }

View File

@ -5,10 +5,8 @@ import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO;
import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService; import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService;
import cn.iocoder.dashboard.modules.system.service.errorcode.bo.ErrorCodeBO;
import cn.iocoder.dashboard.util.date.DateUtils; import cn.iocoder.dashboard.util.date.DateUtils;
import org.slf4j.Logger; import lombok.extern.slf4j.Slf4j;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -17,12 +15,11 @@ import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Slf4j
public class ErrorCodeRemoteLoader { public class ErrorCodeRemoteLoader {
private static final int REFRESH_ERROR_CODE_PERIOD = 60 * 1000; private static final int REFRESH_ERROR_CODE_PERIOD = 60 * 1000;
private Logger logger = LoggerFactory.getLogger(ErrorCodeRemoteLoader.class);
/** /**
* 应用分组 * 应用分组
*/ */
@ -42,7 +39,7 @@ public class ErrorCodeRemoteLoader {
// ErrorCodeRpc 全量加载 ErrorCode 错误码 // ErrorCodeRpc 全量加载 ErrorCode 错误码
CommonResult<List<ErrorCodeVO>> listErrorCodesResult = errorCodeService.listErrorCodes1(group, null); CommonResult<List<ErrorCodeVO>> listErrorCodesResult = errorCodeService.listErrorCodes1(group, null);
listErrorCodesResult.checkError(); listErrorCodesResult.checkError();
logger.info("[loadErrorCodes][从 group({}) 全量加载到 {} 个 ErrorCode 错误码]", group, listErrorCodesResult.getData().size()); log.info("[loadErrorCodes][从 group({}) 全量加载到 {} 个 ErrorCode 错误码]", group, listErrorCodesResult.getData().size());
// 写入到 ServiceExceptionUtil // 写入到 ServiceExceptionUtil
listErrorCodesResult.getData().forEach(errorCodeVO -> { listErrorCodesResult.getData().forEach(errorCodeVO -> {
ServiceExceptionUtil.put(errorCodeVO.getCode(), errorCodeVO.getMessage()); ServiceExceptionUtil.put(errorCodeVO.getCode(), errorCodeVO.getMessage());
@ -60,7 +57,7 @@ public class ErrorCodeRemoteLoader {
if (CollUtil.isEmpty(listErrorCodesResult.getData())) { if (CollUtil.isEmpty(listErrorCodesResult.getData())) {
return; return;
} }
logger.info("[refreshErrorCodes][从 group({}) 增量加载到 {} 个 ErrorCode 错误码]", group, listErrorCodesResult.getData().size()); log.info("[refreshErrorCodes][从 group({}) 增量加载到 {} 个 ErrorCode 错误码]", group, listErrorCodesResult.getData().size());
// 写入到 ServiceExceptionUtil // 写入到 ServiceExceptionUtil
listErrorCodesResult.getData().forEach(errorCodeVO -> { listErrorCodesResult.getData().forEach(errorCodeVO -> {
ServiceExceptionUtil.put(errorCodeVO.getCode(), errorCodeVO.getMessage()); ServiceExceptionUtil.put(errorCodeVO.getCode(), errorCodeVO.getMessage());

View File

@ -7,9 +7,7 @@ import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCre
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO;
import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert;
import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService; import cn.iocoder.dashboard.modules.system.service.errorcode.ErrorCodeService;
import cn.iocoder.dashboard.modules.system.service.errorcode.bo.ErrorCodeBO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.CustomDateEditor;
@ -44,7 +42,7 @@ public class ErrorCodeController {
@ApiOperation("获取指定分组下的状态码") @ApiOperation("获取指定分组下的状态码")
@GetMapping("/list-group") @GetMapping("/list-group")
public CommonResult<List<ErrorCodeVO>> listErrorCodes(@NotNull(message = "错误码分组不能为空") String group, Date minUpdateTime) { public CommonResult<List<ErrorCodeVO>> listErrorCodes(@NotNull(message = "错误码分组不能为空") String group, Date minUpdateTime) {
return success(ErrorCodeConvert.INSTANCE.convertList02(errorCodeService.listErrorCodes(group, minUpdateTime))); return success(errorCodeService.listErrorCodes(group, minUpdateTime));
} }
/** /**
@ -55,7 +53,7 @@ public class ErrorCodeController {
@ApiOperation("自动生成错误码") @ApiOperation("自动生成错误码")
@PostMapping("/generate") @PostMapping("/generate")
public CommonResult<Boolean> autoGenerateErrorCodes(@RequestBody List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs) { public CommonResult<Boolean> autoGenerateErrorCodes(@RequestBody List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs) {
errorCodeService.autoGenerateErrorCodes(ErrorCodeConvert.INSTANCE.convertList03(autoGenerateDTOs)); errorCodeService.autoGenerateErrorCodes(autoGenerateDTOs);
return success(Boolean.TRUE); return success(Boolean.TRUE);
} }
@ -69,7 +67,7 @@ public class ErrorCodeController {
@ApiOperation("创建错误码") @ApiOperation("创建错误码")
@PostMapping("/create") @PostMapping("/create")
public CommonResult<Integer> createErrorCode(@RequestBody ErrorCodeCreateDTO createDTO) { public CommonResult<Integer> createErrorCode(@RequestBody ErrorCodeCreateDTO createDTO) {
return success(errorCodeService.createErrorCode(ErrorCodeConvert.INSTANCE.convert(createDTO)).getId()); return success(errorCodeService.createErrorCode(createDTO).getId());
} }
/** /**
@ -80,7 +78,7 @@ public class ErrorCodeController {
@ApiOperation("更新错误码") @ApiOperation("更新错误码")
@PatchMapping("/update") @PatchMapping("/update")
public CommonResult<Boolean> updateErrorCode(@RequestBody ErrorCodeUpdateDTO updateDTO) { public CommonResult<Boolean> updateErrorCode(@RequestBody ErrorCodeUpdateDTO updateDTO) {
errorCodeService.updateErrorCode(ErrorCodeConvert.INSTANCE.convert(updateDTO)); errorCodeService.updateErrorCode(updateDTO);
return success(Boolean.TRUE); return success(Boolean.TRUE);
} }
@ -105,7 +103,7 @@ public class ErrorCodeController {
@ApiOperation("获取错误码") @ApiOperation("获取错误码")
@GetMapping("/query") @GetMapping("/query")
public CommonResult<ErrorCodeVO> getErrorCode(Integer errorCodeId) { public CommonResult<ErrorCodeVO> getErrorCode(Integer errorCodeId) {
return success(ErrorCodeConvert.INSTANCE.convert(errorCodeService.getErrorCode(errorCodeId))); return success(errorCodeService.getErrorCode(errorCodeId));
} }
/** /**
@ -117,7 +115,7 @@ public class ErrorCodeController {
@ApiOperation("获取错误码列表") @ApiOperation("获取错误码列表")
@GetMapping("/query-ids") @GetMapping("/query-ids")
public CommonResult<List<ErrorCodeVO>> listErrorCodes(@RequestBody List<Integer> errorCodeIds) { public CommonResult<List<ErrorCodeVO>> listErrorCodes(@RequestBody List<Integer> errorCodeIds) {
return success(ErrorCodeConvert.INSTANCE.convertList02(errorCodeService.listErrorCodes(errorCodeIds))); return success(errorCodeService.listErrorCodes(errorCodeIds));
} }
/** /**
@ -129,8 +127,7 @@ public class ErrorCodeController {
@ApiOperation("获取错误码分页列表") @ApiOperation("获取错误码分页列表")
@GetMapping("/page") @GetMapping("/page")
public CommonResult<PageResult<ErrorCodeVO>> pageErrorCode(ErrorCodePageDTO pageDTO) { public CommonResult<PageResult<ErrorCodeVO>> pageErrorCode(ErrorCodePageDTO pageDTO) {
final PageResult<ErrorCodeBO> pageResult = errorCodeService.pageErrorCode(ErrorCodeConvert.INSTANCE.convert(pageDTO)); return success(errorCodeService.pageErrorCode(pageDTO));
return success(ErrorCodeConvert.INSTANCE.convertPage(pageResult));
} }
@InitBinder @InitBinder

View File

@ -3,47 +3,37 @@ package cn.iocoder.dashboard.modules.system.convert.errorcode;
import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCreateDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCreateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO; import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO;
import cn.iocoder.dashboard.modules.system.service.errorcode.bo.*;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import java.util.List; import java.util.List;
@Mapper /**
* @author dylan
*/
@Mapper(unmappedSourcePolicy = ReportingPolicy.IGNORE)
public interface ErrorCodeConvert { public interface ErrorCodeConvert {
ErrorCodeConvert INSTANCE = Mappers.getMapper(ErrorCodeConvert.class); ErrorCodeConvert INSTANCE = Mappers.getMapper(ErrorCodeConvert.class);
ErrorCodeDO convert(ErrorCodeCreateBO bean); ErrorCodeVO convert (ErrorCodeDO bean);
ErrorCodeBO convert(ErrorCodeDO bean); List<ErrorCodeVO> convertList(List<ErrorCodeDO> list);
List<ErrorCodeBO> convertList(List<ErrorCodeDO> list);
@Mapping(source = "records", target = "list") @Mapping(source = "records", target = "list")
PageResult<ErrorCodeBO> convertPage(IPage<ErrorCodeDO> page); PageResult<ErrorCodeVO> convertPage(IPage<ErrorCodeDO> page);
ErrorCodeDO convert(ErrorCodeUpdateBO bean); ErrorCodeDO convert (ErrorCodeCreateDTO bean);
ErrorCodeCreateBO convert(ErrorCodeCreateDTO bean); ErrorCodeDO convert (ErrorCodeUpdateDTO bean);
ErrorCodeUpdateBO convert(ErrorCodeUpdateDTO bean); ErrorCodeDO convert(ErrorCodeAutoGenerateDTO bean);
ErrorCodeVO convert(ErrorCodeBO bean);
List<ErrorCodeVO> convertList02(List<ErrorCodeBO> list);
PageResult<ErrorCodeVO> convertPage(PageResult<ErrorCodeBO> page);
ErrorCodePageBO convert(ErrorCodePageDTO bean);
ErrorCodeDO convert(ErrorCodeAutoGenerateBO bean);
List<ErrorCodeAutoGenerateBO> convertList03(List<ErrorCodeAutoGenerateDTO> list);
} }

View File

@ -1,8 +1,8 @@
package cn.iocoder.dashboard.modules.system.dal.mysql.errorcode; package cn.iocoder.dashboard.modules.system.dal.mysql.errorcode;
import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO;
import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO;
import cn.iocoder.dashboard.modules.system.service.errorcode.bo.ErrorCodePageBO;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -15,10 +15,10 @@ import java.util.List;
@Mapper @Mapper
public interface ErrorCodeMapper extends BaseMapper<ErrorCodeDO> { public interface ErrorCodeMapper extends BaseMapper<ErrorCodeDO> {
default IPage<ErrorCodeDO> selectPage(ErrorCodePageBO pageBO) { default IPage<ErrorCodeDO> selectPage(ErrorCodePageDTO pageDTO) {
return selectPage(new Page<>(pageBO.getPageNo(), pageBO.getPageSize()), return selectPage(new Page<>(pageDTO.getPageNo(), pageDTO.getPageSize()),
new QueryWrapperX<ErrorCodeDO>().likeIfPresent("`group`", pageBO.getGroup()) new QueryWrapperX<ErrorCodeDO>().likeIfPresent("`group`", pageDTO.getGroup())
.eqIfPresent("code", pageBO.getCode()).likeIfPresent("message", pageBO.getMessage())); .eqIfPresent("code", pageDTO.getCode()).likeIfPresent("message", pageDTO.getMessage()));
} }
default List<ErrorCodeDO> selectListByCodes(Collection<Integer> codes) { default List<ErrorCodeDO> selectListByCodes(Collection<Integer> codes) {

View File

@ -4,12 +4,15 @@ import cn.hutool.core.collection.CollUtil;
import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeAutoGenerateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeCreateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodePageDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.dto.ErrorCodeUpdateDTO;
import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO; import cn.iocoder.dashboard.modules.system.controller.errorcode.vo.ErrorCodeVO;
import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert; import cn.iocoder.dashboard.modules.system.convert.errorcode.ErrorCodeConvert;
import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.errorcode.ErrorCodeDO;
import cn.iocoder.dashboard.modules.system.dal.mysql.errorcode.ErrorCodeMapper; import cn.iocoder.dashboard.modules.system.dal.mysql.errorcode.ErrorCodeMapper;
import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum; import cn.iocoder.dashboard.modules.system.enums.errorcode.ErrorCodeTypeEnum;
import cn.iocoder.dashboard.modules.system.service.errorcode.bo.*;
import cn.iocoder.dashboard.util.collection.CollectionUtils; import cn.iocoder.dashboard.util.collection.CollectionUtils;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -41,13 +44,13 @@ public class ErrorCodeService {
/** /**
* 创建错误码 * 创建错误码
* *
* @param createBO 创建错误码 BO * @param createDTO 创建错误码 DTO
* @return 错误码 * @return 错误码
*/ */
public ErrorCodeBO createErrorCode(@Valid ErrorCodeCreateBO createBO) { public ErrorCodeVO createErrorCode(@Valid ErrorCodeCreateDTO createDTO) {
checkDuplicateErrorCode(createBO.getCode(), null); checkDuplicateErrorCode(createDTO.getCode(), null);
// 插入到数据库 // 插入到数据库
ErrorCodeDO errorCodeDO = ErrorCodeConvert.INSTANCE.convert(createBO); ErrorCodeDO errorCodeDO = ErrorCodeConvert.INSTANCE.convert(createDTO);
errorCodeMapper.insert(errorCodeDO); errorCodeMapper.insert(errorCodeDO);
// 返回 // 返回
return ErrorCodeConvert.INSTANCE.convert(errorCodeDO); return ErrorCodeConvert.INSTANCE.convert(errorCodeDO);
@ -56,33 +59,33 @@ public class ErrorCodeService {
/** /**
* 更新错误码 * 更新错误码
* *
* @param updateBO 更新错误码 BO * @param updateDTO 更新错误码 DTO
*/ */
public void updateErrorCode(@Valid ErrorCodeUpdateBO updateBO) { public void updateErrorCode(@Valid ErrorCodeUpdateDTO updateDTO) {
checkDuplicateErrorCode(updateBO.getCode(), updateBO.getId()); checkDuplicateErrorCode(updateDTO.getCode(), updateDTO.getId());
// 校验更新的错误码是否存在 // 校验更新的错误码是否存在
if (errorCodeMapper.selectById(updateBO.getId()) == null) { if (errorCodeMapper.selectById(updateDTO.getId()) == null) {
throw ServiceExceptionUtil.exception(ERROR_CODE_NOT_EXISTS); throw ServiceExceptionUtil.exception(ERROR_CODE_NOT_EXISTS);
} }
// 更新到数据库 // 更新到数据库
ErrorCodeDO updateObject = ErrorCodeConvert.INSTANCE.convert(updateBO); ErrorCodeDO updateObject = ErrorCodeConvert.INSTANCE.convert(updateDTO);
errorCodeMapper.updateById(updateObject); errorCodeMapper.updateById(updateObject);
} }
@Transactional @Transactional
public void autoGenerateErrorCodes(@Valid List<ErrorCodeAutoGenerateBO> autoGenerateBOs) { public void autoGenerateErrorCodes(@Valid List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs) {
if (CollUtil.isEmpty(autoGenerateBOs)) { if (CollUtil.isEmpty(autoGenerateDTOs)) {
return; return;
} }
List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByCodes( List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByCodes(
CollectionUtils.convertSet(autoGenerateBOs, ErrorCodeAutoGenerateBO::getCode)); CollectionUtils.convertSet(autoGenerateDTOs, ErrorCodeAutoGenerateDTO::getCode));
Map<Integer, ErrorCodeDO> errorCodeDOMap = CollectionUtils.convertMap(errorCodeDOs, ErrorCodeDO::getCode); Map<Integer, ErrorCodeDO> errorCodeDOMap = CollectionUtils.convertMap(errorCodeDOs, ErrorCodeDO::getCode);
// 遍历 autoGenerateBOs 数组逐个插入或更新考虑到每次量级不大就不走批量了 // 遍历 autoGenerateBOs 数组逐个插入或更新考虑到每次量级不大就不走批量了
autoGenerateBOs.forEach(autoGenerateBO -> { autoGenerateDTOs.forEach(autoGenerateDTO -> {
ErrorCodeDO errorCodeDO = errorCodeDOMap.get(autoGenerateBO.getCode()); ErrorCodeDO errorCodeDO = errorCodeDOMap.get(autoGenerateDTO.getCode());
// 不存在则进行新增 // 不存在则进行新增
if (errorCodeDO == null) { if (errorCodeDO == null) {
errorCodeDO = ErrorCodeConvert.INSTANCE.convert(autoGenerateBO) errorCodeDO = ErrorCodeConvert.INSTANCE.convert(autoGenerateDTO)
.setType(ErrorCodeTypeEnum.AUTO_GENERATION.getType()); .setType(ErrorCodeTypeEnum.AUTO_GENERATION.getType());
errorCodeMapper.insert(errorCodeDO); errorCodeMapper.insert(errorCodeDO);
return; return;
@ -93,23 +96,23 @@ public class ErrorCodeService {
return; return;
} }
// 条件 2. 分组 group 必须匹配避免存在错误码冲突的情况 // 条件 2. 分组 group 必须匹配避免存在错误码冲突的情况
if (!autoGenerateBO.getGroup().equals(errorCodeDO.getGroup())) { if (!autoGenerateDTO.getGroup().equals(errorCodeDO.getGroup())) {
log.error("[autoGenerateErrorCodes][自动创建({}/{}) 错误码失败,数据库中已经存在({}/{})]", log.error("[autoGenerateErrorCodes][自动创建({}/{}) 错误码失败,数据库中已经存在({}/{})]",
autoGenerateBO.getCode(), autoGenerateBO.getGroup(), autoGenerateDTO.getCode(), autoGenerateDTO.getGroup(),
errorCodeDO.getCode(), errorCodeDO.getGroup()); errorCodeDO.getCode(), errorCodeDO.getGroup());
return; return;
} }
// 条件 3. 错误提示语存在差异 // 条件 3. 错误提示语存在差异
if (autoGenerateBO.getMessage().equals(errorCodeDO.getMessage())) { if (autoGenerateDTO.getMessage().equals(errorCodeDO.getMessage())) {
return; return;
} }
// 最终匹配进行更新 // 最终匹配进行更新
errorCodeMapper.updateById(new ErrorCodeDO().setId(errorCodeDO.getId()).setMessage(autoGenerateBO.getMessage())); errorCodeMapper.updateById(new ErrorCodeDO().setId(errorCodeDO.getId()).setMessage(autoGenerateDTO.getMessage()));
}); });
} }
public CommonResult<Boolean> autoGenerateErrorCodes1(@Valid List<ErrorCodeAutoGenerateBO> autoGenerateBOs) { public CommonResult<Boolean> autoGenerateErrorCodes1(@Valid List<ErrorCodeAutoGenerateDTO> autoGenerateDTOs) {
autoGenerateErrorCodes(autoGenerateBOs); autoGenerateErrorCodes(autoGenerateDTOs);
return success(Boolean.TRUE); return success(Boolean.TRUE);
} }
@ -134,7 +137,7 @@ public class ErrorCodeService {
* @param errorCodeId 错误码编号 * @param errorCodeId 错误码编号
* @return 错误码 * @return 错误码
*/ */
public ErrorCodeBO getErrorCode(Integer errorCodeId) { public ErrorCodeVO getErrorCode(Integer errorCodeId) {
ErrorCodeDO errorCodeDO = errorCodeMapper.selectById(errorCodeId); ErrorCodeDO errorCodeDO = errorCodeMapper.selectById(errorCodeId);
return ErrorCodeConvert.INSTANCE.convert(errorCodeDO); return ErrorCodeConvert.INSTANCE.convert(errorCodeDO);
} }
@ -145,7 +148,7 @@ public class ErrorCodeService {
* @param errorCodeIds 错误码编号列表 * @param errorCodeIds 错误码编号列表
* @return 错误码列表 * @return 错误码列表
*/ */
public List<ErrorCodeBO> listErrorCodes(List<Integer> errorCodeIds) { public List<ErrorCodeVO> listErrorCodes(List<Integer> errorCodeIds) {
List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectBatchIds(errorCodeIds); List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectBatchIds(errorCodeIds);
return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs); return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs);
} }
@ -153,11 +156,11 @@ public class ErrorCodeService {
/** /**
* 获得错误码分页 * 获得错误码分页
* *
* @param pageBO 错误码分页查询 * @param pageDTO 错误码分页查询
* @return 错误码分页结果 * @return 错误码分页结果
*/ */
public PageResult<ErrorCodeBO> pageErrorCode(ErrorCodePageBO pageBO) { public PageResult<ErrorCodeVO> pageErrorCode(ErrorCodePageDTO pageDTO) {
IPage<ErrorCodeDO> errorCodeDOPage = errorCodeMapper.selectPage(pageBO); IPage<ErrorCodeDO> errorCodeDOPage = errorCodeMapper.selectPage(pageDTO);
return ErrorCodeConvert.INSTANCE.convertPage(errorCodeDOPage); return ErrorCodeConvert.INSTANCE.convertPage(errorCodeDOPage);
} }
@ -183,15 +186,14 @@ public class ErrorCodeService {
} }
} }
public List<ErrorCodeBO> listErrorCodes(String group, Date minUpdateTime) { public List<ErrorCodeVO> listErrorCodes(String group, Date minUpdateTime) {
List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByGroup(group, minUpdateTime); List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByGroup(group, minUpdateTime);
return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs); return ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs);
} }
public CommonResult<List<ErrorCodeVO>> listErrorCodes1(String group, Date minUpdateTime) { public CommonResult<List<ErrorCodeVO>> listErrorCodes1(String group, Date minUpdateTime) {
List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByGroup(group, minUpdateTime); List<ErrorCodeDO> errorCodeDOs = errorCodeMapper.selectListByGroup(group, minUpdateTime);
final List<ErrorCodeBO> errorCodeBOS = ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs); return success(ErrorCodeConvert.INSTANCE.convertList(errorCodeDOs));
return success(ErrorCodeConvert.INSTANCE.convertList02(errorCodeBOS));
} }
} }

View File

@ -1,33 +0,0 @@
package cn.iocoder.dashboard.modules.system.service.errorcode.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 错误码自动生成 BO
*/
@Data
@Accessors(chain = true)
public class ErrorCodeAutoGenerateBO implements Serializable {
/**
* 错误码编码
*/
@NotNull(message = "错误码编码不能为空")
private Integer code;
/**
* 错误码错误提示
*/
@NotEmpty(message = "错误码错误提示不能为空")
private String message;
/**
* 错误码分组
*/
@NotNull(message = "错误码分组不能为空")
private String group;
}

View File

@ -1,48 +0,0 @@
package cn.iocoder.dashboard.modules.system.service.errorcode.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 错误码 BO
*/
@Data
@Accessors(chain = true)
public class ErrorCodeBO {
/**
* 错误码编号
*/
private Integer id;
/**
* 错误码编码
*/
private Integer code;
/**
* 错误码错误提示
*/
private String message;
/**
* 错误码类型
*/
private Integer type;
/**
* 错误码分组
*/
private String group;
/**
* 错误码备注
*/
private String memo;
/**
* 创建时间
*/
private Date createTime;
/**
* 最后更新时间
*/
private Date updateTime;
}

View File

@ -1,36 +0,0 @@
package cn.iocoder.dashboard.modules.system.service.errorcode.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
@Accessors(chain = true)
public class ErrorCodeCreateBO {
/**
* 错误码编码
*/
@NotNull(message = "错误码编码不能为空")
private Integer code;
/**
* 错误码错误提示
*/
@NotEmpty(message = "错误码错误提示不能为空")
private String message;
/**
* 错误码类型
*/
@NotNull(message = "错误码类型不能为空")
private Integer type;
/**
* 错误码分组
*/
private String group;
/**
* 错误码备注
*/
private String memo;
}

View File

@ -1,29 +0,0 @@
package cn.iocoder.dashboard.modules.system.service.errorcode.bo;
import cn.iocoder.dashboard.common.pojo.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* 错误码分页 BO
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class ErrorCodePageBO extends PageParam {
/**
* 错误码编码
*/
private Integer code;
/**
* 错误码错误提示
*/
private String message;
/**
* 错误码分组
*/
private String group;
}

View File

@ -1,45 +0,0 @@
package cn.iocoder.dashboard.modules.system.service.errorcode.bo;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* 错误码更新 BO
*/
@Data
@Accessors(chain = true)
public class ErrorCodeUpdateBO {
/**
* 错误码编号
*/
@NotNull(message = "错误码编号不能为空")
private Integer id;
/**
* 错误码编码
*/
@NotNull(message = "错误码编码不能为空")
private Integer code;
/**
* 错误码错误提示
*/
@NotEmpty(message = "错误码错误提示不能为空")
private String message;
/**
* 错误码类型
*/
@NotNull(message = "错误码类型不能为空")
private Integer type;
/**
* 错误码分组
*/
private String group;
/**
* 错误码备注
*/
private String memo;
}

View File

@ -33,6 +33,7 @@ mybatis-plus:
mapper-locations: classpath*:mapper/*.xml mapper-locations: classpath*:mapper/*.xml
type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject
ruoyi: yudao:
error-code: error-code:
group: test1 group: test1
constantsClass: cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants