From a95d0c4bdd96b09342c7ccf9aa1aef4b26b31302 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 31 七月 2025 14:17:19 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java |   77 +++++++++++++++++++++++++++-----------
 1 files changed, 55 insertions(+), 22 deletions(-)

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 23dab3a..75a34d8 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
@@ -245,13 +245,15 @@
             shopRelTagService.deleteByShopId(shop.getShopId());
             shopRelUserService.deleteByShopId(shop.getShopId());
             //默认登录账号开关 开启后原默认账号开关关闭
-            List<Long> openIdList = Arrays.stream(mgtEditShopDto.getRelUserOpenIds().split(","))
-                    .map(String::trim)
-                    .filter(StringUtils::isNotBlank)
-                    .map(Long::valueOf)
-                    .collect(Collectors.toList());
-            if ( !openIdList.isEmpty()) {
-                shopRelUserService.setDefaultCloseByUserIdList(openIdList);
+            if(StringUtils.isNotEmpty(mgtEditShopDto.getRelUserOpenIds())){
+                List<Long> openIdList = Arrays.stream(mgtEditShopDto.getRelUserOpenIds().split(","))
+                        .map(String::trim)
+                        .filter(StringUtils::isNotBlank)
+                        .map(Long::valueOf)
+                        .collect(Collectors.toList());
+                if ( !openIdList.isEmpty()) {
+                    shopRelUserService.setDefaultCloseByUserIdList(openIdList);
+                }
             }
 
             //清空归属
@@ -317,7 +319,10 @@
             handleShopStaff(shop.getShopId(),belongSysUser);
         }*/
         //商户关联人员
-        String[] openIds = mgtEditShopDto.getRelUserOpenIds().split(",");//开启默认登录账号
+        String[] openIds = null;
+        if(StringUtils.isNotEmpty(mgtEditShopDto.getRelUserOpenIds())){
+            openIds = mgtEditShopDto.getRelUserOpenIds().split(",");//开启默认登录账号
+        }
         if(StringUtils.isNotBlank(relUserIds)){
             shopStaffService.clearShopStaffRelation(shop.getShopId());
             String[] relUserIdArray = relUserIds.split(",");
@@ -334,7 +339,7 @@
                 shopRelUser.setUserName(sysUser.getNickName());
                 shopRelUser.setUserMobile(sysUser.getPhonenumber());
                 shopRelUser.setUserDeptId(sysUser.getDeptId());
-                shopRelUser.setIsDefault((openIds.length > 0  && Arrays.asList(openIds).contains(str)) ? 1 : 0);
+                shopRelUser.setIsDefault((null != openIds && openIds.length > 0  && Arrays.asList(openIds).contains(str)) ? 1 : 0);
                 shopRelUserService.save(shopRelUser);
                 handleShopStaff(shop.getShopId(),sysUser);
             }
@@ -406,10 +411,10 @@
         shopProportion.setDelFlag(0);
         shopProportion.setShopId(shop.getShopId());
         shopProportion.setShopType(shop.getShopType());
+        BigDecimal proportionPercent = new BigDecimal("30");
         String proportionPercentStr = redisService.getCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION);
-        BigDecimal proportionPercent = new BigDecimal(proportionPercentStr);
-        if(proportionPercent==null){
-            proportionPercent = new BigDecimal("30");
+        if(StringUtils.isNotEmpty(proportionPercentStr)){
+            proportionPercent = new BigDecimal(proportionPercentStr);
         }
         shopProportion.setProportionPercent(proportionPercent);
         shopProportion.setUpdateTime(new Date());
@@ -964,13 +969,13 @@
         MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
         merHomeShopTotalVo.setShopId(shopId);
         merHomeShopTotalVo.setShopType(shop.getShopType());
-        merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
-        merHomeShopTotalVo.setUnHandleOrder(orderVo.getUnHandleOrder());
-        Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
-        merHomeShopTotalVo.setTask(taskCount);
-        merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover());
-        merHomeShopTotalVo.setCycleSurp(orderVo.getCycleSurp());
-        merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp());
+        merHomeShopTotalVo.setTodayShop(null == orderVo ? 0: orderVo.getTodayShop());
+        merHomeShopTotalVo.setUnHandleOrder(null == orderVo ? 0: orderVo.getUnHandleOrder());
+        List<Integer> taskCount = memberTaskService.getMemberIngTotal(shopId);
+        merHomeShopTotalVo.setTask(taskCount.size());
+        merHomeShopTotalVo.setShopTurnover(null == orderVo ? BigDecimal.ZERO : orderVo.getShopTurnover());
+        merHomeShopTotalVo.setCycleSurp(null == orderVo ? 0: orderVo.getCycleSurp());
+        merHomeShopTotalVo.setExplorationSurp(null == orderVo ? 0: orderVo.getExplorationSurp());
         merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
         merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
         int unHandleReserve = shopAppointableTimeService.count(new LambdaQueryWrapper<TShopAppointableTime>().eq(TShopAppointableTime::getShopId, shopId).eq(TShopAppointableTime::getStatus, 1));
@@ -1580,11 +1585,11 @@
         // 通过远程订单服务获取商店总览信息
         MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
         // 获取商店任务计数
-        Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
+        List<Integer> taskCount = memberTaskService.getMemberIngTotal(shopId);
         // 设置员工商店信息对象的属性
         staffShopInfoGetVo.setTodayReservation(0);
         staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder());
-        staffShopInfoGetVo.setShopTask(taskCount);
+        staffShopInfoGetVo.setShopTask(taskCount.size());
         staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover());
         staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp());
         staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp());
@@ -1993,6 +1998,21 @@
         if (shop.getShopType()==2){
             //经销商转加盟商:  先解绑该经销商下所有加盟商
             shopMapper.setBelongShopIdNull(shopId);
+        } else {
+            //该加盟商所属区域下的加盟商 改为该新转换的经销商
+            List<String> areaCodes = Optional.ofNullable(shop.getSignAreaCode())
+                    .map(codes -> codes.split(";"))
+                    .map(Arrays::asList)
+                    .orElse(Collections.emptyList());//签约区域
+            if (!areaCodes.isEmpty()){
+                // 1. 查询符合条件的加盟商列表
+                List<Long> shopIds = shopMapper.getShopListBySignAreaCodes(areaCodes);
+
+                // 2. 批量更新(优化性能,避免循环中单条更新)
+                if(null != shopIds && !shopIds.isEmpty()){
+                    shopMapper.updateBelongShopIdBatch(shopIds,shop.getShopId());
+                }
+            }
         }
         shop.setUpdateUserId(SecurityUtils.getUserId());
         shopMapper.updateById(shop);
@@ -2047,11 +2067,24 @@
                         .setDelFlag(0));
             }
         }
-        shopFileService.saveBatch(coverUrlList);
+        shopFileService.saveBatch(bannerList);
 
         //批量修改门店信息
         oneClinkSyncing.setShopIdList(shopIdList);
         shopMapper.updateShopByOneClinkSyncing(oneClinkSyncing);
         return R.ok();
     }
+
+    @Override
+    public List<String> getRelUserShop(Long userId) {
+        List<ShopRelUser> shopRelUserList = shopRelUserService.getByUserId(userId);
+        List<Long> shopIds = shopRelUserList.stream().map(ShopRelUser::getShopId).collect(Collectors.toList());
+        if(!shopIds.isEmpty()){
+            List<Shop> shops = shopMapper.selectList(new LambdaQueryWrapper<Shop>()
+                    .ne(Shop::getShopStatus,-1)
+                    .in(Shop::getShopId,shopIds));
+            return shops.stream().map(Shop::getShopName).collect(Collectors.toList());
+        }
+        return null;
+    }
 }

--
Gitblit v1.7.1