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/impl/DictServiceImpl.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

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