From 2039385fa4b4ac688907134ee7c7025fb2aea1fb Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期日, 16 七月 2023 12:59:17 +0800
Subject: [PATCH] 666

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java |  261 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 170 insertions(+), 91 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 7332469..514ecb0 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
@@ -18,13 +18,16 @@
 import com.ruoyi.domain.dto.*;
 import com.ruoyi.mapper.ZInfoUserMapper;
 import com.ruoyi.service.ZInfoUserService;
+import com.ruoyi.service.ZfFamilyService;
 import com.ruoyi.service.ZfRelationService;
+import com.ruoyi.service.ZfRoleService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,6 +48,12 @@
 
     @Autowired
     private ZInfoUserService zInfoUserService;
+
+    @Resource
+    private ZfFamilyService zfFamilyService;
+
+    @Resource
+    private ZfRoleService zfRoleService;
 
     @Override
     public AjaxResult selectInfoList(ZInfoUser zInfoUser, Integer pageNum, Integer pageSize) {
@@ -128,90 +137,95 @@
         return AjaxResult.success();
     }
 
-    /**
-     * 缁欑敤鎴锋巿鏉冪殑鏂规硶
-     * @param empowerDto
-     * @return
-     */
     @Override
-    @Transactional
     public AjaxResult empower(EmpowerDto empowerDto) {
-
-        //寰楀埌dto涓殑淇℃伅
-        String otherUserId = empowerDto.getUserId();
-        String destinationFamilyId = empowerDto.getFamilyId();
-        List<String> authorityList = empowerDto.getAuthorityList();
-
-        String familyId = getMyFamilyId();
-        checkAuthorization(familyId, destinationFamilyId,true);
-
-        //鎺堟潈  //3{2007 1988 1004}
-        String finalStr = getFinalStr(destinationFamilyId, authorityList);
-
-        //鏇存柊琚巿鏉冪敤鎴风殑鏉冮檺
-        LambdaQueryWrapper<ZInfoUser> lqw2 = new LambdaQueryWrapper<>();
-        lqw2.eq(ZInfoUser::getUserId,otherUserId);
-        ZInfoUser otherUser = getOne(lqw2);
-        String secondFamilyId = otherUser.getSecondFamilyId();
-
-        String replaceFamilyId=null;
-
-        boolean save=true;
-
-        if (StringUtils.isNotEmpty(secondFamilyId)){
-            //濡傛灉鍘熸潵灏卞凡缁忔湁琚祴浜堟潈闄愪簡锛岄偅涔堥渶瑕佸垽鏂槸涓嶆槸璺熻繖涓搴彿鏈夊叧鐨勬潈闄�
-
-            //杩欎釜secondFamilyId鏄綋鍓嶇敤鎴风殑瀹屾暣鏉冮檺瀛楁
-            if(secondFamilyId.contains(",")){
-                String[] split = secondFamilyId.split(",");
-                for (int i = 0; i < split.length; i++) {
-                    String fid = split[i].substring(0, split[i].indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
-                    if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
-                        //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
-                        save=false;
-                        split[i]=finalStr;
-                        break;
-                    }
-                }
-                List<String> finalList = Arrays.asList(split);
-                StringBuilder stringBuilder = new StringBuilder();
-                for (String s : finalList) {
-                    stringBuilder.append(s).append(",");
-                }
-                stringBuilder.deleteCharAt(stringBuilder.length()-1);
-
-                replaceFamilyId = stringBuilder.toString();
-
-            }else {
-                String fid = secondFamilyId.substring(0, secondFamilyId.indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
-                if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
-                    //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
-                    save=false;
-                    replaceFamilyId=finalStr;
-                }
-            }
-
-            if(save){
-                //闇�瑕佽拷鍔�,娌℃湁鍖归厤鍒板搴旂殑瀹跺涵鍙�
-                replaceFamilyId=secondFamilyId+","+finalStr;
-            }else {
-                //涓嶉渶瑕佽拷鍔�
-            }
-
-        }else {
-            //鍘熸潵灏辨病鏈夋潈闄愪簡
-            replaceFamilyId=finalStr;
-        }
-
-        LambdaUpdateWrapper<ZInfoUser> uw = new LambdaUpdateWrapper<>();
-        uw.eq(ZInfoUser::getUserId,otherUserId).set(ZInfoUser::getSecondFamilyId,replaceFamilyId);
-        if (update(null,uw)) {
-            return AjaxResult.success();
-        }else {
-            return AjaxResult.error();
-        }
-
+        return null;
     }
+
+//    /**
+//     * 缁欑敤鎴锋巿鏉冪殑鏂规硶
+//     * @param empowerDto
+//     * @return
+//     */
+//    @Override
+//    @Transactional
+//    public AjaxResult empower(EmpowerDto empowerDto) {
+//
+//        //寰楀埌dto涓殑淇℃伅
+//        String otherUserId = empowerDto.getUserId();
+//        String destinationFamilyId = empowerDto.getFamilyId();
+//        List<String> authorityList = empowerDto.getAuthorityList();
+//
+//        String familyId = getMyFamilyId();
+//        checkAuthorization(familyId, destinationFamilyId,true);
+//
+//        //鎺堟潈  //3{2007 1988 1004}
+//        String finalStr = getFinalStr(destinationFamilyId, authorityList);
+//
+//        //鏇存柊琚巿鏉冪敤鎴风殑鏉冮檺
+//        LambdaQueryWrapper<ZInfoUser> lqw2 = new LambdaQueryWrapper<>();
+//        lqw2.eq(ZInfoUser::getUserId,otherUserId);
+//        ZInfoUser otherUser = getOne(lqw2);
+//        String secondFamilyId = otherUser.getSecondFamilyId();
+//
+//        String replaceFamilyId=null;
+//
+//        boolean save=true;
+//
+//        if (StringUtils.isNotEmpty(secondFamilyId)){
+//            //濡傛灉鍘熸潵灏卞凡缁忔湁琚祴浜堟潈闄愪簡锛岄偅涔堥渶瑕佸垽鏂槸涓嶆槸璺熻繖涓搴彿鏈夊叧鐨勬潈闄�
+//
+//            //杩欎釜secondFamilyId鏄綋鍓嶇敤鎴风殑瀹屾暣鏉冮檺瀛楁
+//            if(secondFamilyId.contains(",")){
+//                String[] split = secondFamilyId.split(",");
+//                for (int i = 0; i < split.length; i++) {
+//                    String fid = split[i].substring(0, split[i].indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
+//                    if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
+//                        //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
+//                        save=false;
+//                        split[i]=finalStr;
+//                        break;
+//                    }
+//                }
+//                List<String> finalList = Arrays.asList(split);
+//                StringBuilder stringBuilder = new StringBuilder();
+//                for (String s : finalList) {
+//                    stringBuilder.append(s).append(",");
+//                }
+//                stringBuilder.deleteCharAt(stringBuilder.length()-1);
+//
+//                replaceFamilyId = stringBuilder.toString();
+//
+//            }else {
+//                String fid = secondFamilyId.substring(0, secondFamilyId.indexOf("{"));//浠庢潈闄愬潡涓嬁鍒拌鎺堟潈鐨勫搴彿
+//                if(fid.equals(finalStr.substring(0,finalStr.indexOf("{")))){
+//                    //濡傛灉鍖归厤鍒颁簡瀵瑰簲鐨勫搴彿锛岄偅涔堝氨鏇挎崲鎺夊搴旂殑鏉冮檺鍧楀氨鍙互浜嗭紝涓嶉渶瑕佽拷鍔�
+//                    save=false;
+//                    replaceFamilyId=finalStr;
+//                }
+//            }
+//
+//            if(save){
+//                //闇�瑕佽拷鍔�,娌℃湁鍖归厤鍒板搴旂殑瀹跺涵鍙�
+//                replaceFamilyId=secondFamilyId+","+finalStr;
+//            }else {
+//                //涓嶉渶瑕佽拷鍔�
+//            }
+//
+//        }else {
+//            //鍘熸潵灏辨病鏈夋潈闄愪簡
+//            replaceFamilyId=finalStr;
+//        }
+//
+//        LambdaUpdateWrapper<ZInfoUser> uw = new LambdaUpdateWrapper<>();
+//        uw.eq(ZInfoUser::getUserId,otherUserId).set(ZInfoUser::getSecondFamilyId,replaceFamilyId);
+//        if (update(null,uw)) {
+//            return AjaxResult.success();
+//        }else {
+//            return AjaxResult.error();
+//        }
+//
+//    }
 
 
     private void checkAuthorization(String familyId, String destinationFamilyId,boolean flag) {
@@ -236,14 +250,14 @@
         }
     }
 
-    private String getMyFamilyId() {
+    private Long getMyFamilyId() {
         //寰楀埌鑷繁鐨勫搴璱d淇℃伅
         SysUser user = SecurityUtils.getLoginUser().getUser();
         Long myUserId = user.getUserId();
         LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
         lqw.eq(ZInfoUser::getUserId,myUserId);
         ZInfoUser zInfoUser = getOne(lqw);
-        String familyId = zInfoUser.getFamilyId();
+        Long familyId = zInfoUser.getFamilyId();
         return familyId;
     }
 
@@ -263,22 +277,36 @@
 
         List<ZInfoUser> allPeopleList = list();
         List<ZInfoUser> result = null;
-        try {
-              result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
+//        try {
+//              result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
+//                .map(people -> {
+//                    if(depth>1){
+//                        people.setIdentity(1);
+//                        //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
+//                        Long spouseId = people.getSpouseId();
+//                        ZInfoUser spouse = zInfoUserService.getById(spouseId);
+//                        spouse.setIdentity(1);
+//                        people.setSpouse(spouse);
+//                        people.setChildList(fillChildren(people, allPeopleList, depth-1));
+//                    }
+//                    return people;
+//                }).collect(Collectors.toList());
+//        } catch (NullPointerException e) {
+//            throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
+//        }
+        result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0)&&people.getIsMyFamily()==1)
                 .map(people -> {
                     if(depth>1){
                         people.setIdentity(1);
                         //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
                         Long spouseId = people.getSpouseId();
                         ZInfoUser spouse = zInfoUserService.getById(spouseId);
+                        spouse.setIdentity(1);
                         people.setSpouse(spouse);
                         people.setChildList(fillChildren(people, allPeopleList, depth-1));
                     }
                     return people;
                 }).collect(Collectors.toList());
-        } catch (NullPointerException e) {
-            throw new RuntimeException("鎮ㄥ湪鍔犲叆鎴愬憳鐨勬椂鍊欐病鏈夋寚瀹氳鎴愬憳鐨勭埗浜叉垨鑰呮瘝浜�");
-        }
 
 
         return AjaxResult.success(result);
@@ -406,6 +434,55 @@
 
     }
 
+    @Override
+    public ZInfoUser getInfoById(Long userId) {
+        ZInfoUser user = getById(userId);
+        Long familyId = user.getFamilyId();
+        String familyName = zfFamilyService.getById(familyId).getName();
+        String roleName = zfRoleService.getById(user.getRoleId()).getName();
+        user.setFamilyName(familyName);
+        user.setRoleName(roleName);
+        return user;
+    }
+
+//    @Override
+//    public ZInfoUser getInfoById(Long userId) {
+//
+//        ZInfoUser user = getById(userId);
+//
+//        //鐢ㄩ�楀彿闅斿紑鐨勫搴璱d
+//        String familyId = user.getFamilyId();
+//
+//        //鍦ㄨ嚜宸卞搴腑瑙掕壊鐨刬d
+//        Long roleId = user.getRoleId();
+//
+//        ArrayList<String> familyList = new ArrayList<>();
+//
+//        //濉厖鎵�灞炲搴�
+//        if(familyId.contains(",")){
+//            String[] familyIds = familyId.split(",");
+//            for (String id : familyIds) {
+//                familyList.add(zfFamilyService.getById(id).getName());
+//            }
+//        }else {
+//            familyList.add(zfFamilyService.getById(familyId).getName());
+//        }
+//
+//        user.setFamilyList(familyList);
+//
+//        //濉厖鎵�鍦ㄥ搴殑瑙掕壊
+//        user.setRole(zfRoleService.getById(roleId).getName());
+//
+//        return user;
+//    }
+
+    @Override
+    public ZInfoUser getMyself() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        return getById(userId);
+    }
+
 
     private void recursionFindUser(List<ZInfoUser> treeList){
         if (treeList==null||treeList.isEmpty()){
@@ -488,11 +565,13 @@
                         return one;
                     else {
                         one.setIdentity(people.getIdentity()+1);
-
                         //鏍规嵁閰嶅伓id鏌ヨ閰嶅伓鐨勬暟鎹紝灏佽濂戒竴璧疯繑鍥�
                         Long spouseId = one.getSpouseId();
-                        ZInfoUser spouse = zInfoUserService.getById(spouseId);
-                        one.setSpouse(spouse);
+                        if(spouseId!=null){
+                            ZInfoUser spouse = zInfoUserService.getById(spouseId);
+                            spouse.setIdentity(people.getIdentity()+1);
+                            one.setSpouse(spouse);
+                        }
                         List<ZInfoUser> zinfo = fillChildren(one, allPeopleList, depth - 1);
                         one.setChildList(zinfo);
                         System.out.println(one);

--
Gitblit v1.9.1