From ab06f7043e4192556c4d9881b0430bcb6cc75f50 Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期三, 03 五月 2023 23:28:02 +0800
Subject: [PATCH] 完成家根网

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java |   72 +++++++++++++++++++++++++++++++++++-
 1 files changed, 70 insertions(+), 2 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
index 93b18ec..ca62533 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -250,6 +250,7 @@
 
     }
 
+
     private void checkAuthorization(String familyId, String destinationFamilyId,boolean flag) {
         String text=null;
         if(flag){
@@ -283,8 +284,6 @@
         return familyId;
     }
 
-
-
     private String getFinalStr(String destinationFamilyId, List<String> authorityList) {
         String authorityListStr = authorityList.stream().collect(Collectors.joining(" ", "{", "}"));
         String finalStr= destinationFamilyId +authorityListStr;  //3{2007 1988 1004}
@@ -292,4 +291,73 @@
     }
 
 
+    /**
+     * 鑾峰彇瀹舵牴缃�
+     * @return
+     */
+    @Override
+    public AjaxResult listWithTree() {
+
+        List<ZInfoUser> allPeopleList = list();
+        List<ZInfoUser> result = null;
+        try {
+            result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
+                    .map(people -> {
+                        people.setChildList(fillChildren(people, allPeopleList));
+                        return people;
+                    }).collect(Collectors.toList());
+        } catch (NullPointerException e) {
+            throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
+        }
+        return AjaxResult.success(result);
+
+    }
+
+    /**
+     * 涓轰簡瀹舵牴缃戙�佹柊澧炴垨鑰呬慨鏀圭埗瀛愬叧绯�
+     * @param fatherId
+     * @param motherId
+     * @return
+     */
+    @Override
+    public AjaxResult addParent(Long fatherId, Long motherId) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId,userId);
+        ZInfoUser zInfoUser = getOne(zInfoUserLambdaQueryWrapper);
+
+        zInfoUser.setFatherId(fatherId);
+        zInfoUser.setMomId(motherId);
+
+        updateById(zInfoUser);
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult listAllExceptAdmin() {
+        List<ZInfoUser> collect = list().stream().filter(zInfoUser -> zInfoUser.getUserId() != 1).collect(Collectors.toList());
+        return AjaxResult.success(collect);
+
+    }
+
+    /**
+     * 閫掑綊绠楁硶
+     * @param people
+     * @param allPeopleList
+     * @return
+     */
+    private List<ZInfoUser> fillChildren(ZInfoUser people, List<ZInfoUser> allPeopleList) {
+        return allPeopleList.stream().filter(
+                one -> one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()
+        ).map(
+                one -> {
+                    one.setChildList(fillChildren(one, allPeopleList));
+                    return one;
+                }
+        ).collect(Collectors.toList());
+
+    }
+
+
 }

--
Gitblit v1.9.1