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