From a150bbd71cb204432c945d5988b3b9ac21a99b31 Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期一, 18 十一月 2024 21:42:44 +0800
Subject: [PATCH] 修改家谱搜索

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java |  216 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 170 insertions(+), 46 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
index 83843cb..8bbb943 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZInfoUserServiceImpl.java
+++ b/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;
@@ -51,6 +49,7 @@
     @Resource
     private ZfFamilyService zfFamilyService;
 
+
     @Resource
     private ZfRoleService zfRoleService;
 
@@ -68,6 +67,60 @@
     }
 
     @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);
+    }
+
+
+//    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<>();
         lqw.eq(ZInfoUser::getSysId, sysid);
@@ -76,6 +129,16 @@
             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
@@ -109,6 +172,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;
 
     }
@@ -319,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))
@@ -364,8 +430,9 @@
 //                    System.out.println(people);
                     return people;
                 }).collect(Collectors.toList());
-
+//
 //System.out.println("--------------++++++++++++++++--------------");
+//System.out.println(result);
         return AjaxResult.success(result);
 
     }
@@ -380,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->{
@@ -442,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();
@@ -463,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)
@@ -477,12 +570,14 @@
             }
             resultData.add(collect.get(i));
         }
-
-
+//        System.out.println(resultData);
+//        System.out.println("999999999988888888888++++++++++++++++++++++");
+//
+//
         //瀵箁esult鍋氫竴涓潯浠剁瓫閫�
-        Iterator<Genealogy> it = resultData.iterator();
-        while(it.hasNext()){
-            Genealogy data = it.next();
+        Iterator<Genealogy> it = resultData.iterator(); //杩唬鍣� 浠巒ull寮�濮�
+        while(it.hasNext()){ //鍒ゆ柇涓嬩竴涓寚閽堟寚鍚戝厓绱犳槸鍚︿负绌�
+            Genealogy data = it.next(); //璺冲埌涓嬩竴涓厓绱�
 
             if(genealogy.getIdentity()!=null){
                 if(data.getIdentity()!=genealogy.getIdentity()){
@@ -520,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) {
@@ -629,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!=-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;
     }
 
@@ -683,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
@@ -735,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);
     }
 
@@ -777,17 +897,20 @@
         // 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)
 //        ).collect(Collectors.toList());
 
         List<ZInfoUser> collect = allPeopleList.stream().filter(
-                one -> ((one.getFamilyId()!=null && one.getFatherId() == people.getUserId()) || (one.getMomId()!=null&&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();
@@ -812,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;
 
     }
@@ -837,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)
@@ -855,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;
 
     }

--
Gitblit v1.9.1