From 9c66102a4fae1922aac72dc153e3e76b5856bae3 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期三, 24 一月 2024 15:07:01 +0800 Subject: [PATCH] 数据权限 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java | 9 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 194 +++++++++++++++++++++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java | 35 +++- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java | 11 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java | 3 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java | 32 +++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java | 18 +- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java | 5 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 32 +++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 49 +++++ ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java | 3 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml | 25 +++ ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java | 13 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java | 3 ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml | 6 18 files changed, 402 insertions(+), 46 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java index 315c6b4..080c521 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java @@ -43,6 +43,11 @@ } @Override + public R<List<Long>> getShopIdsByUserIds(List<Long> userIds) { + return R.fail("通过用户ids获取店铺ids失败:" + throwable.getMessage()); + } + + @Override public R<ShopAuthenticationHftxVo> getShopHFTXSubMchId(@RequestBody Long shopId){ return R.fail("获取微信商户号失败:" + throwable.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java index 37a390e..241c58b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java @@ -24,7 +24,8 @@ @PostMapping("/shop/getShopSubMchId") public R<String> getShopSubMchId(@RequestBody Long shopId); - + @PostMapping("/shop/getShopIdsByUserIds") + public R<List<Long>> getShopIdsByUserIds(@RequestBody List<Long> userIds); @PostMapping("/shop/getShopHFTXSubMchId") public R<ShopAuthenticationHftxVo> getShopHFTXSubMchId(@RequestBody Long shopId); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java index 75edf33..5999d8d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java @@ -57,6 +57,9 @@ Page<MgtMemberPageVo> page = new Page<>(); page.setSize(mgtMemberPageDto.getPageSize()); page.setCurrent(mgtMemberPageDto.getPageNum()); + // 获取当前登陆人的可视权限 + Long userId = SecurityUtils.getUserId(); + List<MgtMemberPageVo> mgtShopPageVoList = memberService.pageMgtMember(page,mgtMemberPageDto); return R.ok(page.setRecords(mgtShopPageVoList)); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java index d3ba203..1872600 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java @@ -75,7 +75,8 @@ * @param merMemberPageDto * @return */ - List<MgtMemberPageVo> pageMgtMember(Page page, @Param("param") MgtMemberPageDto merMemberPageDto); + List<MgtMemberPageVo> pageMgtMember(Page page, @Param("param") MgtMemberPageDto merMemberPageDto, + @Param("list")List<Long> list); /** * @description 删除标签 diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 21f0c1f..62a2f96 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -903,6 +903,7 @@ */ @Override public List<MgtMemberPageVo> pageMgtMember(Page page, MgtMemberPageDto merMemberPageDto) { + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); Date nowDay = new Date(); if (merMemberPageDto.getActivenessId() != null) { @@ -932,8 +933,37 @@ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); } + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 获取店铺ids + List<Long> data = shopService.getShopIdsByUserIds(userIds).getData(); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.getShopIdsByUserIds(longs).getData(); + scope.addAll(data1); + break; + } + } + } + } //查询获取结果列表 - List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); + List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto,scope); //处理活跃度返回 if (memberPageVoList != null && !memberPageVoList.isEmpty()) { if (activenessList != null && !activenessList.isEmpty()) { diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml index 6da2b14..a73ce7a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml @@ -313,6 +313,12 @@ <if test="param.memberTags != null and param.memberTags != ''"> AND tm.user_tags REGEXP #{param.memberTags} </if> + <if test="list != null and list.size()>0"> + AND tm.relation_shop_id IN + <foreach collection="list" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> ORDER BY tm.create_time DESC </select> 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 9a9745d..b833e9c 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 @@ -3955,14 +3955,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; + } + } + } } } MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo(); @@ -3989,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()){ diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java index a2a14b7..c932321 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java @@ -30,6 +30,8 @@ import javax.annotation.Resource; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author jqs34 @@ -78,7 +80,16 @@ @Autowired private ShopAuthenticationHftxService shopAuthenticationHftxService; - + @PostMapping("/getShopIdsByUserIds") + public R<List<Long>> getShopIdsByUserIds(@RequestBody List<Long> userIds) + { + // 店铺ids + List<Long> list = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + return R.ok(list); + } /** * 企业微信H5登录 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 3ef9587..3008621 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 @@ -1,6 +1,7 @@ package com.ruoyi.shop.controller.management; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; @@ -12,7 +13,10 @@ import com.ruoyi.shop.domain.vo.*; import com.ruoyi.shop.service.shop.*; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; +import com.ruoyi.system.api.domain.poji.shop.Shop; +import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; +import com.ruoyi.system.api.service.RemoteUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -27,8 +31,10 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author jqs34 @@ -61,24 +67,95 @@ @Resource private BankBranchCodeService bankBranchCodeService; - + @Resource + private RemoteUserService sysUserService; @RequestMapping(value = "/listMgtShopSimpleVo", method = RequestMethod.POST) @ApiOperation(value = "获取简易商户列表") public R<List<MgtShopListSimpleVo>> listMgtShopSimpleVo(@RequestBody MgtShopListDto mgtShopListDto) { - List<MgtShopListSimpleVo> mgtShopListSimpleVoList = shopService.listMgtShopSimpleVo(mgtShopListDto); + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 店铺ids + List<Long> data = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", longs) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data1); + break; + } + } + } + } + List<MgtShopListSimpleVo> mgtShopListSimpleVoList = shopService.listMgtShopSimpleVo(mgtShopListDto,scope); return R.ok(mgtShopListSimpleVoList); } @RequestMapping(value = "/pageMgtShop", method = RequestMethod.POST) @ApiOperation(value = "分页获取商户列表") public R<Page<MgtShopPageVo>> pageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto) { + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 店铺ids + List<Long> data = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", longs) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data1); + break; + } + } + } + } Page<MgtShopPageVo> page = new Page<>(); page.setSize(mgtShopPageDto.getPageSize()); page.setCurrent(mgtShopPageDto.getPageNum()); - List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto); + List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto,scope); return R.ok(page.setRecords(mgtShopPageVoList)); } @@ -93,7 +170,42 @@ page.setSize(mgtShopPageDto.getPageSize()); page.setCurrent(mgtShopPageDto.getPageNum()); } - List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto); + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 店铺ids + List<Long> data = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 1)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", longs) + .eq("del_flag", 1)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data1); + break; + } + } + } + } + List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto,scope); ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class); util.exportExcel(response, mgtShopPageVoList, "商户列表"); } @@ -282,7 +394,42 @@ Page<MgtShopAuthPageVo> page = new Page<>(); page.setSize(mgtShopAuthPageDto.getPageSize()); page.setCurrent(mgtShopAuthPageDto.getPageNum()); - List<MgtShopAuthPageVo> mgtShopAuthPageVoList = shopService.pageMgtShopAuth(page,mgtShopAuthPageDto); + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 店铺ids + List<Long> data = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", longs) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data1); + break; + } + } + } + } + List<MgtShopAuthPageVo> mgtShopAuthPageVoList = shopService.pageMgtShopAuth(page,mgtShopAuthPageDto,scope); return R.ok(page.setRecords(mgtShopAuthPageVoList)); } @@ -325,10 +472,45 @@ @RequestMapping(value = "/pageMgtShopHFTXAuth", method = RequestMethod.POST) @ApiOperation(value = "分页获取商户进件列表(汇付天下)") public R<Page<MgtShopHFTXAuthPageVo>> pageMgtShopHFTXAuth(@RequestBody MgtShopHFTXAuthPageDto mgtShopAuthPageDto) { + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 店铺ids + List<Long> scope = 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": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + // 根据用户id 查询同部门下所有员工id + List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); + // 店铺ids + List<Long> data = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", userIds) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + List<Long> longs = new ArrayList<>(); + longs.add(sysUser.getUserId()); + // 获取店铺ids + List<Long> data1 = shopService.list(new QueryWrapper<Shop>() + .in("belong_user_id", longs) + .eq("del_flag", 0)) + .stream().map(Shop::getShopId).collect(Collectors.toList()); + scope.addAll(data1); + break; + } + } + } + } Page<MgtShopHFTXAuthPageVo> page = new Page<>(); page.setSize(mgtShopAuthPageDto.getPageSize()); page.setCurrent(mgtShopAuthPageDto.getPageNum()); - List<MgtShopHFTXAuthPageVo> mgtShopHFTXAuthPageVos = shopService.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto); + List<MgtShopHFTXAuthPageVo> mgtShopHFTXAuthPageVos = shopService.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto,scope); return R.ok(page.setRecords(mgtShopHFTXAuthPageVos)); } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java index b403048..58b1459 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopMapper.java @@ -39,7 +39,7 @@ * @param mgtShopPageDto * @return */ - List<MgtShopPageVo> pageMgtShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto); + List<MgtShopPageVo> pageMgtShop(Page page, @Param("param") MgtShopPageDto mgtShopPageDto,@Param("list") List<Long> scope); /** @@ -101,7 +101,8 @@ * @param mgtShopListDto * @return List<MgtShopListSimpleVo> */ - List<MgtShopListSimpleVo> listMgtShopSimpleVo(@Param("param")MgtShopListDto mgtShopListDto); + List<MgtShopListSimpleVo> listMgtShopSimpleVo(@Param("param")MgtShopListDto mgtShopListDto, + @Param("list")List<Long> list); /** * @description 通过id获取商户列表 @@ -130,7 +131,8 @@ * @author jqs34 * @date 2023/6/15 0:05 */ - List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, @Param("param")MgtShopAuthPageDto mgtShopAuthPageDto); + List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, @Param("param")MgtShopAuthPageDto mgtShopAuthPageDto, + @Param("list")List<Long> scope); /** @@ -139,7 +141,8 @@ * @param mgtShopAuthPageDto * @return */ - List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, @Param("param") MgtShopHFTXAuthPageDto mgtShopAuthPageDto); + List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, @Param("param") MgtShopHFTXAuthPageDto mgtShopAuthPageDto, + @Param("list")List<Long> scope); diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java index 25083ba..171dea4 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java @@ -552,12 +552,13 @@ * @return */ @Override - public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto){ + public List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto,List<Long> scope){ if (StringUtils.isNotBlank(mgtShopPageDto.getShopTags())) { mgtShopPageDto.setShopTags(mgtShopPageDto.getShopTags().replace(",", "|")); } + // 分页查询商铺信息 - List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto); + List<MgtShopPageVo> mgtShopPageVoList = shopMapper.pageMgtShop(page, mgtShopPageDto,scope); // 如果查询结果不为空 if (!mgtShopPageVoList.isEmpty()) { // 创建签约用户ID集合和所属用户ID集合 @@ -1043,8 +1044,8 @@ * @return List<MgtShopListSimpleVo> */ @Override - public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto){ - return shopMapper.listMgtShopSimpleVo(mgtShopListDto); + public List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto,List<Long> scope){ + return shopMapper.listMgtShopSimpleVo(mgtShopListDto,scope); } /** @@ -1081,8 +1082,8 @@ * @date 2023/6/14 23:01 */ @Override - public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto){ - return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto); + public List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto,List<Long> scope){ + return shopMapper.pageMgtShopAuth(page, mgtShopAuthPageDto,scope); } /** @@ -1092,8 +1093,9 @@ * @return */ @Override - public List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto) { - return shopMapper.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto); + public List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto, + List<Long> scope) { + return shopMapper.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto,scope); } /** diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java index 9e8683a..b0ae7fe 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java +++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopService.java @@ -70,7 +70,7 @@ * @param mgtShopPageDto * @return */ - List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto); + List<MgtShopPageVo> pageMgtShop(Page page, MgtShopPageDto mgtShopPageDto,List<Long> scope); /** * 获取商户详情 @@ -161,7 +161,7 @@ * @param mgtShopListDto * @return List<MgtShopListSimpleVo> */ - List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto); + List<MgtShopListSimpleVo> listMgtShopSimpleVo(MgtShopListDto mgtShopListDto,List<Long> scope); /** * @description 通过id获取商户列表 @@ -190,7 +190,8 @@ * @author jqs34 * @date 2023/6/15 0:05 */ - List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto); + List<MgtShopAuthPageVo> pageMgtShopAuth(Page page, MgtShopAuthPageDto mgtShopAuthPageDto, + List<Long> scope); /** @@ -199,7 +200,7 @@ * @param mgtShopAuthPageDto * @return */ - List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto); + List<MgtShopHFTXAuthPageVo> pageMgtShopHFTXAuth(Page page, MgtShopHFTXAuthPageDto mgtShopAuthPageDto,List<Long> scope); /** 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 66bcf2e..987423d 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 @@ -392,6 +392,12 @@ AND (ts.shop_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_phone LIKE CONCAT('%',#{param.keyword},'%') OR ts.shop_number LIKE CONCAT('%',#{param.keyword},'%')) </if> + <if test="list !=null and list.size()>0" > + AND ts.shop_id IN + <foreach collection="list" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> ORDER BY ts.create_time DESC </select> @@ -515,7 +521,12 @@ <if test="param.keyword!=null and param.keyword!=''"> AND shop_name LIKE CONCAT('%',#{param.keyword},'%') </if> - + <if test="list !=null and list.size()>0" > + AND shop_id IN + <foreach collection="list" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> </select> <select id="listShopSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleShopVo"> @@ -592,6 +603,12 @@ <if test="param.shopStatus!=null and param.shopStatus!=''"> AND ts.shop_status = #{param.shopStatus} </if> + <if test="list!=null and list.size()>0"> + AND ts.shop_id IN + <foreach collection="list" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> ORDER BY auditStatusSort ASC,ts.create_time DESC </select> @@ -629,6 +646,12 @@ <if test="param.shopStatus!=null and param.shopStatus!=''"> AND a.shop_status = #{param.shopStatus} </if> + <if test="list!=null and list.size()>0"> + AND a.shop_id IN + <foreach collection="list" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> ORDER BY a.create_time DESC </select> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java index 29cc75a..3c948a1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java @@ -8,6 +8,8 @@ import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; +import com.ruoyi.system.api.domain.poji.sys.SysUser; +import com.ruoyi.system.api.service.RemoteUserService; import com.ruoyi.system.domain.dto.*; import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; import com.ruoyi.system.domain.vo.MgtStaffPageVo; @@ -23,6 +25,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.List; import static com.ruoyi.common.core.web.domain.AjaxResult.success; @@ -39,7 +42,8 @@ @RequestMapping("/mgt/staff") public class MgtStaffController { - + @Resource + private RemoteUserService sysUserService; @Resource private StaffSuggestService staffSuggestService; @@ -50,7 +54,31 @@ @RequestMapping(value = "/listMgtDeptStaff", method = RequestMethod.POST) @ApiOperation(value = "获取部门员工列表") public R<List<MgtDeptStaffListVo>> listMgtDeptStaff() { - List<MgtDeptStaffListVo> mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff(); + // 获取当前登陆人的可视权限 + SysUser sysUser = SecurityUtils.getSysUser(); + // 如果当前登陆人权限是查看部门数据 + Long deptId = null; + // 如果当前登陆人是查看个人数据 + Long userId = null; + if (sysUser!=null){ + String dataScope = sysUser.getDataScope(); + if (!sysUser.getUserName().equals("admin")){ + if (org.springframework.util.StringUtils.hasLength(dataScope)){ + switch (dataScope){ + case "3": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + deptId = sysUser.getDeptId(); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + userId = sysUser.getUserId(); + break; + } + } + } + } + + List<MgtDeptStaffListVo> mgtDeptStaffListVoList= sysStaffService.listMgtDeptStaff(deptId,userId); return R.ok(mgtDeptStaffListVoList); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java index 42ae119..5dff21d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/staff/SysStaffMapper.java @@ -28,7 +28,7 @@ * @param * @return List<MgtDeptStaffListVo> */ - List<MgtDeptStaffListVo> listMgtDeptStaff(); + List<MgtDeptStaffListVo> listMgtDeptStaff(@Param("deptId") Long deptId,@Param("userId")Long userId); /** * @description 获取部门员工列表 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java index a3facc5..e556da6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java @@ -89,8 +89,8 @@ * @return List<MgtDeptStaffListVo> */ @Override - public List<MgtDeptStaffListVo> listMgtDeptStaff(){ - return sysStaffMapper.listMgtDeptStaff(); + public List<MgtDeptStaffListVo> listMgtDeptStaff(Long deptId,Long userId){ + return sysStaffMapper.listMgtDeptStaff(deptId,userId); } /** @@ -102,16 +102,31 @@ */ @Override public List<MgtDeptStaffListVo>listMgtDeptStaffByPermission(Long userId){ - SysUser sysUser = sysUserService.selectUserById(userId); - String dataScope = sysUser.getDataScope(); List<MgtDeptStaffListVo> deptStaffListVoList; - if(dataScope!=null&&dataScope.equals("4")){ - deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),null); - }else if(dataScope!=null&&dataScope.equals("5")){ - deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),sysUser.getUserId()); - }else{ - deptStaffListVoList = sysStaffMapper.listMgtDeptStaff(); + // 获取当前登陆人的可视权限 + SysUser sysUser = sysUserService.selectUserById(userId); + // 如果当前登陆人权限是查看部门数据 + Long deptId = null; + // 如果当前登陆人是查看个人数据 + Long userId1 = null; + if (sysUser!=null){ + String dataScope = sysUser.getDataScope(); + if (!sysUser.getUserName().equals("admin")){ + if (org.springframework.util.StringUtils.hasLength(dataScope)){ + switch (dataScope){ + case "3": + // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 + deptId = sysUser.getDeptId(); + break; + case "5": + // 仅个人数据 查询当前登陆人关联店铺下的用户 + userId1 = sysUser.getUserId(); + break; + } + } + } } + deptStaffListVoList = sysStaffMapper.listMgtDeptStaff(deptId,userId1); return deptStaffListVoList; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java index 176bfaa..668318b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/staff/SysStaffService.java @@ -30,7 +30,7 @@ * @param * @return List<MgtDeptStaffListVo> */ - List<MgtDeptStaffListVo> listMgtDeptStaff(); + List<MgtDeptStaffListVo> listMgtDeptStaff(Long deptId,Long userId); /** * @description 通过权限获取部门员工列表 diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml index d335ea4..3904e91 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/staff/SysStaffMapper.xml @@ -20,6 +20,12 @@ FROM sys_dept sd LEFT JOIN sys_user su ON sd.dept_id = su.dept_id WHERE sd.del_flag = "0" AND su.del_flag = "0" AND su.status = "0" + <if test="deptId != null"> + AND sd.dept_id = #{deptId} + </if> + <if test="userId != null "> + AND su.user_id = #{userId} + </if> </select> <select id="listMgtDeptStaffByDept" resultMap="deptStaffResultMap"> -- Gitblit v1.7.1