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/controller/management/MgtShopController.java |  194 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 188 insertions(+), 6 deletions(-)

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));
     }
 

--
Gitblit v1.7.1