From f89ec4f39d08069d62c81062ca02a5507b24a622 Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期五, 10 一月 2025 22:40:27 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfShareDataController.java |    9 ++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZSelfNoteServiceImpl.java        |   54 ++++++++++--------
 zhang-content/src/main/java/com/ruoyi/service/ZfShareDataService.java               |   13 ++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfShareDataServiceImpl.java      |   86 ++++++++++++++++++++++------
 4 files changed, 118 insertions(+), 44 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfShareDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfShareDataController.java
index 9f058ef..658931f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfShareDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/ZfShareDataController.java
@@ -3,7 +3,9 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.domain.ZInfoUser;
 import com.ruoyi.domain.ZfShareOther;
 import com.ruoyi.domain.ZfShareData;
@@ -37,7 +39,12 @@
      */
     @GetMapping("/all")
     public List<ZfShareOther> listAll(ZfShareData zfShareData) {
-        List<ZfShareData> zfShareData2 = zfShareDataService.selectList();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+
+        zfShareData.setUserId(userId.intValue());
+
+        List<ZfShareData> zfShareData2 = zfShareDataService.selectList(zfShareData);
         List<ZfShareOther> zfShareOtherList = new ArrayList<>();
         for (ZfShareData zfShareData1 :zfShareData2){
             System.out.println("1111111111111111111111");
diff --git a/zhang-content/src/main/java/com/ruoyi/service/ZfShareDataService.java b/zhang-content/src/main/java/com/ruoyi/service/ZfShareDataService.java
index 86bc814..a86cf0c 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/ZfShareDataService.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/ZfShareDataService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.domain.ZfDoctor;
@@ -12,7 +13,7 @@
 
 public interface ZfShareDataService extends IService<ZfShareData> {
 
-    List<ZfShareData> selectList();
+    List<ZfShareData> selectList(ZfShareData zfShareData);
 
     List<ZfShareData> selectByIds(Long[] ids);
 
@@ -26,4 +27,14 @@
 
     List<ZfShareData> getShareId(Long id);
 
+    Long getSource(Long userId);
+
+    Long getEnd(Long userId);
+
+    List<Long> getAllPerson(List<Long> userIds);
+
+    List<ZfShareData> getByShareId(List<Long> id);
+
+
+
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZSelfNoteServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZSelfNoteServiceImpl.java
index 5fd0d2e..ebfdfb2 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZSelfNoteServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZSelfNoteServiceImpl.java
@@ -72,30 +72,37 @@
         return lqw;
     }
 
+//    public List<ZfShareData> getAllByShareId(ZfShareData zfShareData1){
+//        SysUser user = SecurityUtils.getLoginUser().getUser();
+//        Long userId = user.getUserId();
+//
+//        ZfShareData zfShareData = new ZfShareData();
+//        zfShareData.setUserId(userId.intValue());
+//        List<ZfShareData> zfShareDataList = zfShareDataService.selectList(zfShareData);
+//        zfShareData.setUserId(zfShareData1.getUserId());
+//        zfShareDataList.addAll(zfShareDataService.selectList(zfShareData));
+//        return zfShareDataList;
+//    }
+
     public List<Long> getAll(){
         SysUser user = SecurityUtils.getLoginUser().getUser();
         Long userId = user.getUserId();
 
-        List<ZfShareData> shareId = zfShareDataService.getShareId(userId);
-        List<ZfShareData> zfShareDataList = zfShareDataService.selectList();
+        Long source = zfShareDataService.getSource(userId);
+        List<Long> allList = zfShareDataService.getAllPerson(Collections.singletonList(source));
+        allList.add(source);
+        List<Long> collect = allList.stream().distinct().collect(Collectors.toList());
+
         List<Long> all = new ArrayList<>();
         all.add(userId);
-        if(shareId.size() >0 ) {
-            if (shareId.get(0).getMasterAccount() == 0 || shareId.get(0).getMasterAccount() == userId.intValue()) {
-                all.add(shareId.get(0).getUserId().longValue());
-            }
-            else {
-                all.clear();
-                all.add(0L);
-                return all;
-            }
-        }
-        if (zfShareDataList.size()>0 && (zfShareDataList.get(0).getMasterAccount() == 0 || zfShareDataList.get(0).getMasterAccount() == userId.intValue())){
-            for (ZfShareData zfShareOther: zfShareDataList) {
-                all.add(zfShareOther.getSharedId().longValue());
-            }
-        }
 
+        if(collect.size() > 1 ) {
+            Integer masterAccount = zfShareDataService.getByShareId(collect).get(0).getMasterAccount();
+            if (masterAccount != 0 || masterAccount != userId.intValue()) {
+                all.clear();
+            }
+            all.addAll(collect);
+        }
         return all;
     }
 
@@ -107,14 +114,13 @@
         LambdaQueryWrapper<ZSelfNote> lqw = buildCondition(zSelfNote);
         SysUser user = SecurityUtils.getLoginUser().getUser();
         Long userId = user.getUserId();
-        List<ZfShareData> zfShareOtherList = zfShareDataService.selectList();
-        List<ZfShareData> shareId = zfShareDataService.getShareId(userId);
-        if (list(lqw).size()==0) {
+
+        List<Long> all = getAll();
+        if (all.contains(userId)) {
+            List<ZfShareData> byShareId = zfShareDataService.getByShareId(all);
             Integer masterAccount = 0;
-            if(zfShareOtherList.size()>0 ){
-             masterAccount = zfShareOtherList.get(0).getMasterAccount();}
-            if(shareId.size()>0){
-                masterAccount = shareId.get(0).getMasterAccount();
+            if(byShareId.size()>0){
+                masterAccount = byShareId.get(0).getMasterAccount();
             }
             ZInfoUser infoBysysId = zInfoUserService.getInfoBysysId(masterAccount.longValue());
             if (infoBysysId !=null)
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfShareDataServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfShareDataServiceImpl.java
index 6f80223..6074162 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfShareDataServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfShareDataServiceImpl.java
@@ -1,11 +1,9 @@
 package com.ruoyi.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-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.EsModel;
-import com.ruoyi.common.utils.MapUtils;
 import com.ruoyi.domain.*;
 import com.ruoyi.mapper.ZfShareDataMapper;
 import com.ruoyi.service.EsService;
@@ -19,10 +17,8 @@
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ZfShareDataServiceImpl extends ServiceImpl<ZfShareDataMapper, ZfShareData> implements ZfShareDataService {
@@ -34,11 +30,8 @@
     private RestHighLevelClient restHighLevelClient;
 
     @Resource
-    private ZfClanService zfClanService;
-
-
-    @Resource
     private EsService esSer;
+
     private LambdaQueryWrapper<ZfShareData> buildCondition(Long userId) {
         LambdaQueryWrapper<ZfShareData> lqw = new LambdaQueryWrapper<>();
         lqw.orderByDesc(ZfShareData::getId);
@@ -54,7 +47,7 @@
     }
 
     @Override
-    public List<ZfShareData> selectList() {
+    public List<ZfShareData> selectList(ZfShareData zfShareData) {
         LambdaQueryWrapper<ZfShareData> lqw = buildCondition(getUserId());
 
         return list(lqw);
@@ -75,7 +68,7 @@
         return myself.getUserId();
 
     }
-
+    @Override
     public Long getSource(Long userId){
         LambdaQueryWrapper<ZfShareData> lqw = new LambdaQueryWrapper<>();
         lqw.orderByDesc(ZfShareData::getId);
@@ -85,6 +78,16 @@
         }
         return getSource(list(lqw).get(0).getUserId().longValue());
     }
+    @Override
+    public Long getEnd(Long userId){
+        LambdaQueryWrapper<ZfShareData> lqw1 = new LambdaQueryWrapper<>();
+        lqw1.eq(ZfShareData::getUserId,userId);
+        if (list(lqw1).size() == 0){
+            return userId;
+        }
+        return getEnd(list(lqw1).get(list(lqw1).size()-1).getSharedId().longValue());
+    }
+
     @Override
     public AjaxResult addData(Long[] userIds) {
 
@@ -129,22 +132,61 @@
         }
     }
 
+
+    private LambdaQueryWrapper<ZfShareData> selectByUserId(List<Long> userId) {
+        LambdaQueryWrapper<ZfShareData> lqw = new LambdaQueryWrapper<>();
+        lqw.in(ZfShareData::getSharedId,userId);
+        return lqw;
+    }
+
+    private LambdaQueryWrapper<ZfShareData> selectBySharedId(List<Long> userId) {
+        LambdaQueryWrapper<ZfShareData> lqw = new LambdaQueryWrapper<>();
+        lqw.in(ZfShareData::getUserId,userId);
+        return lqw;
+    }
+
+    @Override
+    public List<Long> getAllPerson(List<Long> userIds){
+        List<ZfShareData> lists = new ArrayList<>(list(selectByUserId(userIds)));
+        lists.addAll(list(selectBySharedId(userIds)));
+
+        if (userIds.contains(getEnd(getSource(userIds.get(0))))){
+            return userIds;
+        }
+
+        return getAllPerson(lists.stream().map(ZfShareData::getSharedId).map(Integer::longValue).collect(Collectors.toList()));
+
+    }
+
     @Override
     public AjaxResult setAdmin(Long userId,Long id) {
-        List<ZfShareData> list = list(buildCondition(getSource(userId)));
-        list.addAll(getShareId(userId));
-        for (ZfShareData zfShareData1:list){
+        Long source = getSource(userId);
+        List<Long> all = getAllPerson(Collections.singletonList(source));
+        List<Long> collect = all.stream().distinct().collect(Collectors.toList());
+        collect.add(source);
+
+        List<ZfShareData> list = list(selectByUserId(collect));
+        list.addAll(list(selectBySharedId(collect)));
+        List<ZfShareData> collect1 = list.stream().distinct().collect(Collectors.toList());
+        for (ZfShareData zfShareData1:collect1){
             zfShareData1.setMasterAccount(id.intValue());
             updateById(zfShareData1);
         }
+
         return AjaxResult.success();
     }
 
     @Override
     public AjaxResult allUser(Long id) {
-        List<ZfShareData> list = list(buildCondition(getSource(id)));
-        list.addAll(getShareId(id));
-        for (ZfShareData zfShareData1:list){
+        Long source = getSource(id);
+        List<Long> all = getAllPerson(Collections.singletonList(source));
+        List<Long> collect = all.stream().distinct().collect(Collectors.toList());
+        collect.add(source);
+
+        List<ZfShareData> list = list(selectByUserId(collect));
+        list.addAll(list(selectBySharedId(collect)));
+        List<ZfShareData> collect1 = list.stream().distinct().collect(Collectors.toList());
+        for (ZfShareData zfShareData1:collect1){
             zfShareData1.setMasterAccount(0);
             updateById(zfShareData1);
         }
@@ -158,4 +200,12 @@
         lqw.eq(ZfShareData::getSharedId,id);
         return list(lqw);
     }
+
+    @Override
+    public List<ZfShareData> getByShareId(List<Long> id) {
+        LambdaQueryWrapper<ZfShareData> lqw = new LambdaQueryWrapper<>();
+        lqw.orderByDesc(ZfShareData::getId);
+        lqw.in(ZfShareData::getSharedId,id);
+        return list(lqw);
+    }
 }

--
Gitblit v1.9.1