Pre Merge pull request !33 from lhy/fix-dict
This commit is contained in:
commit
703f9fca27
|
@ -23,6 +23,11 @@ public class SysDictTypeBaseVO {
|
||||||
@NotNull(message = "状态不能为空")
|
@NotNull(message = "状态不能为空")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "字典类型", required = true)
|
||||||
|
@NotNull(message = "字典类型不能为空")
|
||||||
|
@Size(max = 100, message = "字典类型长度不能超过100个字符")
|
||||||
|
private String type;
|
||||||
|
|
||||||
@ApiModelProperty(value = "备注", example = "快乐的备注")
|
@ApiModelProperty(value = "备注", example = "快乐的备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,19 @@ public interface SysDictDataService extends DictDataFrameworkService {
|
||||||
*/
|
*/
|
||||||
void updateDictData(SysDictDataUpdateReqVO reqVO);
|
void updateDictData(SysDictDataUpdateReqVO reqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手动更新字典数据
|
||||||
|
*/
|
||||||
|
|
||||||
|
void refreshDictData();
|
||||||
|
/**
|
||||||
|
* 更新字典类型
|
||||||
|
*
|
||||||
|
* @param oldType 旧字典类型
|
||||||
|
* @param newType 新字典类型
|
||||||
|
*/
|
||||||
|
void updateDictDataType(String oldType, String newType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除字典数据
|
* 删除字典数据
|
||||||
*
|
*
|
||||||
|
|
|
@ -16,6 +16,7 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictDataMap
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer;
|
import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
|
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;
|
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.collect.ImmutableTable;
|
import com.google.common.collect.ImmutableTable;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -177,6 +178,21 @@ public class SysDictDataServiceImpl implements SysDictDataService {
|
||||||
dictDataProducer.sendDictDataRefreshMessage();
|
dictDataProducer.sendDictDataRefreshMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refreshDictData() {
|
||||||
|
initLocalCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDictDataType(String oldType, String newType) {
|
||||||
|
if (oldType == null || newType == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dictDataMapper.update(new SysDictDataDO(), new LambdaUpdateWrapper<SysDictDataDO>()
|
||||||
|
.set(SysDictDataDO::getDictType, newType)
|
||||||
|
.eq(SysDictDataDO::getDictType, oldType));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteDictData(Long id) {
|
public void deleteDictData(Long id) {
|
||||||
// 校验是否存在
|
// 校验是否存在
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package cn.iocoder.yudao.adminserver.modules.system.service.dict.impl;
|
package cn.iocoder.yudao.adminserver.modules.system.service.dict.impl;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO;
|
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeCreateReqVO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeExportReqVO;
|
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypeExportReqVO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypePageReqVO;
|
import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.type.SysDictTypePageReqVO;
|
||||||
|
@ -10,14 +9,15 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTy
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictTypeMapper;
|
import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictTypeMapper;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
|
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
|
||||||
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;
|
import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
|
import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典类型 Service 实现类
|
* 字典类型 Service 实现类
|
||||||
|
@ -66,10 +66,13 @@ public class SysDictTypeServiceImpl implements SysDictTypeService {
|
||||||
@Override
|
@Override
|
||||||
public void updateDictType(SysDictTypeUpdateReqVO reqVO) {
|
public void updateDictType(SysDictTypeUpdateReqVO reqVO) {
|
||||||
// 校验正确性
|
// 校验正确性
|
||||||
this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), null);
|
SysDictTypeDO sysDictTypeDO = this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), null);
|
||||||
// 更新字典类型
|
// 更新字典类型
|
||||||
SysDictTypeDO updateObj = SysDictTypeConvert.INSTANCE.convert(reqVO);
|
SysDictTypeDO updateObj = SysDictTypeConvert.INSTANCE.convert(reqVO);
|
||||||
dictTypeMapper.updateById(updateObj);
|
dictTypeMapper.updateById(updateObj);
|
||||||
|
// 更新字典数据,并更新缓存中的字典值
|
||||||
|
dictDataService.updateDictDataType(sysDictTypeDO.getType(), reqVO.getType());
|
||||||
|
dictDataService.refreshDictData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -89,13 +92,14 @@ public class SysDictTypeServiceImpl implements SysDictTypeService {
|
||||||
return dictTypeMapper.selectList();
|
return dictTypeMapper.selectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkCreateOrUpdate(Long id, String name, String type) {
|
private SysDictTypeDO checkCreateOrUpdate(Long id, String name, String type) {
|
||||||
// 校验自己存在
|
// 校验自己存在
|
||||||
checkDictTypeExists(id);
|
SysDictTypeDO sysDictTypeDO = checkDictTypeExists(id);
|
||||||
// 校验字典类型的名字的唯一性
|
// 校验字典类型的名字的唯一性
|
||||||
checkDictTypeNameUnique(id, name);
|
checkDictTypeNameUnique(id, name);
|
||||||
// 校验字典类型的类型的唯一性
|
// 校验字典类型的类型的唯一性
|
||||||
checkDictTypeUnique(id, type);
|
checkDictTypeUnique(id, type);
|
||||||
|
return sysDictTypeDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@ -115,6 +119,10 @@ public class SysDictTypeServiceImpl implements SysDictTypeService {
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void checkDictTypeUnique(Long id, String type) {
|
public void checkDictTypeUnique(Long id, String type) {
|
||||||
|
// 判断type是否为空,减少一次查询数据库的操作
|
||||||
|
if (type == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
SysDictTypeDO dictType = dictTypeMapper.selectByType(type);
|
SysDictTypeDO dictType = dictTypeMapper.selectByType(type);
|
||||||
if (dictType == null) {
|
if (dictType == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||||
cn.iocoder.yudao.framework.operatelog.config.YudaoOperateLogAutoConfiguration
|
cn.iocoder.yudao.framework.dict.config.YudaoDictAutoConfiguration
|
||||||
|
|
Loading…
Reference in New Issue