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