【7.0.3】【dict】字典新增和修改的校验改为手动

pull/15/MERGE v7.0.3
fengshuonan 2021-05-12 17:25:10 +08:00
parent 8bceb2ed24
commit 536f4b0a8c
2 changed files with 43 additions and 15 deletions

View File

@ -26,7 +26,6 @@ package cn.stylefeng.roses.kernel.dict.modular.pojo.request;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
import cn.stylefeng.roses.kernel.validator.api.validators.unique.TableUniqueValue;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -54,26 +53,12 @@ public class DictRequest extends BaseRequest {
*
*/
@NotBlank(message = "字典编码不能为空", groups = {add.class, edit.class, validateAvailable.class})
@TableUniqueValue(
message = "字典编码存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict",
columnName = "dict_code",
idFieldName = "dict_id",
excludeLogicDeleteItems = true)
private String dictCode;
/**
*
*/
@NotBlank(message = "字典名称不能为空", groups = {add.class, edit.class})
@TableUniqueValue(
message = "字典名称存在重复",
groups = {add.class, edit.class},
tableName = "sys_dict",
columnName = "dict_name",
idFieldName = "dict_id",
excludeLogicDeleteItems = true)
private String dictName;
/**

View File

@ -76,6 +76,10 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
@Override
@Transactional(rollbackFor = Exception.class)
public void add(DictRequest dictRequest) {
// 校验字典重复
this.validateRepeat(dictRequest, false);
SysDict sysDict = new SysDict();
BeanUtil.copyProperties(dictRequest, sysDict);
sysDict.setDictParentId(DictConstants.DEFAULT_DICT_PARENT_ID);
@ -96,6 +100,9 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
@Transactional(rollbackFor = Exception.class)
public void edit(DictRequest dictRequest) {
// 校验字典重复
this.validateRepeat(dictRequest, true);
SysDict sysDict = this.querySysDict(dictRequest);
BeanUtil.copyProperties(dictRequest, sysDict);
@ -241,4 +248,40 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
return queryWrapper;
}
/**
*
*
* @author fengshuonan
* @date 2021/5/12 16:58
*/
private void validateRepeat(DictRequest dictRequest, boolean editFlag) {
// 检验同字典类型下是否有一样的编码
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysDictLambdaQueryWrapper.eq(SysDict::getDictTypeCode, dictRequest.getDictTypeCode());
sysDictLambdaQueryWrapper.eq(SysDict::getDictCode, dictRequest.getDictCode());
if (editFlag) {
sysDictLambdaQueryWrapper.ne(SysDict::getDictId, dictRequest.getDictId());
}
sysDictLambdaQueryWrapper.ne(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
int count = this.count(sysDictLambdaQueryWrapper);
if (count > 0) {
throw new DictException(DictExceptionEnum.DICT_CODE_REPEAT, dictRequest.getDictTypeCode(), dictRequest.getDictCode());
}
// 检验同字典类型下是否有一样的名称
LambdaQueryWrapper<SysDict> dictNameWrapper = new LambdaQueryWrapper<>();
dictNameWrapper.eq(SysDict::getDictTypeCode, dictRequest.getDictTypeCode());
dictNameWrapper.eq(SysDict::getDictName, dictRequest.getDictName());
if (editFlag) {
dictNameWrapper.ne(SysDict::getDictId, dictRequest.getDictId());
}
dictNameWrapper.ne(SysDict::getDelFlag, YesOrNotEnum.Y.getCode());
int dictNameCount = this.count(dictNameWrapper);
if (dictNameCount > 0) {
throw new DictException(DictExceptionEnum.DICT_NAME_REPEAT, dictRequest.getDictTypeCode(), dictRequest.getDictCode());
}
}
}