From aa566e55023f6d4fa0d4223434b95cd064c3d0d0 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期一, 27 三月 2023 09:25:10 +0800
Subject: [PATCH] 直接使用业务字典完成功能,检查字典是否存在,存在即返回,不存在新增
---
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java | 8 ++++++++
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java | 11 +++++++++++
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java | 19 +++++++++++++++++++
3 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java
index cd3708b..542855a 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java
+++ b/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);
+ }
+
}
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java
index 28d3a33..4030e5a 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java
+++ b/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);
}
diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java
index 087520b..965e7df 100644
--- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java
+++ b/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("鎿嶄綔澶辫触锛�");
+ }
}
--
Gitblit v1.9.3