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