zqy
2024-11-18 a150bbd71cb204432c945d5988b3b9ac21a99b31
zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -26,6 +26,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * <p>
@@ -47,6 +48,7 @@
    @Resource
    private ZfFamilyService zfFamilyService;
    @Resource
    private ZfRoleService zfRoleService;
@@ -90,6 +92,34 @@
        return list(lqw);
    }
//    public List<ZInfoUser> selectByNickName(String nickName){
//        ZInfoUser zInfoUser = new ZInfoUser();
//        zInfoUser.setNickName(nickName);
//        LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
//        return list(lqw);
//    }
    @Override
    public AjaxResult findInfoUserNameAClan(String nickName)
    {
        ZInfoUser zInfoUser = new ZInfoUser();
        zInfoUser.setNickName(nickName);
        LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
        List<ZInfoUser> zInfoUsers = list(lqw);
        List<ShareOtherClan> shareOtherClans = new ArrayList<>();
        for (ZInfoUser zInfoUser1: zInfoUsers) {
            ShareOtherClan shareOtherClan = new ShareOtherClan();
            shareOtherClan.setNickName(zInfoUser1.getNickName());
            shareOtherClan.setUserId(zInfoUser1.getUserId().intValue());
            shareOtherClan.setClanId(zInfoUser1.getClanId());
            shareOtherClans.add(shareOtherClan);
        }
        return AjaxResult.success(shareOtherClans);
    }
    @Override
    public ZInfoUser getInfoBysysId(Long sysid) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
@@ -103,9 +133,10 @@
    @Override
    public List<ZInfoUser> getDataBySex(Integer sex){
    public List<ZInfoUser> getDataBySex(Integer sex, Integer clanId){
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZInfoUser::getSex, sex);
        lqw.eq(ZInfoUser::getClanId, clanId);
        List<ZInfoUser> list = list(lqw);
        return list;
    }
@@ -352,9 +383,11 @@
     * @return
     */
    @Override
    public AjaxResult listWithTree(Integer depth) {
        List<ZInfoUser> allPeopleList = list();
    public AjaxResult listWithTree(Integer depth, Integer clanId) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(clanId!=null, ZInfoUser::getClanId, clanId);
     //   List<ZfEvent> list = list(lqw);
        List<ZInfoUser> allPeopleList = list(lqw);
        List<ZInfoUser> result = null;
//        try {
//              result = allPeopleList.stream().filter(people -> people.getUserId()!=1&&(people.getFatherId() == 0||people.getMomId()==0))
@@ -397,9 +430,9 @@
//                    System.out.println(people);
                    return people;
                }).collect(Collectors.toList());
System.out.println("--------------++++++++++++++++--------------");
System.out.println(result);
//
//System.out.println("--------------++++++++++++++++--------------");
//System.out.println(result);
        return AjaxResult.success(result);
    }
@@ -414,26 +447,48 @@
        ZInfoUser zInfoUser = new ZInfoUser();
        BeanUtils.copyProperties(genealogy, zInfoUser);
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        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());
//        lqw.eq(zInfoUser.getSex() != null, ZInfoUser::getSex, zInfoUser.getSex());
//        lqw.like(StringUtils.isNotEmpty(zInfoUser.getNickName()), ZInfoUser::getNickName, zInfoUser.getNickName());
//        lqw.between(zInfoUser.getHappenStartTime() != null && zInfoUser.getHappenEndTime() != null, ZInfoUser::getBirth, zInfoUser.getHappenStartTime(),zInfoUser.getHappenEndTime());
        lqw.eq(zInfoUser.getClanId()!=null, ZInfoUser::getClanId,zInfoUser.getClanId());
        List<ZInfoUser> allPeopleList = list(lqw);
//        System.out.println(allPeopleList);
//        System.out.println("============z=============zzzzzzzzzzzzzzzzzzz");
//        List<ZInfoUser> allPeopleList = list();
        List<ZInfoUser> result = null;
//        if (depth != null){
        try {
            result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && ((people.getFatherId()!=null&&people.getFatherId() == 0) || (people.getMomId()!=null&&people.getMomId() == 0)))
                    .map(people -> {
                        if (depth > 1) {
                        if (depth >= 1) {
                            people.setIdentity(1);
                            people.setChildList(fillChildren2(people, allPeopleList, depth - 1));
                        }
                        return people;
                    }).collect(Collectors.toList());
//            if(zInfoUser.getSex() != null) {
//                System.out.println("/////////////"+result);
//                result = result.stream().filter(i -> i.getSex().equals(zInfoUser.getSex())).collect(Collectors.toList());
//            }
//            if(zInfoUser.getNickName() != null){
//                System.out.println("/////////////"+result);
//                result = result.stream().filter(i -> i.getNickName().equals(zInfoUser.getNickName())).collect(Collectors.toList());
//            }
////            List<Date> dates = allPeopleList.stream().
//            if(zInfoUser.getHappenEndTime() != null && zInfoUser.getHappenStartTime() != null){
//                result = result.stream().filter(a -> a.getBirth().before(zInfoUser.getHappenEndTime())).collect(Collectors.toList());
//                Long result1 = result.stream().filter(a -> a.getBirth().after(zInfoUser.getHappenStartTime())).count();
//                System.out.println("9999999999999999999999");
//                System.out.println(result1);
//            }
//            System.out.println("9999999999999999999999");
//            System.out.println(result);
        } catch (NullPointerException e) {
            throw new RuntimeException("您在加入成员的时候没有指定该成员的父亲或者母亲");
        }
       // System.out.println(result);
//        result.stream().map(
//                data->{
@@ -476,9 +531,12 @@
     */
    @Override
    public AjaxResult listGenealogy(Genealogy genealogy, Integer pageNum, Integer pageSize) {
        userList.clear();
        List<ZInfoUser> treeList = (List<ZInfoUser>) listWithTreeByCondition(100, genealogy).get("data");
        recursionFindUser(treeList);
//        System.out.println("555555555555555555555555555555555555555555555555555555555555");
//        System.out.println(userList);
//        System.out.println("---------------");
        List<Genealogy> allData = userList.stream().map(
                zInfoUser -> {
                    Genealogy newGenealogy = new Genealogy();
@@ -486,7 +544,7 @@
                    if (zInfoUser.getSpouseId() != null) {
                        ZInfoUser spouse = getById(zInfoUser.getSpouseId());
                        Genealogy spouseInfo = new Genealogy();
                        BeanUtils.copyProperties(spouse,spouseInfo);
                        newGenealogy.setSpouse(spouseInfo);
@@ -497,7 +555,8 @@
                    return newGenealogy;
                }
        ).collect(Collectors.toList());
//        System.out.println(allData);
//        System.out.println("999999999988888888888++++++++++++++++++++++");
        List<Genealogy> collect = allData.stream()
                .distinct()
                .filter((data)-> data.getIsMyFamily() == 1)
@@ -511,12 +570,14 @@
            }
            resultData.add(collect.get(i));
        }
//        System.out.println(resultData);
//        System.out.println("999999999988888888888++++++++++++++++++++++");
//
//
        //对result做一个条件筛选
        Iterator<Genealogy> it = resultData.iterator();
        while(it.hasNext()){
            Genealogy data = it.next();
        Iterator<Genealogy> it = resultData.iterator(); //迭代器 从null开始
        while(it.hasNext()){ //判断下一个指针指向元素是否为空
            Genealogy data = it.next(); //跳到下一个元素
            if(genealogy.getIdentity()!=null){
                if(data.getIdentity()!=genealogy.getIdentity()){
@@ -554,15 +615,22 @@
            }
            if(genealogy.getBirth()!=null){
                if(data.getBirth().compareTo(genealogy.getBirth())!=0){
                if(data.getBirth().compareTo(genealogy.getBirth())!=0){  //比较
                    it.remove();
                    continue;
                }
            }
            if(genealogy.getHappenEndTime() != null && genealogy.getHappenStartTime() != null ){
                if (data.getBirth() == null) {it.remove(); continue;}
                if(data.getBirth().before(genealogy.getHappenStartTime()) || data.getBirth().after(genealogy.getHappenEndTime())){
                    it.remove();
                }
            }
        }
        System.out.println(resultData);
   //    System.out.println(resultData);
      //  System.out.println("================++++++++++++++66666666666666666999999999");
//        for (Genealogy data : resultData) {
@@ -663,22 +731,25 @@
        ZInfoUser user = getInfoBysysId(userId);
        if(user!=null)
        {
            Long familyId = user.getFamilyId();
          //  System.out.println("dddddddddddddddddddd");
        if(user==null) {
            //利用userId查询
            LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
            lqw.eq(ZInfoUser::getUserId, userId);
            List<ZInfoUser> list = list(lqw);
            if(list.size()>0)
                user = list.get(0);
            else
                return null;
            String roleName = zfRoleService.getById(user.getRoleId()).getName();
            user.setRoleName(roleName);
//            System.out.println("dddddddddddddddddddd");
//            System.out.println(familyId);
//            if(familyId!=null&&familyId!=-1)
//            {
//                String familyName = zfFamilyService.getById(familyId).getName();
//                user.setFamilyName(familyName);
//            }
        }
        Long familyId = user.getFamilyId();
        //  System.out.println("dddddddddddddddddddd");
        if(user.getRoleId()==null)
            user.setRoleId(3L);
        String roleName = zfRoleService.getById(user.getRoleId()).getName();
        user.setRoleName(roleName);
        return user;
    }
@@ -717,7 +788,17 @@
    public ZInfoUser getMyself() {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        return getById(userId);
      //  System.out.println(userId);
        //System.out.println("-----------------++++++++9999++++++++++----------");
        ZInfoUser zInfoUser = new ZInfoUser();
        zInfoUser.setSysId(userId);
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(zInfoUser.getSysId() != null, ZInfoUser::getSysId, zInfoUser.getSysId());
        List<ZInfoUser> list = list(lqw);
        if(!list.isEmpty())
            return list.get(0);
        else
            return null;
    }
    @Override
@@ -769,13 +850,18 @@
    }
    @Override
    public AjaxResult listAllFamilyPeople() {
    public AjaxResult listAllFamilyPeople(Integer clanId) {
//        List<ZInfoUser> lis = list();
//        for(ZInfoUser tm: lis)
//        {
//            System.out.println(tm.getRoleId());
//        }
        List<ZInfoUser> collect = list().stream().filter(zInfoUser -> zInfoUser!=null&&zInfoUser.getRoleId()!=null&&zInfoUser.getRoleId()== 3).collect(Collectors.toList());
        LambdaQueryWrapper<ZInfoUser> zInfoUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
        zInfoUserLambdaQueryWrapper.eq(ZInfoUser::getClanId, clanId);
        List<ZInfoUser> lis = list(zInfoUserLambdaQueryWrapper);
        List<ZInfoUser> collect = lis.stream().filter(zInfoUser -> zInfoUser!=null&&zInfoUser.getRoleId()!=null&&zInfoUser.getRoleId()== 3).collect(Collectors.toList());
        return AjaxResult.success(collect);
    }
@@ -811,7 +897,7 @@
        // if(depth==layer)
        // layer = layer + 1;
        System.out.println(depth);
    //    System.out.println(depth);
//        List<ZInfoUser> myFamilyPeopleList = allPeopleList.stream().filter(
//                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
@@ -822,8 +908,8 @@
                one -> (((one.getFamilyId()!=null && Objects.equals(one.getFatherId(), people.getUserId())) || (one.getMomId()!=null&& one.getMomId().equals(people.getUserId()))) && (one.getIsMyFamily() == 1))
        ).map(
                one -> {
                    System.out.println("++++++++++----0009999");
                    System.out.println(one);
               //     System.out.println("++++++++++----0009999");
              //      System.out.println(one);
                    if (depth == 0) {
                        one.setIdentity(people.getIdentity() + 1);
                        //根据配偶id查询配偶的数据,封装好一起返回
@@ -849,14 +935,14 @@
                        }
                        List<ZInfoUser> zinfo = fillChildren(one, allPeopleList, depth - 1);
                        one.setChildList(zinfo);
                        System.out.println(one);
                      //  System.out.println(one);
                        return one;
                    }
                    //return one;
                }
        ).collect(Collectors.toList());
        System.out.println(collect);
      //  System.out.println(collect);
        return collect;
    }
@@ -874,9 +960,10 @@
        // if(depth==layer)
        // layer = layer + 1;
        System.out.println(depth);
       // System.out.println(depth);
        List<ZInfoUser> collect = allPeopleList.stream().filter(
                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId())
                one ->  Objects.equals(one.getFatherId(), people.getUserId()) ||  Objects.equals(one.getMomId(),people.getUserId())
        ).map(
                one -> {
                    if (depth == 1)
@@ -892,14 +979,14 @@
                        }
                        List<ZInfoUser> zinfo = fillChildren2(one, allPeopleList, depth - 1);
                        one.setChildList(zinfo);
                        System.out.println(one);
                       // System.out.println(one);
                        return one;
                    }
                    //return one;
                }
        ).collect(Collectors.toList());
        System.out.println(collect);
       // System.out.println(collect);
        return collect;
    }