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