feige
2024-09-10 edc0b4ee1fb8b292635667379387cc0e76e5af01
zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
@@ -3,8 +3,6 @@
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;
@@ -12,9 +10,7 @@
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.*;
import com.ruoyi.domain.dto.*;
import com.ruoyi.mapper.ZInfoUserMapper;
import com.ruoyi.service.ZInfoUserService;
@@ -30,7 +26,6 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * <p>
@@ -53,6 +48,7 @@
    @Resource
    private ZfFamilyService zfFamilyService;
    @Resource
    private ZfRoleService zfRoleService;
@@ -67,6 +63,64 @@
        HashMap<String, Object> data = MapUtils.getResult(pageResult);
        return AjaxResult.success(data);
    }
    @Override
    public Boolean findByuid(Long uid, Long tfid) {
        if(uid==null)
            return false;
     //   System.out.println(tfid);
     //   System.out.println("00000000000---------------");
        ZInfoUser infu = this.getById(tfid);
        if(infu==null)
            return false;
        if(infu.getFatherId()!=null && uid.equals(infu.getFatherId()))
            return true;
        if(infu.getMomId()!=null && uid.equals(infu.getMomId()))
            return true;
        return findByuid(uid, infu.getFatherId()) || findByuid(uid, infu.getMomId());
    }
    @Override
    public List<ZInfoUser> selectByClanId(Integer clanId) {
        ZInfoUser zInfoUser = new ZInfoUser();
        zInfoUser.setClanId(clanId);
        LambdaQueryWrapper<ZInfoUser> lqw = buildCondition(zInfoUser);
        return list(lqw);
    }
    @Override
    public ZInfoUser getInfoBysysId(Long sysid) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZInfoUser::getSysId, sysid);
        List<ZInfoUser> list = list(lqw);
        if(list.size()>0)
            return list.get(0);
        else
            return null;
    }
    @Override
    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;
    }
    @Override
    public AjaxResult getInfoByfid(Long fid) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZInfoUser::getFamilyId, fid);
        lqw.eq(ZInfoUser::getIsMyFamily, 1L);
        lqw.isNull(ZInfoUser::getSpouseId);
        List<ZInfoUser> list = list(lqw);
        return AjaxResult.success(list);
    }
    private LambdaQueryWrapper<ZInfoUser> buildCondition(ZInfoUser zInfoUser) {
@@ -89,6 +143,7 @@
        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.like(zInfoUser.getClanId() != null, ZInfoUser::getClanId, zInfoUser.getClanId());
        return lqw;
    }
@@ -100,6 +155,30 @@
        log.info("返回的数据为:{}", list);
        return list;
    }
    @Override
    public AjaxResult removeByUserName(List<String> userName) {
        LambdaQueryWrapper<ZInfoUser> lqw = new LambdaQueryWrapper<>();
        lqw.in(ZInfoUser::getNickName,String.valueOf(userName.get(0)));
        System.out.println(userName.get(0));
        List<ZInfoUser> beanRecords = list(lqw);
        System.out.println("555555555555555555"+beanRecords);
        List<Long> ids = list(lqw).stream().map(ZInfoUser::getUserId).collect(Collectors.toList());;
        removeByIds(ids);
        return AjaxResult.success("删除成功");
    }
    @Override
    public List<ZInfoUser> selectByFamId(long fid) {
        LambdaQueryWrapper<ZfFamily> lqw = new LambdaQueryWrapper<>();
        lqw.eq(ZfFamily::getId, fid);
        ZfFamily zfFamily = zfFamilyService.list(lqw).get(0);
        LambdaQueryWrapper<ZInfoUser> lqws = new LambdaQueryWrapper<>();
        lqws.eq(ZInfoUser::getFatherId, zfFamily.getFid());
      //  lqws.eq(ZInfoUser::getMomId, zfFamily.getMid());
        List<ZInfoUser> list = list(lqws);
        return list;
    }
    @Override
@@ -275,9 +354,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))
@@ -299,22 +380,30 @@
        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)
result = allPeopleList.stream().filter(people -> people!=null && people.getUserId() != 1 && ((people.getFatherId()!=null &&people.getFatherId() == 0 )|| (people.getMomId()!=null&&people.getMomId() == 0)) && people.getIsMyFamily() == 1)
                .map(people -> {
//                    System.out.println("=======================================");
//                    System.out.println(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));
                        if(people!=null) {
                            people.setIdentity(1);
                            //根据配偶id查询配偶的数据,封装好一起返回
                            Long spouseId = people.getSpouseId();
                            if (spouseId != null) {
                                ZInfoUser spouse = zInfoUserService.getById(spouseId);
                                spouse.setIdentity(1);
                                people.setSpouse(spouse);
                            }
                            people.setChildList(fillChildren(people, myFamilyPeopleList, depth - 1));
                        }
                    }
//                    System.out.println("+++++++++++++++++++++++++++++");
//                    System.out.println(people);
                    return people;
                }).collect(Collectors.toList());
//
//System.out.println("--------------++++++++++++++++--------------");
//System.out.println(result);
        return AjaxResult.success(result);
    }
@@ -332,14 +421,17 @@
        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.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;
        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()!=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));
                        }
@@ -349,6 +441,7 @@
            throw new RuntimeException("您在加入成员的时候没有指定该成员的父亲或者母亲");
        }
        System.out.println(result);
//        result.stream().map(
//                data->{
@@ -391,9 +484,11 @@
     */
    @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(userList);
        System.out.println("---------------");
        List<Genealogy> allData = userList.stream().map(
                zInfoUser -> {
                    Genealogy newGenealogy = new Genealogy();
@@ -401,13 +496,25 @@
                    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());
                    }
                    System.out.println(newGenealogy);
                    return newGenealogy;
                }
        ).collect(Collectors.toList());
        List<Genealogy> collect = allData.stream().distinct().sorted(Comparator.comparing(Genealogy::getIdentity)).collect(Collectors.toList());
        System.out.println(allData);
        System.out.println("999999999988888888888++++++++++++++++++++++");
        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++) {
@@ -416,8 +523,10 @@
            }
            resultData.add(collect.get(i));
        }
        System.out.println(resultData);
        System.out.println("999999999988888888888++++++++++++++++++++++");
//
//
        //对result做一个条件筛选
        Iterator<Genealogy> it = resultData.iterator();
        while(it.hasNext()){
@@ -444,6 +553,20 @@
                }
            }
            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();
@@ -452,8 +575,9 @@
            }
        }
        System.out.println(resultData);
       System.out.println(resultData);
        System.out.println("================++++++++++++++66666666666666666999999999");
//        for (Genealogy data : resultData) {
@@ -502,6 +626,11 @@
            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);
@@ -527,7 +656,13 @@
            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);
@@ -540,12 +675,31 @@
    @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);
        ZInfoUser user = getInfoBysysId(userId);
        if(user!=null)
        {
            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);
//            System.out.println("dddddddddddddddddddd");
//            System.out.println(familyId);
//            if(familyId!=null&&familyId!=-1)
//            {
//                String familyName = zfFamilyService.getById(familyId).getName();
//                user.setFamilyName(familyName);
//            }
        }
        else{
            //查询sys_user表
        }
        return user;
    }
@@ -584,7 +738,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
@@ -636,6 +800,22 @@
    }
    @Override
    public AjaxResult listAllFamilyPeople(Integer clanId) {
//        List<ZInfoUser> lis = list();
//        for(ZInfoUser tm: lis)
//        {
//            System.out.println(tm.getRoleId());
//        }
        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);
    }
    @Override
    public AjaxResult listMySelfAndSpouse(Long id) {
        LambdaQueryWrapper<ZInfoUser> lqw1 = new LambdaQueryWrapper<>();
        lqw1.eq(ZInfoUser::getUserId, id);
@@ -674,10 +854,13 @@
//        ).collect(Collectors.toList());
        List<ZInfoUser> collect = allPeopleList.stream().filter(
                one -> (one.getFatherId() == people.getUserId() || one.getMomId() == people.getUserId()) && (people.getIsMyFamily() == 1)
                one -> (((one.getFamilyId()!=null && Objects.equals(one.getFatherId(), people.getUserId())) || (one.getMomId()!=null&& one.getMomId().equals(people.getUserId()))) && (one.getIsMyFamily() == 1))
        ).map(
                one -> {
                    if (depth == 1) {
                    System.out.println("++++++++++----0009999");
                    System.out.println(one);
                    if (depth == 0) {
                        one.setIdentity(people.getIdentity() + 1);
                        //根据配偶id查询配偶的数据,封装好一起返回
                        Long spouseId = one.getSpouseId();
@@ -694,6 +877,9 @@
                        Long spouseId = one.getSpouseId();
                        if (spouseId != null) {
                            ZInfoUser spouse = zInfoUserService.getById(spouseId);
                          //  System.out.println(spouseId);
                          //  System.out.println(spouse);
                          //  System.out.println("0000))))))))))))))))");
                            spouse.setIdentity(people.getIdentity() + 1);
                            one.setSpouse(spouse);
                        }
@@ -726,7 +912,7 @@
        // layer = layer + 1;
        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)
@@ -742,14 +928,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;
    }