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

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                          |    4 +-
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java |   14 +++++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java    |    6 ++-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java   |   70 +++++++++-------------------------
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                             |    3 +
 5 files changed, 42 insertions(+), 55 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 4332bf0..8da813a 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
@@ -3870,7 +3870,7 @@
                 userIdList.add(mgtBasePlatformDto.getUserId());
             } else {
                 MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
-                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
+                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
                 mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                 userIdList = mgtUserIdByDept.getUserIdList();
             }
@@ -3903,8 +3903,10 @@
         MgtSimpleShopVo simpleShopVo;
         HashSet<String> set = new HashSet<>();
         // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
-        for (Long entity : shopIdList) {
-            set.add(entity.toString());
+        if(null != shopIdList){
+            for (Long entity : shopIdList) {
+                set.add(entity.toString());
+            }
         }
         String joinedString = String.join(",", set);
         MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
@@ -3944,63 +3946,25 @@
             List<Long> userIdList = new ArrayList<>();
             if (mgtBasePlatformDto.getUserId() != null) {
                 userIdList.add(mgtBasePlatformDto.getUserId());
-            }
-            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();
-                }
+            } else {
+                List<SysUser> data = remoteUserService.getUsersByDeptId(mgtBasePlatformDto.getDeptId()).getData();
+                userIdList.addAll(data.stream().map(SysUser::getUserId).collect(Collectors.toList()));
             }
             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;
-                        }
-                    }
-                }
             }
         }
         //数据权限
         List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
-        if(null != userIdList){
-            userIdList.addAll(userIds);
-        }else{
-            userIdList = userIds;
+        if(null != userIds){
+            if(null != userIdList){
+                userIdList.addAll(userIds);
+            }else{
+                userIdList = userIds;
+            }
+            mgtBasePlatformDto.setUserIdList(userIdList);
         }
-        mgtBasePlatformDto.setUserIdList(userIdList);
 
 
         MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo();
@@ -4236,6 +4200,9 @@
         List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
         if(null != userIds){
             List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
+            if(null == userIdList){
+                userIdList = new ArrayList<>();
+            }
             userIdList.addAll(userIds);
             mgtBasePlatformDto.setUserIdList(userIdList);
         }
@@ -4250,6 +4217,7 @@
             shopIdList = new ArrayList<>();
             shopIdList.add(mgtBasePlatformDto.getShopId());
         }
+        mgtBasePlatformDto.setShopIdList(shopIdList);
 
         //获取基础统计
         MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 46a4181..0060848 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -751,7 +751,7 @@
 
     <select id="boardOrderTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo">
         SELECT
-            IFNULL(SUM(CASE WHEN order_status = 3 THEN (CASE WHEN null = change_receivable_money or 0 = change_receivable_money THEN receivable_money ELSE change_receivable_money) ELSE 0 END),0) salesTotal,
+            IFNULL(SUM(CASE WHEN order_status = 3 THEN (CASE WHEN null = change_receivable_money or 0 = change_receivable_money THEN receivable_money ELSE change_receivable_money END) ELSE 0 END),0) salesTotal,
             IFNULL(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END),0) UnUseOrderTotal,
             IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityOrderTotal
         FROM t_order
@@ -763,7 +763,7 @@
                 #{item}
             </foreach>
             ) or (
-            order_from = 1 and shop_id in
+            order_from != 2 and shop_id in
             <foreach collection="shopIds" index="index" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index 408fcfc..b657b71 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -31,6 +31,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.rmi.server.ServerCloneException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -170,6 +171,13 @@
                 }
             }
         }
+        if(null != mgtShopPageDto.getDeptId()){
+            R<List<SysUser>> r = sysUserService.getUsersByDeptId(mgtShopPageDto.getDeptId());
+            List<Long> collect = r.getData().stream().map(SysUser::getUserId).collect(Collectors.toList());
+            List<Shop> shops = shopService.getShopBySysUserIds(collect);
+            scope.addAll(shops.stream().map(Shop::getShopId).collect(Collectors.toList()));
+        }
+
         Page<MgtShopPageVo> page = new Page<>();
         page.setSize(mgtShopPageDto.getPageSize());
         page.setCurrent(mgtShopPageDto.getPageNum());
@@ -223,6 +231,12 @@
                 }
             }
         }
+        if(null != mgtShopPageDto.getDeptId()){
+            R<List<SysUser>> r = sysUserService.getUsersByDeptId(mgtShopPageDto.getDeptId());
+            List<Long> collect = r.getData().stream().map(SysUser::getUserId).collect(Collectors.toList());
+            List<Shop> shops = shopService.getShopBySysUserIds(collect);
+            scope.addAll(shops.stream().map(Shop::getShopId).collect(Collectors.toList()));
+        }
         List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto,scope);
         ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class);
         util.exportExcel(response, mgtShopPageVoList, "商户列表");
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 2e3de3c..58536f9 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -349,6 +349,9 @@
         <if test="param.recommendPerson!=null and param.recommendPerson!=''">
             AND ts.recommend_person = #{param.recommendPerson}
         </if>
+        <if test="param.belongUserId != null">
+            AND ts.belong_user_id = #{param.belongUserId}
+        </if>
         <if test="param.belongUserIds != null and param.belongUserIds.size() > 0">
             AND ts.belong_user_id in
             <foreach collection="param.belongUserIds" item="item" index="index" separator="," open="(" close=")">
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
index 5f6f39b..57776ec 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -99,8 +99,10 @@
      */
     @PostMapping("/getUsersByDeptId")
     R<List<SysUser>> getUsersByDeptId(@RequestBody Long deptId){
-        List<SysUser> list = userService.list(new QueryWrapper<SysUser>().eq("dept_id", deptId).eq("del_flag", 0));
-        return R.ok(list);
+        SysUser sysUser = new SysUser();
+        sysUser.setDeptId(deptId);
+        List<SysUser> sysUsers = userService.selectUserList(sysUser);
+        return R.ok(sysUsers);
     }
 
 

--
Gitblit v1.7.1