Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java
@@ -192,5 +192,16 @@ return R.data(list); } /** * 检查字典是否存在,存在即返回,不存在新增 */ @PostMapping("/check") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入dict") public R checkOrInsert(@Valid @RequestBody Dict dict) { CacheUtil.clear(DICT_CACHE, Boolean.FALSE); return dictService.checkOrInsert(dict); } } Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java
@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.system.entity.Dict; import org.springblade.system.vo.DictVO; @@ -106,4 +107,11 @@ */ List<DictVO> childList(Map<String, Object> dict, Long parentId); /** * 新增或修改 * * @param dict * @return */ R checkOrInsert(Dict dict); } Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java
@@ -25,6 +25,7 @@ import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.Func; @@ -122,4 +123,22 @@ List<Dict> list = this.list(Condition.getQueryWrapper(dict, Dict.class).lambda().ne(Dict::getId, parentId).eq(Dict::getCode, parentDict.getCode()).orderByAsc(Dict::getSort)); return DictWrapper.build().listNodeVO(list); } @Override public R checkOrInsert(Dict dict) { LambdaQueryWrapper<Dict> lqw = Wrappers.<Dict>query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey()); Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId())); if (cnt > 0L) { R.fail("字典已经存在!"); } if (Func.isEmpty(dict.getParentId())) { dict.setParentId(BladeConstant.TOP_PARENT_ID); } dict.setIsDeleted(BladeConstant.DB_NOT_DELETED); CacheUtil.clear(DICT_CACHE, Boolean.FALSE); if(saveOrUpdate(dict) == true){ return R.success("操作成功!"); } return R.fail("操作失败!"); } }