From 7b772959ec96e54a52c1750ebaa7a4409e08e81a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 26 一月 2024 15:03:06 +0800
Subject: [PATCH] 修改数据权限bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  111 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 85 insertions(+), 26 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index 4701689..3c3cb57 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -3031,7 +3031,9 @@
         }
         //数据权限
         List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shops = remoteShopService.getShopBySysUserIds(userId);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         if (!shops.isEmpty()) {
             List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
             String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
@@ -3126,7 +3128,9 @@
         }
         //数据权限
         List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shops = remoteShopService.getShopBySysUserIds(userId);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         if (!shops.isEmpty()) {
             List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
             String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
@@ -3187,7 +3191,9 @@
         }
         //数据权限
         List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shops = remoteShopService.getShopBySysUserIds(userId);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         if (!shops.isEmpty()) {
             List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
             String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
@@ -3360,7 +3366,9 @@
      */
     @Override
     public MgtBulletinBoardVo boardOrderTotal(List<Long> userIds) {
-        List<Shop> shopList = remoteShopService.getShopBySysUserIds(userIds);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
         MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(collect);
         Integer activityUserTotal = orderMapper.activityUserTotal(collect);
@@ -3871,14 +3879,16 @@
             }
         }
         //数据权限
-        List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
-        if(null != userIdList){
-            userIdList.addAll(userIds);
-        }else{
-            userIdList = userIds;
+        if(null != userIds){
+            List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
+            if(null != userIdList){
+                userIdList.addAll(userIds);
+            }else{
+                userIdList = userIds;
+            }
+            mgtBasePlatformDto.setUserIdList(userIdList);
         }
-        mgtBasePlatformDto.setUserIdList(userIdList);
 
 
         List<Long> shopIdList = new ArrayList<>();
@@ -3934,14 +3944,52 @@
             List<Long> userIdList = new ArrayList<>();
             if (mgtBasePlatformDto.getUserId() != null) {
                 userIdList.add(mgtBasePlatformDto.getUserId());
-            } else {
-                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
-                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
-                userIdList = mgtUserIdByDept.getUserIdList();
+            }
+            else {
+                // 如果当前登陆人的可视权限是仅个人 只选择了部门也只能看自己的数据
+                SysUser sysUser = SecurityUtils.getSysUser();
+                if (sysUser.getDataScope().equals("5")){
+                    userIdList.add(sysUser.getUserId());
+                }else{
+                    MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                    mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
+                    mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                    userIdList = mgtUserIdByDept.getUserIdList();
+                }
             }
             if (!userIdList.isEmpty()) {
                 mgtBasePlatformDto.setUserIdList(userIdList);
+            }
+        }else{
+            // 没有选择筛选部门和员工 获取当前登陆人的可视权限
+            SysUser sysUser = SecurityUtils.getSysUser();
+            // 如果当前登陆人是查看个人数据
+            Long userId1  = null;
+            // 如果当前登陆人权限是查看部门数据
+            List<Long> userList = new ArrayList<>();
+            if (sysUser!=null){
+                String dataScope = sysUser.getDataScope();
+                if (!sysUser.getUserName().equals("admin")){
+                    if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                        switch (dataScope){
+                            case "3":
+                                // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
+                                mgtUserIdByDept.setDeptId(sysUser.getDeptId());
+                                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
+                                userList = mgtUserIdByDept.getUserIdList();
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                            case "5":
+                                // 仅个人数据 查询当前登陆人关联店铺下的用户
+                                userId1 = sysUser.getUserId();
+                                userList.add(userId1);
+                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
+                                mgtBasePlatformDto.setUserIdList(userList);
+                                break;
+                        }
+                    }
+                }
             }
         }
         //数据权限
@@ -3979,6 +4027,7 @@
         mgtTotalOrderTotalVo.setGoodsTypeMoneyList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setGoodsRankList(Lists.newArrayList());
         mgtTotalOrderTotalVo.setOrderFromRankList(Lists.newArrayList());
+
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         if (mgtBasePlatformDto.getUserId() != null || StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
             if(shopIdList==null||shopIdList.isEmpty()){
@@ -4195,14 +4244,18 @@
         }
         //数据权限
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shopList = remoteShopService.getShopBySysUserIds(userIds);
-        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
-        if(null != shopIdList){
-            shopIdList.addAll(collect);
-        }else{
-            shopIdList = collect;
+        if(null != userIds){
+            BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+            boardMemberTotalDto.setUserIds(userIds);
+            List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+            List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
+            if(null != shopIdList){
+                shopIdList.addAll(collect);
+            }else{
+                shopIdList = collect;
+            }
+            mgtBasePlatformDto.setShopIdList(shopIdList);
         }
-        mgtBasePlatformDto.setShopIdList(shopIdList);
         //获取基础统计
         MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
         totalActivityTotalVo.setOrderTotal(mgtTotalActivityTotalVo.getOrderTotal());
@@ -4309,8 +4362,10 @@
         }
         HashSet<String> set = new HashSet<>();
         // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
-        for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
-            set.add(shopId.toString());
+        if(null != mgtBasePlatformDto.getShopIdList()){
+            for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
+                set.add(shopId.toString());
+            }
         }
         // 将set中的shopId转换为逗号分隔的字符串
         String joinedString = String.join(",", set);
@@ -4411,7 +4466,9 @@
         }
 
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shopList = remoteShopService.getShopBySysUserIds(userIds);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
         if(null != shopIdList){
             shopIdList.addAll(collect);
@@ -4482,7 +4539,9 @@
         }
         //数据权限
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
-        List<Shop> shopList = remoteShopService.getShopBySysUserIds(userIds);
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userIds);
+        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
         List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
         if(null != shopIdList){
             shopIdList.addAll(collect);

--
Gitblit v1.7.1