From 213cc37cbf0b2515a4de56cc1e01813211bad183 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期四, 25 五月 2023 15:53:57 +0800
Subject: [PATCH] 组织机构多选类型解析
---
product-server-org-admin/src/main/java/com/product/org/admin/service/OrganizationServiceV2.java | 24 +++++++++++++++++++-----
product-server-admin/src/main/java/com/product/admin/service/OrganizationCacheService.java | 14 +++++++++++++-
2 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/product-server-admin/src/main/java/com/product/admin/service/OrganizationCacheService.java b/product-server-admin/src/main/java/com/product/admin/service/OrganizationCacheService.java
index c4da5cf..c0f0d7c 100644
--- a/product-server-admin/src/main/java/com/product/admin/service/OrganizationCacheService.java
+++ b/product-server-admin/src/main/java/com/product/admin/service/OrganizationCacheService.java
@@ -403,6 +403,7 @@
orgMap.put(CmnConst.ORG_LEVEL_CODE_PARENT, fse.getString(CmnConst.ORG_LEVEL_CODE_PARENT));
orgMap.put(CmnConst.ORG_LEVEL_UUID, fse.getString(CmnConst.ORG_LEVEL_UUID));
orgMap.put(CmnConst.ORG_LEVEL_ALL, fse.getString(CmnConst.ORG_LEVEL_ALL));
+ orgMap.put(CmnConst.ORG_LEVEL_TYPE, fse.getString(CmnConst.ORG_LEVEL_TYPE));
orgMap.put("uuid", fse.getUUID());
orgMap.put("parent_uuid", fse.getString("parent_uuid"));
orgMap.put("parent_type", fse.getString("parent_type"));
@@ -411,6 +412,12 @@
}
}
+ /**
+ * 鑾峰彇缁勭粐鏈烘瀯锛堝叕鍙搞�侀儴闂級鏍规嵁uuid
+ *
+ * @param uuid
+ * @return
+ */
public static Map<String, Object> getOrgCacheByUuid(String uuid) {
if (!StringUtils.isEmpty(uuid) && RedisUtil.exists(ORG_UUID_CACHE_KEY + uuid)) {
return (Map<String, Object>) RedisUtil.get(ORG_UUID_CACHE_KEY + uuid);
@@ -418,7 +425,12 @@
return null;
}
-
+ /**
+ * 鑾峰彇缁勭粐鏈烘瀯锛堝叕鍙搞�侀儴闂級鏍规嵁org_level_code_parent
+ *
+ * @param org_level_code_parent
+ * @return
+ */
public static List<FieldSetEntity> getOrgCache(String org_level_code_parent) {
if (!StringUtils.isEmpty((org_level_code_parent)) && RedisUtil.exists(ORG_CACHE_KEY + org_level_code_parent)) {
Collection<Object> values = RedisUtil.getHash(ORG_CACHE_KEY + org_level_code_parent).values();
diff --git a/product-server-org-admin/src/main/java/com/product/org/admin/service/OrganizationServiceV2.java b/product-server-org-admin/src/main/java/com/product/org/admin/service/OrganizationServiceV2.java
index 9703ce2..9767c26 100644
--- a/product-server-org-admin/src/main/java/com/product/org/admin/service/OrganizationServiceV2.java
+++ b/product-server-org-admin/src/main/java/com/product/org/admin/service/OrganizationServiceV2.java
@@ -52,7 +52,7 @@
*
* @param values 澶氱绫诲瀷鐨勫�� 澶氫釜閫楀彿鍒嗛殧 鍒楋細 [xxx~uuid],(xxx~user_id),{xxx_post_uuid}
* @return 杩斿洖浜岀淮鏁扮粍
- * 绗竴涓淮搴︼細鍥哄畾闀垮害 3 锛屼笅鏍�0 浠h〃鏈烘瀯锛堝叕鍙搞�侀儴闂級 涓嬫爣 1 浠h〃宀椾綅 涓嬫爣 2 浠h〃 鐢ㄦ埛 锛屽彲鑳戒负绌�
+ * 绗竴涓淮搴︼細鍥哄畾闀垮害 4 锛屼笅鏍�0 浠h〃鍏徃 涓嬫爣1 浠h〃閮ㄩ棬 涓嬫爣 2 浠h〃宀椾綅 涓嬫爣 3 浠h〃 鐢ㄦ埛 锛屽彲鑳戒负绌�
* 绗簩涓淮搴︼細 闀垮害鏈煡锛岃繑鍥炰竴缁存暟缁勪腑瀵瑰簲鍚箟鐨� 鍊�,鍙兘涓虹┖
* @auth cheng
* @date 2022骞�4鏈�20鏃�18:21:09
@@ -69,17 +69,26 @@
}
String actualValue = val.substring(1, val.length() - 1);
- int index;
+ int index = -1;
if (val.startsWith("[") && val.endsWith("]")) {
//鏈烘瀯
- index = 0;
+ Map<String, Object> orgCacheByUuid = this.getOrgCacheByUuid(actualValue);
+ if (orgCacheByUuid != null) {
+ Object org_level_type = orgCacheByUuid.get(CmnConst.ORG_LEVEL_TYPE);
+ if (org_level_type != null) {
+ index = NumberUtil.parseInt(org_level_type.toString());
+ }
+ }
} else if (val.startsWith("{") && val.endsWith("}")) {
//宀椾綅
- index = 1;
+ index = 2;
} else if (val.startsWith("(") && val.endsWith(")")) {
//浜哄憳
- index = 2;
+ index = 3;
} else {
+ continue;
+ }
+ if (index == -1) {
continue;
}
if (typeValues[index] == null) {
@@ -92,6 +101,11 @@
return typeValues;
}
+ public static void main(String[] args) {
+ String[] a = new String[1];
+ System.out.println(a.length);
+ }
+
/**
* 鑾峰彇鎵�鏈夌殑浜哄憳
*
--
Gitblit v1.9.2