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.rule.pojo.request.BaseRequest;
|
||||||
import cn.stylefeng.roses.kernel.validator.api.validators.status.StatusValue;
|
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.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@ -54,26 +53,12 @@ public class DictRequest extends BaseRequest {
|
||||||
* 字典编码
|
* 字典编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "字典编码不能为空", groups = {add.class, edit.class, validateAvailable.class})
|
@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;
|
private String dictCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字典名称
|
* 字典名称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "字典名称不能为空", groups = {add.class, edit.class})
|
@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;
|
private String dictName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -76,6 +76,10 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(DictRequest dictRequest) {
|
public void add(DictRequest dictRequest) {
|
||||||
|
|
||||||
|
// 校验字典重复
|
||||||
|
this.validateRepeat(dictRequest, false);
|
||||||
|
|
||||||
SysDict sysDict = new SysDict();
|
SysDict sysDict = new SysDict();
|
||||||
BeanUtil.copyProperties(dictRequest, sysDict);
|
BeanUtil.copyProperties(dictRequest, sysDict);
|
||||||
sysDict.setDictParentId(DictConstants.DEFAULT_DICT_PARENT_ID);
|
sysDict.setDictParentId(DictConstants.DEFAULT_DICT_PARENT_ID);
|
||||||
|
@ -96,6 +100,9 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void edit(DictRequest dictRequest) {
|
public void edit(DictRequest dictRequest) {
|
||||||
|
|
||||||
|
// 校验字典重复
|
||||||
|
this.validateRepeat(dictRequest, true);
|
||||||
|
|
||||||
SysDict sysDict = this.querySysDict(dictRequest);
|
SysDict sysDict = this.querySysDict(dictRequest);
|
||||||
BeanUtil.copyProperties(dictRequest, sysDict);
|
BeanUtil.copyProperties(dictRequest, sysDict);
|
||||||
|
|
||||||
|
@ -241,4 +248,40 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
|
||||||
return queryWrapper;
|
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