package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.ZInfoUser;
import com.ruoyi.domain.ZfEvent;
import com.ruoyi.domain.ZfRelation;
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;
import java.util.stream.Stream;
/**
*
* 服务实现类
*
*
* @author ojq
* @since 2023-03-14
*/
@Service
@Slf4j
public class ZInfoUserServiceImpl extends ServiceImpl implements ZInfoUserService {
@Autowired
private ZfRelationService zfRelationService;
@Autowired
private ZInfoUserService zInfoUserService;
@Resource
private ZfFamilyService zfFamilyService;
@Resource
private ZfRoleService zfRoleService;
@Override
public AjaxResult selectInfoList(ZInfoUser zInfoUser, Integer pageNum, Integer pageSize) {
LambdaQueryWrapper lqw = buildCondition(zInfoUser);
Page zInfoUserPage = new Page<>(pageNum, pageSize);
Page pageResult = page(zInfoUserPage, lqw);
HashMap data = MapUtils.getResult(pageResult);
return AjaxResult.success(data);
}
private LambdaQueryWrapper buildCondition(ZInfoUser zInfoUser) {
LambdaQueryWrapper 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());
return lqw;
}
@Override
public List selectByCondition(ZInfoUser zInfoUser) {
LambdaQueryWrapper lambdaQueryWrapper = buildCondition(zInfoUser);
List list = list(lambdaQueryWrapper);
log.info("返回的数据为:{}", list);
return list;
}
@Override
public AjaxResult searchMyRelation() {
SysUser user = SecurityUtils.getLoginUser().getUser();
Long userId = user.getUserId();
LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
lqw.eq(ZfRelation::getMyId, userId);
List list = zfRelationService.list(lqw);
return AjaxResult.success(list);
}
@Override
@Transactional
public AjaxResult addRelation(ZfRelation zfRelation) {
SysUser user = SecurityUtils.getLoginUser().getUser();
Long userId = user.getUserId();
zfRelation.setMyId(userId);
zfRelationService.save(zfRelation);
return AjaxResult.success();
}
@Override
@Transactional
public AjaxResult updateRelation(ZfRelation zfRelation) {
zfRelationService.updateById(zfRelation);
return AjaxResult.success();
}
@Override
public AjaxResult deleteRelation(Long[] ids) {
zfRelationService.removeByIds(Arrays.asList(ids));
return AjaxResult.success();
}
// @Override
// public AjaxResult empower(EmpowerDto empowerDto) {
// return null;
// }
// /**
// * 给用户授权的方法
// * @param empowerDto
// * @return
// */
// @Override
// @Transactional
// public AjaxResult empower(EmpowerDto empowerDto) {
//
// //得到dto中的信息
// String otherUserId = empowerDto.getUserId();
// String destinationFamilyId = empowerDto.getFamilyId();
// List authorityList = empowerDto.getAuthorityList();
//
// String familyId = getMyFamilyId();
// checkAuthorization(familyId, destinationFamilyId,true);
//
// //授权 //3{2007 1988 1004}
// String finalStr = getFinalStr(destinationFamilyId, authorityList);
//
// //更新被授权用户的权限
// LambdaQueryWrapper 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 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 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) {
String text = null;
if (flag) {
text = "授权";
} else {
text = "取消授权";
}
//对本人的家庭号进行处理
if (familyId.contains(",")) {
String[] familyIds = familyId.split(",");
List idList = Arrays.asList(familyIds);
if (!idList.contains(destinationFamilyId)) {
throw new RuntimeException("不能" + text + "不属于自己家庭的数据");
}
} else {
if (!familyId.equals(destinationFamilyId)) {
throw new RuntimeException("不能" + text + "不属于自己家庭的数据");
}
}
}
private Long getMyFamilyId() {
//得到自己的家庭id信息
SysUser user = SecurityUtils.getLoginUser().getUser();
Long myUserId = user.getUserId();
LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
lqw.eq(ZInfoUser::getUserId, myUserId);
ZInfoUser zInfoUser = getOne(lqw);
Long familyId = zInfoUser.getFamilyId();
return familyId;
}
private String getFinalStr(String destinationFamilyId, List authorityList) {
String authorityListStr = authorityList.stream().collect(Collectors.joining(" ", "{", "}"));
String finalStr = destinationFamilyId + authorityListStr; //3{2007 1988 1004}
return finalStr;
}
/**
* 获取家根网
*
* @return
*/
@Override
public AjaxResult listWithTree(Integer depth) {
List allPeopleList = list();
List result = null;
// 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("您在加入成员的时候没有指定该成员的父亲或者母亲");
// }
List 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) {
people.setIdentity(1);
//根据配偶id查询配偶的数据,封装好一起返回
Long spouseId = people.getSpouseId();
ZInfoUser spouse = zInfoUserService.getById(spouseId);
spouse.setIdentity(1);
people.setSpouse(spouse);
people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
}
return people;
}).collect(Collectors.toList());
return AjaxResult.success(result);
}
/**
* 条件获取家庭成员
*
* @return
*/
public AjaxResult listWithTreeByCondition(Integer depth, Genealogy genealogy) {
ZInfoUser zInfoUser = new ZInfoUser();
BeanUtils.copyProperties(genealogy, zInfoUser);
LambdaQueryWrapper 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());
List allPeopleList = list(lqw);
// List allPeopleList = list();
List result = null;
try {
result = allPeopleList.stream().filter(people -> people.getUserId() != 1 && (people.getFatherId() == 0 || people.getMomId() == 0))
.map(people -> {
if (depth > 1) {
people.setIdentity(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);
}
private List userList = new ArrayList<>();
/**
* 家谱信息
*
* @param genealogy
* @return
*/
@Override
public AjaxResult listGenealogy(Genealogy genealogy, Integer pageNum, Integer pageSize) {
List treeList = (List) listWithTreeByCondition(100, genealogy).get("data");
recursionFindUser(treeList);
List allData = userList.stream().map(
zInfoUser -> {
Genealogy newGenealogy = new Genealogy();
BeanUtils.copyProperties(zInfoUser, newGenealogy);
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 collect = allData.stream()
.distinct()
.filter((data)-> data.getIsMyFamily() == 1)
.sorted(Comparator.comparing(Genealogy::getIdentity))
.collect(Collectors.toList());
List resultData = new ArrayList<>();
for (int i = (pageNum - 1) * pageSize; i < pageNum * pageSize + pageSize; i++) {
if (i >= collect.size()) {
break;
}
resultData.add(collect.get(i));
}
//对result做一个条件筛选
Iterator 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 resultMap = new HashMap<>();
resultMap.put("data", resultData);
resultMap.put("total", resultData.size());
resultMap.put("pageNum", pageNum);
resultMap.put("pageSize", pageSize);
return AjaxResult.success(resultMap);
}
@Override
public List selectByIds(Long[] ids) {
List zInfoUsers = listByIds(Arrays.asList(ids));
ArrayList result = new ArrayList<>();
for (ZInfoUser zInfoUser : zInfoUsers) {
Genealogy genealogy = new Genealogy();
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);
return result;
}
@Override
public List selectDatas(List params) {
ArrayList ids = new ArrayList<>();
for (GenealogyExportDto param : params) {
ids.add(param.getId());
}
List zInfoUsers = listByIds(ids);
ArrayList result = new ArrayList<>();
for (int i = 0; i < zInfoUsers.size(); i++) {
Genealogy genealogy = new Genealogy();
BeanUtils.copyProperties(zInfoUsers.get(i), genealogy);
genealogy.setIdentity(params.get(i).getIdentity());
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);
return result;
}
@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);
//
// //用逗号隔开的家庭id
// String familyId = user.getFamilyId();
//
// //在自己家庭中角色的id
// Long roleId = user.getRoleId();
//
// ArrayList 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);
}
@Override
public AjaxResult listGenealogy2(Genealogy genealogy, Integer pageNum, Integer pageSize) {
return null;
}
private void recursionFindUser(List treeList) {
if (treeList == null || treeList.isEmpty()) {
return;
}
for (ZInfoUser zInfoUser : treeList) {
userList.add(zInfoUser);
if (!zInfoUser.getChildList().isEmpty()) {
recursionFindUser(zInfoUser.getChildList());
}
}
}
/**
* 为了家根网、新增或者修改父子关系
*
* @param fatherId
* @param motherId
* @return
*/
@Override
public AjaxResult addParent(Long fatherId, Long motherId) {
SysUser user = SecurityUtils.getLoginUser().getUser();
Long userId = user.getUserId();
LambdaQueryWrapper 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 collect = list().stream().filter(zInfoUser -> zInfoUser.getUserId() != 1).collect(Collectors.toList());
return AjaxResult.success(collect);
}
@Override
public AjaxResult listMySelfAndSpouse(Long id) {
LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>();
lqw1.eq(ZInfoUser::getUserId, id);
ZInfoUser myself = getOne(lqw1);
Long spouseId = myself.getSpouseId();
LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(ZInfoUser::getUserId, spouseId);
ZInfoUser spouse = getOne(lqw2);
ArrayList zInfoUsers = new ArrayList<>();
zInfoUsers.add(myself);
zInfoUsers.add(spouse);
return AjaxResult.success(zInfoUsers);
}
/**
* 递归算法
*
* @param people
* @param allPeopleList
* @return
*/
private List fillChildren(ZInfoUser people, List allPeopleList, Integer depth) {
// TODO: 2023-05-05 控制递归的次数
// if(depth==layer)
// layer = layer + 1;
System.out.println(depth);
// List myFamilyPeopleList = allPeopleList.stream().filter(
// one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
// ).collect(Collectors.toList());
List collect = allPeopleList.stream().filter(
one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
).map(
one -> {
if (depth == 1) {
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);
}
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 zinfo = fillChildren(one, allPeopleList, depth - 1);
one.setChildList(zinfo);
System.out.println(one);
return one;
}
//return one;
}
).collect(Collectors.toList());
System.out.println(collect);
return collect;
}
/**
* 递归算法家谱用
*
* @param people
* @param allPeopleList
* @return
*/
private List fillChildren2(ZInfoUser people, List allPeopleList, Integer depth) {
// TODO: 2023-05-05 控制递归的次数
// if(depth==layer)
// layer = layer + 1;
System.out.println(depth);
List 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 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;
}
}