From bdb42a12e203372fa18f7e50c8f7b43597532fdc Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 15 五月 2024 15:05:01 +0800
Subject: [PATCH] 优化

---
 meiya-admin/src/main/java/com/sinata/modular/member/service/impl/MemUserRelationServiceImpl.java |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/meiya-admin/src/main/java/com/sinata/modular/member/service/impl/MemUserRelationServiceImpl.java b/meiya-admin/src/main/java/com/sinata/modular/member/service/impl/MemUserRelationServiceImpl.java
index f8e86b8..68ad142 100644
--- a/meiya-admin/src/main/java/com/sinata/modular/member/service/impl/MemUserRelationServiceImpl.java
+++ b/meiya-admin/src/main/java/com/sinata/modular/member/service/impl/MemUserRelationServiceImpl.java
@@ -147,5 +147,42 @@
         }
         return array;
     }
-
+    @Override
+    public MemUser[] getParentV4V5ByRelationPath2(String relationPath, Integer memberGradeId) {
+        MemUser[] array = new MemUser[]{null, null};
+        if (relationPath != null) {
+            String[] pathArray = relationPath.split("/");
+            String parentId = pathArray[pathArray.length - 2];
+            MemUser parentUser = memUserService.selectById(parentId);
+            findParents(parentUser, pathArray, array);
+        }
+        return array;
+    }
+    private void findParents(MemUser user, String[] pathArray, MemUser[] array) {
+        if (user != null) {
+            Integer memberGradeId = user.getMemberGradeId();
+            if (memberGradeId == EnumMemberGrade.G_3.index) {
+                String grandParentId = pathArray[pathArray.length - 3];
+                MemUser grandParent = memUserService.selectById(grandParentId);
+                if (grandParent != null && grandParent.getMemberGradeId() == EnumMemberGrade.G_4.index) {
+                    array[0] = grandParent;
+                    String greatGrandParentId = pathArray[pathArray.length - 3];
+                    MemUser greatGrandParent = memUserService.selectById(greatGrandParentId);
+                    if (greatGrandParent != null && greatGrandParent.getMemberGradeId() == EnumMemberGrade.G_5.index) {
+                        array[1] = greatGrandParent;
+                    }
+                }
+            } else if (memberGradeId == EnumMemberGrade.G_4.index) {
+                array[0] = user;
+                String parentId = pathArray[pathArray.length - 3];
+                MemUser parent = memUserService.selectById(parentId);
+                if (parent != null && parent.getMemberGradeId() == EnumMemberGrade.G_5.index) {
+                    array[1] = parent;
+                }
+            } else if (memberGradeId == EnumMemberGrade.G_5.index) {
+                array[0] = user;
+                array[1] = user;
+            }
+        }
+    }
 }

--
Gitblit v1.7.1