fix 修复 字典键值可重复配置问题
This commit is contained in:
parent
ea64f505af
commit
eb06eb7266
@ -87,6 +87,9 @@ public class SysDictDataController extends BaseController {
|
|||||||
@Log(title = "字典数据", businessType = BusinessType.INSERT)
|
@Log(title = "字典数据", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R<Void> add(@Validated @RequestBody SysDictDataBo dict) {
|
public R<Void> add(@Validated @RequestBody SysDictDataBo dict) {
|
||||||
|
if (!dictDataService.checkDictDataUnique(dict)) {
|
||||||
|
return R.fail("新增字典数据'" + dict.getDictValue() + "'失败,字典键值已存在");
|
||||||
|
}
|
||||||
dictDataService.insertDictData(dict);
|
dictDataService.insertDictData(dict);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
@ -98,6 +101,9 @@ public class SysDictDataController extends BaseController {
|
|||||||
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
|
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public R<Void> edit(@Validated @RequestBody SysDictDataBo dict) {
|
public R<Void> edit(@Validated @RequestBody SysDictDataBo dict) {
|
||||||
|
if (!dictDataService.checkDictDataUnique(dict)) {
|
||||||
|
return R.fail("修改字典数据'" + dict.getDictValue() + "'失败,字典键值已存在");
|
||||||
|
}
|
||||||
dictDataService.updateDictData(dict);
|
dictDataService.updateDictData(dict);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
@ -64,4 +64,13 @@ public interface ISysDictDataService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
List<SysDictDataVo> updateDictData(SysDictDataBo bo);
|
List<SysDictDataVo> updateDictData(SysDictDataBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验字典键值是否唯一
|
||||||
|
*
|
||||||
|
* @param dict 字典数据
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
boolean checkDictDataUnique(SysDictDataBo dict);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.system.service.impl;
|
package org.dromara.system.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -135,4 +136,21 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
|
|||||||
throw new ServiceException("操作失败");
|
throw new ServiceException("操作失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验字典键值是否唯一
|
||||||
|
*
|
||||||
|
* @param dict 字典数据
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean checkDictDataUnique(SysDictDataBo dict) {
|
||||||
|
Long dictCode = ObjectUtil.isNull(dict.getDictCode()) ? -1L : dict.getDictCode();
|
||||||
|
SysDictData entity = baseMapper.selectOne(new LambdaQueryWrapper<SysDictData>()
|
||||||
|
.eq(SysDictData::getDictType, dict.getDictType()).eq(SysDictData::getDictValue, dict.getDictValue()));
|
||||||
|
if (ObjectUtil.isNotNull(entity) && !dictCode.equals(entity.getDictCode())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user