完善 dict data 的单元测试
This commit is contained in:
@@ -15,9 +15,9 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface SysDictDataMapper extends BaseMapperX<SysDictDataDO> {
|
||||
|
||||
default SysDictDataDO selectByDictTypeAndLabel(String dictType, String label) {
|
||||
default SysDictDataDO selectByDictTypeAndLabel(String dictType, String value) {
|
||||
return selectOne(new QueryWrapper<SysDictDataDO>().eq("dict_type", dictType)
|
||||
.eq("label", label));
|
||||
.eq("value", value));
|
||||
}
|
||||
|
||||
default int selectCountByDictType(String dictType) {
|
||||
|
||||
@@ -2,7 +2,6 @@ package cn.iocoder.dashboard.modules.system.service.dict.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
|
||||
import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
|
||||
import cn.iocoder.dashboard.common.pojo.PageResult;
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;
|
||||
@@ -10,9 +9,9 @@ import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataEx
|
||||
import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
|
||||
import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO;
|
||||
import cn.iocoder.dashboard.modules.system.convert.dict.SysDictDataConvert;
|
||||
import cn.iocoder.dashboard.modules.system.dal.mysql.dict.SysDictDataMapper;
|
||||
import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO;
|
||||
import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO;
|
||||
import cn.iocoder.dashboard.modules.system.dal.mysql.dict.SysDictDataMapper;
|
||||
import cn.iocoder.dashboard.modules.system.mq.producer.dict.SysDictDataProducer;
|
||||
import cn.iocoder.dashboard.modules.system.service.dict.SysDictDataService;
|
||||
import cn.iocoder.dashboard.modules.system.service.dict.SysDictTypeService;
|
||||
@@ -28,6 +27,7 @@ import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
@@ -156,7 +156,7 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||
@Override
|
||||
public Long createDictData(SysDictDataCreateReqVO reqVO) {
|
||||
// 校验正确性
|
||||
this.checkCreateOrUpdate(null, reqVO.getLabel(), reqVO.getDictType());
|
||||
this.checkCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType());
|
||||
// 插入字典类型
|
||||
SysDictDataDO dictData = SysDictDataConvert.INSTANCE.convert(reqVO);
|
||||
dictDataMapper.insert(dictData);
|
||||
@@ -168,7 +168,7 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||
@Override
|
||||
public void updateDictData(SysDictDataUpdateReqVO reqVO) {
|
||||
// 校验正确性
|
||||
this.checkCreateOrUpdate(reqVO.getId(), reqVO.getLabel(), reqVO.getDictType());
|
||||
this.checkCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType());
|
||||
// 更新字典类型
|
||||
SysDictDataDO updateObj = SysDictDataConvert.INSTANCE.convert(reqVO);
|
||||
dictDataMapper.updateById(updateObj);
|
||||
@@ -191,13 +191,13 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||
return dictDataMapper.selectCountByDictType(dictType);
|
||||
}
|
||||
|
||||
private void checkCreateOrUpdate(Long id, String label, String dictType) {
|
||||
private void checkCreateOrUpdate(Long id, String value, String dictType) {
|
||||
// 校验自己存在
|
||||
checkDictDataExists(id);
|
||||
// 校验字典类型有效
|
||||
checkDictTypeValid(dictType);
|
||||
// 校验字典数据的值的唯一性
|
||||
checkDictDataValueUnique(id, dictType, label);
|
||||
checkDictDataValueUnique(id, dictType, value);
|
||||
}
|
||||
|
||||
private void checkDictDataValueUnique(Long id, String dictType, String label) {
|
||||
@@ -207,10 +207,10 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||
}
|
||||
// 如果 id 为空,说明不用比较是否为相同 id 的字典数据
|
||||
if (id == null) {
|
||||
throw ServiceExceptionUtil.exception(DICT_DATA_VALUE_DUPLICATE);
|
||||
throw exception(DICT_DATA_VALUE_DUPLICATE);
|
||||
}
|
||||
if (!dictData.getId().equals(id)) {
|
||||
throw ServiceExceptionUtil.exception(DICT_DATA_VALUE_DUPLICATE);
|
||||
throw exception(DICT_DATA_VALUE_DUPLICATE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,17 +220,17 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||
}
|
||||
SysDictDataDO dictData = dictDataMapper.selectById(id);
|
||||
if (dictData == null) {
|
||||
throw ServiceExceptionUtil.exception(DICT_DATA_NOT_EXISTS);
|
||||
throw exception(DICT_DATA_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkDictTypeValid(String type) {
|
||||
SysDictTypeDO dictType = dictTypeService.getDictType(type);
|
||||
if (dictType == null) {
|
||||
throw ServiceExceptionUtil.exception(DICT_TYPE_NOT_EXISTS);
|
||||
throw exception(DICT_TYPE_NOT_EXISTS);
|
||||
}
|
||||
if (!CommonStatusEnum.ENABLE.getStatus().equals(dictType.getStatus())) {
|
||||
throw ServiceExceptionUtil.exception(DICT_TYPE_NOT_ENABLE);
|
||||
throw exception(DICT_TYPE_NOT_ENABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user