whywhyo
2023-09-05 3f50e9e810b478dbbd3225d9e5cedf47f586b69b
zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -30,6 +30,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * <p>
@@ -60,7 +61,7 @@
        LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
        Page<ZInfoUser> zInfoUserPage = new Page<>(pageNum,pageSize);
        Page<ZInfoUser> zInfoUserPage = new Page<>(pageNum, pageSize);
        Page<ZInfoUser> pageResult = page(zInfoUserPage, lqw);
        HashMap<String, Object> data = MapUtils.getResult(pageResult);
@@ -71,23 +72,23 @@
    private LambdaQueryWrapper<ZInfoUser> buildCondition(ZInfoUser zInfoUser) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(zInfoUser.getUserId()!=null,ZInfoUser::getUserId,zInfoUser.getUserId());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysAddress()),ZInfoUser::getAlwaysAddress,zInfoUser.getAlwaysAddress());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysPolice()),ZInfoUser::getAlwaysPolice,zInfoUser.getAlwaysPolice());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getIdNum()),ZInfoUser::getIdNum,zInfoUser.getIdNum());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationAddress()),ZInfoUser::getLocationAddress,zInfoUser.getLocationAddress());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationPolice()),ZInfoUser::getLocationPolice,zInfoUser.getLocationPolice());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNation()),ZInfoUser::getNation,zInfoUser.getNation());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNationality()),ZInfoUser::getNationality,zInfoUser.getNationality());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()),ZInfoUser::getNickName,zInfoUser.getNickName());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getOldName()),ZInfoUser::getOldName,zInfoUser.getOldName());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPhoneNumber()),ZInfoUser::getPhoneNumber,zInfoUser.getPhoneNumber());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPoliticalOutlook()),ZInfoUser::getPoliticalOutlook,zInfoUser.getPoliticalOutlook());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPosition()),ZInfoUser::getPosition,zInfoUser.getPosition());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getUnit()),ZInfoUser::getUnit,zInfoUser.getUnit());
        lqw.like(zInfoUser.getSex()!=null,ZInfoUser::getSex,zInfoUser.getSex());
        lqw.like(zInfoUser.getMaritalStatus()!=null,ZInfoUser::getMaritalStatus,zInfoUser.getMaritalStatus());
        lqw.like(zInfoUser.getBirth()!=null,ZInfoUser::getBirth,zInfoUser.getBirth());
        lqw.eq(zInfoUser.getUserId() != null, ZInfoUser::getUserId, zInfoUser.getUserId());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysAddress()), ZInfoUser::getAlwaysAddress, zInfoUser.getAlwaysAddress());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getAlwaysPolice()), ZInfoUser::getAlwaysPolice, zInfoUser.getAlwaysPolice());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getIdNum()), ZInfoUser::getIdNum, zInfoUser.getIdNum());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationAddress()), ZInfoUser::getLocationAddress, zInfoUser.getLocationAddress());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getLocationPolice()), ZInfoUser::getLocationPolice, zInfoUser.getLocationPolice());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNation()), ZInfoUser::getNation, zInfoUser.getNation());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNationality()), ZInfoUser::getNationality, zInfoUser.getNationality());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()), ZInfoUser::getNickName, zInfoUser.getNickName());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getOldName()), ZInfoUser::getOldName, zInfoUser.getOldName());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPhoneNumber()), ZInfoUser::getPhoneNumber, zInfoUser.getPhoneNumber());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPoliticalOutlook()), ZInfoUser::getPoliticalOutlook, zInfoUser.getPoliticalOutlook());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getPosition()), ZInfoUser::getPosition, zInfoUser.getPosition());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getUnit()), ZInfoUser::getUnit, zInfoUser.getUnit());
        lqw.like(zInfoUser.getSex() != null, ZInfoUser::getSex, zInfoUser.getSex());
        lqw.like(zInfoUser.getMaritalStatus() != null, ZInfoUser::getMaritalStatus, zInfoUser.getMaritalStatus());
        lqw.like(zInfoUser.getBirth() != null, ZInfoUser::getBirth, zInfoUser.getBirth());
        return lqw;
    }
@@ -96,7 +97,7 @@
    public List<ZInfoUser> selectByCondition(ZInfoUser zInfoUser) {
        LambdaQueryWrapper<ZInfoUser> lambdaQueryWrapper = buildCondition(zInfoUser);
        List<ZInfoUser> list = list(lambdaQueryWrapper);
        log.info("返回的数据为:{}",list);
        log.info("返回的数据为:{}", list);
        return list;
    }
@@ -108,7 +109,7 @@
        Long userId = user.getUserId();
        LambdaQueryWrapper<ZfRelation> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZfRelation::getMyId,userId);
        lqw.eq(ZfRelation::getMyId, userId);
        List<ZfRelation> list = zfRelationService.list(lqw);
        return AjaxResult.success(list);
@@ -228,24 +229,24 @@
//    }
    private void checkAuthorization(String familyId, String destinationFamilyId,boolean flag) {
        String text=null;
        if(flag){
            text="授权";
        }else {
            text="取消授权";
    private void checkAuthorization(String familyId, String destinationFamilyId, boolean flag) {
        String text = null;
        if (flag) {
            text = "授权";
        } else {
            text = "取消授权";
        }
        //对本人的家庭号进行处理
        if(familyId.contains(",")){
        if (familyId.contains(",")) {
            String[] familyIds = familyId.split(",");
            List<String> idList = Arrays.asList(familyIds);
            if (!idList.contains(destinationFamilyId)) {
                throw new RuntimeException("不能"+text+"不属于自己家庭的数据");
                throw new RuntimeException("不能" + text + "不属于自己家庭的数据");
            }
        }else {
            if (!familyId.equals(destinationFamilyId)){
                throw new RuntimeException("不能"+text+"不属于自己家庭的数据");
        } else {
            if (!familyId.equals(destinationFamilyId)) {
                throw new RuntimeException("不能" + text + "不属于自己家庭的数据");
            }
        }
    }
@@ -255,7 +256,7 @@
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long myUserId = user.getUserId();
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZInfoUser::getUserId,myUserId);
        lqw.eq(ZInfoUser::getUserId, myUserId);
        ZInfoUser zInfoUser = getOne(lqw);
        Long familyId = zInfoUser.getFamilyId();
        return familyId;
@@ -263,13 +264,14 @@
    private String getFinalStr(String destinationFamilyId, List<String> authorityList) {
        String authorityListStr = authorityList.stream().collect(Collectors.joining(" ", "{", "}"));
        String finalStr= destinationFamilyId +authorityListStr;  //3{2007 1988 1004}
        String finalStr = destinationFamilyId + authorityListStr;  //3{2007 1988 1004}
        return finalStr;
    }
    /**
     * 获取家根网
     *
     * @return
     */
    @Override
@@ -294,16 +296,20 @@
//        } catch (NullPointerException e) {
//            throw new RuntimeException("您在加入成员的时候没有指定该成员的父亲或者母亲");
//        }
        result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0)&&people.getIsMyFamily()==1)
        List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(people -> people.getUserId() != 1 && people.getIsMyFamily() == 1).collect(Collectors.toList());
        result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && (people.getFatherId() == 0 || people.getMomId() == 0) && people.getIsMyFamily() == 1)
                .map(people -> {
                    if(depth>1){
                    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));
                        people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
                    }
                    return people;
                }).collect(Collectors.toList());
@@ -315,32 +321,62 @@
    /**
     * 条件获取家庭成员
     *
     * @return
     */
    public AjaxResult listWithTreeByCondition(Integer depth,Genealogy genealogy) {
    public AjaxResult listWithTreeByCondition(Integer depth, Genealogy genealogy) {
        ZInfoUser zInfoUser = new ZInfoUser();
        BeanUtils.copyProperties(genealogy,zInfoUser);
        BeanUtils.copyProperties(genealogy, zInfoUser);
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(zInfoUser.getIdentity()!=null,ZInfoUser::getIdentity,zInfoUser.getIdentity());
        lqw.eq(zInfoUser.getSex()!=null,ZInfoUser::getSex,zInfoUser.getSex());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()),ZInfoUser::getNickName,zInfoUser.getNickName());
        lqw.eq(zInfoUser.getBirth()!=null,ZInfoUser::getBirth,zInfoUser.getBirth());
        lqw.eq(zInfoUser.getSex() != null, ZInfoUser::getSex, zInfoUser.getSex());
        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()), ZInfoUser::getNickName, zInfoUser.getNickName());
//        lqw.between(zInfoUser.getBirth() != null, ZInfoUser::getBirth, zInfoUser.getBirth(),zInfoUser.getBirth());
        List<ZInfoUser> allPeopleList = list(lqw);
//        List<ZInfoUser> allPeopleList = list();
        List<ZInfoUser> result = null;
        try {
            result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
            result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && (people.getFatherId() == 0 || people.getMomId() == 0))
                    .map(people -> {
                        if(depth>1){
                        if (depth > 1) {
                            people.setIdentity(1);
                            people.setChildList(fillChildren(people, allPeopleList, depth-1));
                            people.setChildList(fillChildren2(people, allPeopleList, depth - 1));
                        }
                        return people;
                    }).collect(Collectors.toList());
        } catch (NullPointerException e) {
            throw new RuntimeException("您在加入成员的时候没有指定该成员的父亲或者母亲");
        }
//        result.stream().map(
//                data->{
//                    if(genealogy.getIdentity()!=null){
//                        if(data.getIdentity()!=genealogy.getIdentity()){
//                            result.remove(data);
//                        }
//                    }
//
//                    if(genealogy.getNickName()!=null){
//
//                    }
//
//                    if(genealogy.getSex()!=null){
//
//                    }
//
//                    if(genealogy.getBirth()!=null){
//
//                    }
//                }
//        )
//        if(genealogy.getIdentity()!=null){
//            result = result.stream().filter(data -> data.getIdentity() == genealogy.getIdentity()).collect(Collectors.toList());
//        }
        return AjaxResult.success(result);
    }
@@ -349,12 +385,13 @@
    /**
     * 家谱信息
     *
     * @param genealogy
     * @return
     */
    @Override
    public AjaxResult listGenealogy(Genealogy genealogy,Integer pageNum,Integer pageSize) {
        List<ZInfoUser> treeList= (List<ZInfoUser>) listWithTreeByCondition(100,genealogy).get("data");
    public AjaxResult listGenealogy(Genealogy genealogy, Integer pageNum, Integer pageSize) {
        List<ZInfoUser> treeList = (List<ZInfoUser>) listWithTreeByCondition(100, genealogy).get("data");
        recursionFindUser(treeList);
        List<Genealogy> allData = userList.stream().map(
@@ -362,29 +399,120 @@
                    Genealogy newGenealogy = new Genealogy();
                    BeanUtils.copyProperties(zInfoUser, newGenealogy);
                    if(zInfoUser.getSpouseId()!=null){
                    if (zInfoUser.getSpouseId() != null) {
                        ZInfoUser spouse = getById(zInfoUser.getSpouseId());
                        Genealogy spouseInfo = new Genealogy();
                        BeanUtils.copyProperties(spouse,spouseInfo);
                        newGenealogy.setSpouse(spouseInfo);
                        spouseInfo.setIdentity(newGenealogy.getIdentity());
                        spouseInfo.setSpouseName(zInfoUser.getNickName());
                        newGenealogy.setSpouseName(spouse.getNickName());
                    }
                    return newGenealogy;
                }
        ).collect(Collectors.toList());
        List<Genealogy> collect = allData.stream().distinct().sorted(Comparator.comparing(Genealogy::getIdentity)).collect(Collectors.toList());
        List<Genealogy> resultData= new ArrayList<>();
        List<Genealogy> collect = allData.stream()
                .distinct()
                .filter((data)-> data.getIsMyFamily() == 1)
                .sorted(Comparator.comparing(Genealogy::getIdentity))
                .collect(Collectors.toList());
        List<Genealogy> resultData = new ArrayList<>();
        for (int i = (pageNum-1)*pageSize; i <pageNum*pageSize+pageSize; i++) {
            if(i>=collect.size()){
        for (int i = (pageNum - 1) * pageSize; i < pageNum * pageSize + pageSize; i++) {
            if (i >= collect.size()) {
                break;
            }
            resultData.add(collect.get(i));
        }
        //对result做一个条件筛选
        Iterator<Genealogy> it = resultData.iterator();
        while(it.hasNext()){
            Genealogy data = it.next();
            if(genealogy.getIdentity()!=null){
                if(data.getIdentity()!=genealogy.getIdentity()){
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getNickName()!=null){
                if(!data.getNickName().contains(genealogy.getNickName())){
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getSex()!=null){
                if(data.getSex()!=genealogy.getSex()){
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getPhoneNumber()!=null){
                if(data.getPhoneNumber()!=genealogy.getPhoneNumber()){
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getUnit()!=null){
                if(data.getUnit()!=genealogy.getUnit()){
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getBirth()!=null){
                if(data.getBirth().compareTo(genealogy.getBirth())!=0){
                    it.remove();
                    continue;
                }
            }
        }
        System.out.println(resultData);
//        for (Genealogy data : resultData) {
//
//            if(genealogy.getIdentity()!=null){
//                if(data.getIdentity()!=genealogy.getIdentity()){
//                    resultData.remove(data);
//                }
//            }
//
//            if(genealogy.getNickName()!=null){
//                if(!data.getNickName().contains(genealogy.getNickName())){
//                    resultData.remove(data);
//                }
//            }
//
//            if(genealogy.getSex()!=null){
//                if(data.getSex()!=genealogy.getSex()){
//                    resultData.remove(data);
//                }
//            }
//
//            if(genealogy.getBirth()!=null){
//                if(data.getBirth()!=genealogy.getBirth()){
//                    resultData.remove(data);
//                }
//            }
//
//        }
        HashMap<String, Object> resultMap = new HashMap<>();
        resultMap.put("data",resultData);
        resultMap.put("total",collect.size());
        resultMap.put("pageNum",pageNum);
        resultMap.put("pageSize",pageSize);
        resultMap.put("data", resultData);
        resultMap.put("total", resultData.size());
        resultMap.put("pageNum", pageNum);
        resultMap.put("pageSize", pageSize);
        return AjaxResult.success(resultMap);
    }
@@ -395,15 +523,20 @@
        ArrayList<Genealogy> result = new ArrayList<>();
        for (ZInfoUser zInfoUser : zInfoUsers) {
            Genealogy genealogy = new Genealogy();
            BeanUtils.copyProperties(zInfoUser,genealogy);
            if(zInfoUser.getSpouseId()!=null){
            BeanUtils.copyProperties(zInfoUser, genealogy);
            if (zInfoUser.getSpouseId() != null) {
                ZInfoUser spouse = getById(zInfoUser.getSpouseId());
                Genealogy spouseInfo = new Genealogy();
                BeanUtils.copyProperties(spouse,spouseInfo);
                spouseInfo.setIdentity(genealogy.getIdentity());
                spouseInfo.setSpouseName(zInfoUser.getNickName());
                genealogy.setSpouse(spouseInfo);
                genealogy.setSpouseName(spouse.getNickName());
            }
            result.add(genealogy);
        }
        System.out.println("导出的数据为:"+result);
        System.out.println("导出的数据为:" + result);
        return result;
    }
@@ -419,16 +552,22 @@
        ArrayList<Genealogy> result = new ArrayList<>();
        for (int i = 0; i < zInfoUsers.size(); i++) {
            Genealogy genealogy = new Genealogy();
            BeanUtils.copyProperties(zInfoUsers.get(i),genealogy);
            BeanUtils.copyProperties(zInfoUsers.get(i), genealogy);
            genealogy.setIdentity(params.get(i).getIdentity());
            if(zInfoUsers.get(i).getSpouseId()!=null){
            if (zInfoUsers.get(i).getSpouseId() != null) {
                ZInfoUser spouse = getById(zInfoUsers.get(i).getSpouseId());
                Genealogy spouseInfo = new Genealogy();
                BeanUtils.copyProperties(spouse,spouseInfo);
                spouseInfo.setIdentity(genealogy.getIdentity());
                genealogy.setSpouseName(spouse.getNickName());
                spouseInfo.setSpouseName(zInfoUsers.get(i).getNickName());
                genealogy.setSpouse(spouseInfo);
            }
            result.add(genealogy);
        }
        System.out.println("导出的数据为:"+result);
        System.out.println("导出的数据为:" + result);
        return result;
@@ -483,14 +622,20 @@
        return getById(userId);
    }
    @Override
    public AjaxResult listGenealogy2(Genealogy genealogy, Integer pageNum, Integer pageSize) {
    private void recursionFindUser(List<ZInfoUser> treeList){
        if (treeList==null||treeList.isEmpty()){
        return null;
    }
    private void recursionFindUser(List<ZInfoUser> treeList) {
        if (treeList == null || treeList.isEmpty()) {
            return;
        }
        for (ZInfoUser zInfoUser : treeList) {
            userList.add(zInfoUser);
            if (!zInfoUser.getChildList().isEmpty()){
            if (!zInfoUser.getChildList().isEmpty()) {
                recursionFindUser(zInfoUser.getChildList());
            }
        }
@@ -498,6 +643,7 @@
    /**
     * 为了家根网、新增或者修改父子关系
     *
     * @param fatherId
     * @param motherId
     * @return
@@ -507,7 +653,7 @@
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
        zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId,userId);
        zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getUserId, userId);
        ZInfoUser zInfoUser = getOne(zInfoUserLambdaQueryWrapper);
        zInfoUser.setFatherId(fatherId);
@@ -527,12 +673,12 @@
    @Override
    public AjaxResult listMySelfAndSpouse(Long id) {
        LambdaQueryWrapper<ZInfoUser> lqw1 = new LambdaQueryWrapper<>();
        lqw1.eq(ZInfoUser::getUserId,id);
        lqw1.eq(ZInfoUser::getUserId, id);
        ZInfoUser myself = getOne(lqw1);
        Long spouseId = myself.getSpouseId();
        LambdaQueryWrapper<ZInfoUser> lqw2 = new LambdaQueryWrapper<>();
        lqw2.eq(ZInfoUser::getUserId,spouseId);
        lqw2.eq(ZInfoUser::getUserId, spouseId);
        ZInfoUser spouse = getOne(lqw2);
        ArrayList<ZInfoUser> zInfoUsers = new ArrayList<>();
@@ -543,9 +689,9 @@
    }
    /**
     * 递归算法
     *
     * @param people
     * @param allPeopleList
     * @return
@@ -553,23 +699,37 @@
    private List<ZInfoUser> fillChildren(ZInfoUser people, List<ZInfoUser> allPeopleList, Integer depth) {
        // TODO: 2023-05-05 控制递归的次数
       // if(depth==layer)
        // if(depth==layer)
       // layer = layer + 1;
        // layer = layer + 1;
        System.out.println(depth);
//        List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(
//                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
//        ).collect(Collectors.toList());
        List<ZInfoUser> collect = allPeopleList.stream().filter(
                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
        ).map(
                one -> {
                    if(depth==1)
                        return one;
                    else {
                        one.setIdentity(people.getIdentity()+1);
                    if (depth == 1) {
                        one.setIdentity(people.getIdentity() + 1);
                        //根据配偶id查询配偶的数据,封装好一起返回
                        Long spouseId = one.getSpouseId();
                        if(spouseId!=null){
                        if (spouseId != null) {
                            ZInfoUser spouse = zInfoUserService.getById(spouseId);
                            spouse.setIdentity(people.getIdentity()+1);
                            spouse.setIdentity(people.getIdentity() + 1);
                            one.setSpouse(spouse);
                        }
                        return one;
                    }
                    else {
                        one.setIdentity(people.getIdentity() + 1);
                        //根据配偶id查询配偶的数据,封装好一起返回
                        Long spouseId = one.getSpouseId();
                        if (spouseId != null) {
                            ZInfoUser spouse = zInfoUserService.getById(spouseId);
                            spouse.setIdentity(people.getIdentity() + 1);
                            one.setSpouse(spouse);
                        }
                        List<ZInfoUser> zinfo = fillChildren(one, allPeopleList, depth - 1);
@@ -586,5 +746,48 @@
    }
    /**
     * 递归算法家谱用
     *
     * @param people
     * @param allPeopleList
     * @return
     */
    private List<ZInfoUser> fillChildren2(ZInfoUser people, List<ZInfoUser> allPeopleList, Integer depth) {
        // TODO: 2023-05-05 控制递归的次数
        // if(depth==layer)
        // layer = layer + 1;
        System.out.println(depth);
        List<ZInfoUser> collect = allPeopleList.stream().filter(
                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId())
        ).map(
                one -> {
                    if (depth == 1)
                        return one;
                    else {
                        one.setIdentity(people.getIdentity() + 1);
                        //根据配偶id查询配偶的数据,封装好一起返回
                        Long spouseId = one.getSpouseId();
                        if (spouseId != null) {
                            ZInfoUser spouse = zInfoUserService.getById(spouseId);
                            spouse.setIdentity(people.getIdentity() + 1);
                            one.setSpouse(spouse);
                        }
                        List<ZInfoUser> zinfo = fillChildren2(one, allPeopleList, depth - 1);
                        one.setChildList(zinfo);
                        System.out.println(one);
                        return one;
                    }
                    //return one;
                }
        ).collect(Collectors.toList());
        System.out.println(collect);
        return collect;
    }
}