From 5113fbc23d0a906bfe0c3ff4b0d7d8e35d8ccaf4 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期三, 23 九月 2026 11:23:41 +0800
Subject: [PATCH] bug:员工权限问题

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index 8082caa..67d5522 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -474,14 +474,22 @@
     @ResponseBody
     public Object list(String provinceCode, String cityCode , String name, String phone,String shopName) {
         Page<TStoreListVo> page = new PageFactory<TStoreListVo>().defaultPage();
-        String roleid = UserExt.getUser().getRoleid();
         List<TStoreListVo> list =new ArrayList<>();
-        if("3".equals(roleid)){
-            Integer objectId = UserExt.getUser().getObjectId();
-            list = storeService.listAllStore(page,provinceCode,cityCode,name,phone,shopName,objectId);
-        }else {
+        Integer objectType = UserExt.getUser().getObjectType();
+        if (Integer.valueOf(3).equals(objectType)) {
+            // 门店员工按员工-门店中间表的数据范围查询;getStoreIdsByUserId 同时兼容
+            // sys_user.objectId 和 t_store.storeStaffId 两种历史归属数据。
+            List<Integer> storeIds = userMapper.getStoreIdsByUserId(UserExt.getUser().getId());
+            if (!CollectionUtils.isEmpty(storeIds)) {
+                list = storeService.listAllStoresByIds(page, provinceCode, cityCode, name, phone, shopName, storeIds);
+            }
+        } else if (Integer.valueOf(2).equals(objectType)) {
             Integer objectId = UserExt.getUser().getObjectId();
             list = storeService.listAll(page,provinceCode,cityCode,name,phone,shopName,objectId);
+        } else {
+            // 平台账号不带运营商条件,查询全部门店;数据范围由 objectType 决定,
+            // 不能用 roleid(菜单权限)判断,避免员工被授予角色 1 后被误当成运营商。
+            list = storeService.listAll(page, provinceCode, cityCode, name, phone, shopName, null);
         }
         page.setRecords(list);
         return  super.packForBT(page);

--
Gitblit v1.7.1