diff --git a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictDataServiceImpl.java b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictDataServiceImpl.java index 638651e5a2b8b434e2413ee27a990f5798a68f84..e076394f3443c63e87ad954235adf63aff90af28 100644 --- a/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictDataServiceImpl.java +++ b/maku-boot-system/src/main/java/net/maku/system/service/impl/SysDictDataServiceImpl.java @@ -3,14 +3,16 @@ package net.maku.system.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; +import net.maku.framework.common.exception.ServerException; import net.maku.framework.common.utils.PageResult; import net.maku.framework.mybatis.service.impl.BaseServiceImpl; import net.maku.system.convert.SysDictDataConvert; import net.maku.system.dao.SysDictDataDao; import net.maku.system.entity.SysDictDataEntity; -import net.maku.system.service.SysDictDataService; import net.maku.system.query.SysDictDataQuery; +import net.maku.system.service.SysDictDataService; import net.maku.system.vo.SysDictDataVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,6 +47,13 @@ public class SysDictDataServiceImpl extends BaseServiceImpllambdaQuery() + .eq(SysDictDataEntity::getDictTypeId, vo.getDictTypeId()) + .eq(SysDictDataEntity::getDictValue, vo.getDictValue())); + if (sysDictData != null) { + throw new ServerException("字典值重复!"); + } + SysDictDataEntity entity = SysDictDataConvert.INSTANCE.convert(vo); baseMapper.insert(entity); @@ -53,6 +62,14 @@ public class SysDictDataServiceImpl extends BaseServiceImpllambdaQuery() + .eq(SysDictDataEntity::getDictTypeId, vo.getDictTypeId()) + .eq(SysDictDataEntity::getDictValue, vo.getDictValue()) + .ne(SysDictDataEntity::getId, vo.getId())); + if (sysDictData != null) { + throw new ServerException("字典值重复!"); + } + SysDictDataEntity entity = SysDictDataConvert.INSTANCE.convert(vo); updateById(entity); @@ -64,4 +81,5 @@ public class SysDictDataServiceImpl extends BaseServiceImpl dictTypeEntities = super.list(); for (SysDictTypeEntity dictTypeEntity : dictTypeEntities) { if (dictTypeDataMap.containsKey(dictTypeEntity.getId())) { - dictionaryTransService.refreshCache(dictTypeEntity.getDictType(), dictTypeDataMap.get(dictTypeEntity.getId()) - .stream().collect(Collectors.toMap(SysDictDataEntity::getDictValue, SysDictDataEntity::getDictLabel))); + try { + dictionaryTransService.refreshCache(dictTypeEntity.getDictType(), dictTypeDataMap.get(dictTypeEntity.getId()) + .stream().collect(Collectors.toMap(SysDictDataEntity::getDictValue, SysDictDataEntity::getDictLabel))); + } catch (Exception e) { + log.error("刷新字典缓存异常: type=" + dictTypeEntity, e); + } } } return null;