mirror of https://gitee.com/stylefeng/roses
parent
8bceb2ed24
commit
536f4b0a8c
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue