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