fix:修改字典值重复引发的Trans组件失效问题。
This commit is contained in:
parent
adbebc144c
commit
0cc015e6f3
|
@ -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 BaseServiceImpl<SysDictDataDao, SysD
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void save(SysDictDataVO vo) {
|
||||
SysDictDataEntity sysDictData = getOne(Wrappers.<SysDictDataEntity>lambdaQuery()
|
||||
.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 BaseServiceImpl<SysDictDataDao, SysD
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(SysDictDataVO vo) {
|
||||
SysDictDataEntity sysDictData = getOne(Wrappers.<SysDictDataEntity>lambdaQuery()
|
||||
.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<SysDictDataDao, SysD
|
|||
removeByIds(idList);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -144,8 +144,12 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl<SysDictTypeDao, SysD
|
|||
List<SysDictTypeEntity> 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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user