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.Wrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.maku.framework.common.exception.ServerException;
|
||||||
import net.maku.framework.common.utils.PageResult;
|
import net.maku.framework.common.utils.PageResult;
|
||||||
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
|
import net.maku.framework.mybatis.service.impl.BaseServiceImpl;
|
||||||
import net.maku.system.convert.SysDictDataConvert;
|
import net.maku.system.convert.SysDictDataConvert;
|
||||||
import net.maku.system.dao.SysDictDataDao;
|
import net.maku.system.dao.SysDictDataDao;
|
||||||
import net.maku.system.entity.SysDictDataEntity;
|
import net.maku.system.entity.SysDictDataEntity;
|
||||||
import net.maku.system.service.SysDictDataService;
|
|
||||||
import net.maku.system.query.SysDictDataQuery;
|
import net.maku.system.query.SysDictDataQuery;
|
||||||
|
import net.maku.system.service.SysDictDataService;
|
||||||
import net.maku.system.vo.SysDictDataVO;
|
import net.maku.system.vo.SysDictDataVO;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
@ -45,6 +47,13 @@ public class SysDictDataServiceImpl extends BaseServiceImpl<SysDictDataDao, SysD
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void save(SysDictDataVO vo) {
|
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);
|
SysDictDataEntity entity = SysDictDataConvert.INSTANCE.convert(vo);
|
||||||
|
|
||||||
baseMapper.insert(entity);
|
baseMapper.insert(entity);
|
||||||
|
@ -53,6 +62,14 @@ public class SysDictDataServiceImpl extends BaseServiceImpl<SysDictDataDao, SysD
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void update(SysDictDataVO vo) {
|
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);
|
SysDictDataEntity entity = SysDictDataConvert.INSTANCE.convert(vo);
|
||||||
|
|
||||||
updateById(entity);
|
updateById(entity);
|
||||||
|
@ -64,4 +81,5 @@ public class SysDictDataServiceImpl extends BaseServiceImpl<SysDictDataDao, SysD
|
||||||
removeByIds(idList);
|
removeByIds(idList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -144,8 +144,12 @@ public class SysDictTypeServiceImpl extends BaseServiceImpl<SysDictTypeDao, SysD
|
||||||
List<SysDictTypeEntity> dictTypeEntities = super.list();
|
List<SysDictTypeEntity> dictTypeEntities = super.list();
|
||||||
for (SysDictTypeEntity dictTypeEntity : dictTypeEntities) {
|
for (SysDictTypeEntity dictTypeEntity : dictTypeEntities) {
|
||||||
if (dictTypeDataMap.containsKey(dictTypeEntity.getId())) {
|
if (dictTypeDataMap.containsKey(dictTypeEntity.getId())) {
|
||||||
dictionaryTransService.refreshCache(dictTypeEntity.getDictType(), dictTypeDataMap.get(dictTypeEntity.getId())
|
try {
|
||||||
.stream().collect(Collectors.toMap(SysDictDataEntity::getDictValue, SysDictDataEntity::getDictLabel)));
|
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;
|
return null;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user