From 6d44e6f4d503a603fcb1323755f4b0c854d69be0 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 15 一月 2025 16:48:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index dd8c7e6..8d7dd62 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -413,20 +413,52 @@
         shop.setStatus(status);
         shopService.updateById(shop);
         //处理员工等数据
-        UserShop userSh = new UserShop();
-        userSh.setShopId(id);
-        List<UserShop> data = userShopClient.getUserShop(userSh).getData();
-        for (UserShop datum : data) {
-            UserShop userShop = new UserShop();
-            userShop.setUserId(datum.getUserId());
-            List<UserShop> data1 = userShopClient.getUserShop(userShop).getData();
-            long count = data1.stream().filter(s -> !s.getShopId().equals(id)).count();
-            if(0 == count){
+        if(status == 1){
+            UserShop userSh = new UserShop();
+            userSh.setShopId(id);
+            List<UserShop> data = userShopClient.getUserShop(userSh).getData();
+            for (UserShop datum : data) {
                 SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
-                sysUser.setStatus(status == 1 ? "0" : "1");
+                sysUser.setStatus("0");
                 sysUserClient.updateUser(sysUser);
             }
+        }else{
+            //查询门店所有关联数据
+            UserShop userSh = new UserShop();
+            userSh.setShopId(id);
+            List<UserShop> data = userShopClient.getUserShop(userSh).getData();
+            for (UserShop datum : data) {
+                //查询用户关联的其他店铺
+                UserShop userShop = new UserShop();
+                userShop.setUserId(datum.getUserId());
+                List<UserShop> data1 = userShopClient.getUserShop(userShop).getData();
+                List<UserShop> collect = data1.stream().filter(s -> !s.getShopId().equals(id)).collect(Collectors.toList());
+                if(collect.size() == 0){
+                    //如果没有其他店铺,则将用户禁用
+                    SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
+                    sysUser.setStatus("1");
+                    sysUserClient.updateUser(sysUser);
+                }else{
+                    List<Integer> shopIds = collect.stream().map(UserShop::getShopId).collect(Collectors.toList());
+                    List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1)
+                            .in(Shop::getId, shopIds));
+                    //如果用户关联的其他门店都禁用了,将用户禁用
+                    if(list.size() == 0){
+                        SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
+                        sysUser.setStatus("1");
+                        sysUserClient.updateUser(sysUser);
+                    }else{
+                        //修改默认门店
+                        SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
+                        if(sysUser.getObjectId().equals(id)){
+                            sysUser.setObjectId(list.get(0).getId());
+                            sysUserClient.updateUser(sysUser);
+                        }
+                    }
+                }
+            }
         }
+        
         return R.ok();
     }
 

--
Gitblit v1.7.1