| | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | 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"); |
| | | // 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 -> { |
| | |
| | | } |
| | | 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("您在加入成员的时候没有指定该成员的父亲或者母亲"); |
| | | } |
| | |
| | | userList.clear(); |
| | | List<ZInfoUser> treeList = (List<ZInfoUser>) listWithTreeByCondition(100, genealogy).get("data"); |
| | | recursionFindUser(treeList); |
| | | // System.out.println(userList); |
| | | // System.out.println("---------------"); |
| | | |
| | | // System.out.println("555555555555555555555555555555555555555555555555555555555555"); |
| | | |
| | | // System.out.println(userList); |
| | | // System.out.println("---------------"); |
| | | List<Genealogy> allData = userList.stream().map( |
| | | zInfoUser -> { |
| | | Genealogy newGenealogy = new Genealogy(); |
| | |
| | | spouseInfo.setSpouseName(zInfoUser.getNickName()); |
| | | newGenealogy.setSpouseName(spouse.getNickName()); |
| | | } |
| | | System.out.println(newGenealogy); |
| | | return newGenealogy; |
| | | } |
| | | ).collect(Collectors.toList()); |
| | | // System.out.println(allData); |
| | | // System.out.println("999999999988888888888++++++++++++++++++++++"); |
| | | // System.out.println(allData); |
| | | // System.out.println("999999999988888888888++++++++++++++++++++++"); |
| | | List<Genealogy> collect = allData.stream() |
| | | .distinct() |
| | | .filter((data)-> data.getIsMyFamily() == 1) |
| | |
| | | } |
| | | resultData.add(collect.get(i)); |
| | | } |
| | | // System.out.println(resultData); |
| | | // System.out.println("999999999988888888888++++++++++++++++++++++"); |
| | | // 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()){ |
| | |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | // layer = layer + 1; |
| | | // System.out.println(depth); |
| | | |
| | | List<ZInfoUser> collect = allPeopleList.stream().filter( |
| | | one -> Objects.equals(one.getFatherId(), people.getUserId()) || Objects.equals(one.getMomId(),people.getUserId()) |
| | | ).map( |