From e153b340f4371ea7bbeb3009a382837ffd60a4b9 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 28 八月 2023 18:12:01 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml                                 |    2 
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                 |    8 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java       |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java          |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java |   10 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java     |  113 ++++---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtSysStaffImportDto.java            |    9 
 ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java                    |    5 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java        |    3 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java                   |    6 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java          |  593 ++++++++++++++++++++++++++++++++++++++---
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml                                |    2 
 ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml                                                 |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java     |   39 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java   |    2 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java       |    1 
 ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml                                               |    1 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                    |    3 
 18 files changed, 676 insertions(+), 125 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
index 1fbb682..26d846a 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
@@ -28,7 +28,7 @@
             @Override
             public R<Boolean> saveLog(SysOperLog sysOperLog, String source)
             {
-                return null;
+                return R.fail("日志服务调用失败:" + throwable.getMessage());
             }
 
             @Override
diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
index 5220e2a..76c7ad0 100644
--- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
+++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java
@@ -114,13 +114,14 @@
             getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult);
             // 设置消耗时间
             operLog.setCostTime(System.currentTimeMillis() - TIME_THREADLOCAL.get());
+            log.info("日志打印"+operLog.toString());
             // 保存数据库
             asyncLogService.saveSysLog(operLog);
         }
         catch (Exception exp)
         {
             // 记录本地异常日志
-            log.error("异常信息:{}", exp.getMessage());
+            log.error("日志异常信息:{}", exp.getMessage());
             exp.printStackTrace();
         }
         finally
@@ -155,7 +156,7 @@
         // 是否需要保存response,参数和值
         if (log.isSaveResponseData() && StringUtils.isNotNull(jsonResult))
         {
-            operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 2000));
+            operLog.setJsonResult(StringUtils.substring(JSON.toJSONString(jsonResult), 0, 1000));
         }
     }
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
index 47f06d7..d3d88c2 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -198,7 +198,7 @@
         FROM t_goods tg
         INNER JOIN t_goods_total tgt ON tg.goods_id = tgt.goods_id
         LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
-        LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} AND del_flag = 0
+        LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{param.shopId} AND tsg.del_flag = 0
         WHERE tg.del_flag = 0 AND tg.goods_status = 1
         <if test="param.goodsType!=null and param.goodsType != ''">
             AND tg.goods_type = #{param.goodsType}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java
index 893c878..1ecfc03 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtTotalController.java
@@ -36,7 +36,6 @@
     @ApiOperation(value = "获取商户会员人数统计(商户管理-统计经营-会员统计)")
     public R<MgtTotalMemberTotalVo> getTotalMemberTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBaseShopDto.setUserId(userId);
         MgtTotalMemberTotalVo totalMemberTotalVo = memberService.getTotalMemberTotal(mgtBaseShopDto);
         return R.ok(totalMemberTotalVo);
     }
@@ -45,7 +44,6 @@
     @ApiOperation(value = "获取平台会员人数统计(统计-会员统计)")
     public R<MgtPlTotalMemberTotalVo> getPlTotalMemberTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
         MgtPlTotalMemberTotalVo plTotalMemberTotal = memberService.getPlTotalMemberTotal(mgtBasePlatformDto);
         return R.ok(plTotalMemberTotal);
     }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
index 802ae68..0fbedd3 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -42,7 +42,7 @@
     public R<MgtTotalOrderTotalVo> getTotalOrderTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
 
         Long userId = SecurityUtils.getUserId();
-        mgtBaseShopDto.setUserId(userId);
+        
         MgtTotalOrderTotalVo totalOrderTotalVo = orderService.getTotalOrderTotal(mgtBaseShopDto);
         return R.ok(totalOrderTotalVo);
     }
@@ -51,8 +51,17 @@
     @ApiOperation(value = "获取商户活动统计(商户管理-统计经营-活动统计)")
     public R<MgtTotalActivityTotalVo> getTotalActivityTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBaseShopDto.setUserId(userId);
+        
         MgtTotalActivityTotalVo totalActivityTotal = orderService.getTotalActivityTotal(mgtBaseShopDto);
+        return R.ok(totalActivityTotal);
+    }
+
+    @RequestMapping(value = "/getTotalActivityJoinMemberTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "获取商户活动统计(商户管理-统计经营-活动统计-参与人数)")
+    public R<MgtTotalActivityTotalVo> getTotalActivityJoinMemberTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
+        Long userId = SecurityUtils.getUserId();
+        
+        MgtTotalActivityTotalVo totalActivityTotal = orderService.getTotalActivityJoinMemberTotal(mgtBaseShopDto);
         return R.ok(totalActivityTotal);
     }
 
@@ -69,7 +78,6 @@
     @ApiOperation(value = "获取商户数据统计(商户管理-统计经营-数据统计)")
     public R<MgtTotalDataTotalVo> getTotalDataTotal(@RequestBody MgtBaseShopDto mgtBaseShopDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBaseShopDto.setUserId(userId);
         MgtTotalDataTotalVo totalDataTotalVo = orderService.getTotalDataTotal(mgtBaseShopDto);
         return R.ok(totalDataTotalVo);
     }
@@ -78,7 +86,6 @@
     @ApiOperation(value = "获取平台商户数据统计(统计-店铺数据统计)")
     public R<List<MgtTotalDataTotalVo>> getPlTotalDataTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
         List<MgtTotalDataTotalVo> totalDataTotalVoList = orderService.getPlTotalDataTotal(mgtBasePlatformDto);
         return R.ok(totalDataTotalVoList);
     }
@@ -87,7 +94,7 @@
     @ApiOperation(value = "导出平台商户数据统计(统计-店铺数据统计)")
     public void exportPlTotalDataTotal(MgtBasePlatformDto mgtBasePlatformDto, HttpServletResponse response) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
+        
         List<MgtTotalDataTotalVo> totalDataTotalVoList = orderService.getPlTotalDataTotal(mgtBasePlatformDto);
         ExcelUtil<MgtTotalDataTotalVo> util = new ExcelUtil<MgtTotalDataTotalVo>(MgtTotalDataTotalVo.class);
         util.exportExcel(response, totalDataTotalVoList, "店铺数据统计列表");
@@ -97,7 +104,7 @@
     @ApiOperation(value = "获取平台商户订单统计(统计-经营统计)")
     public R<MgtTotalOrderTotalVo> getPlTotalOrderTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
+        
         MgtTotalOrderTotalVo totalOrderTotalVo = orderService.getPlTotalOrderTotal(mgtBasePlatformDto);
         return R.ok(totalOrderTotalVo);
     }
@@ -106,11 +113,29 @@
     @ApiOperation(value = "获取平台商户活动统计(统计-活动统计)")
     public R<MgtPlTotalActivityTotalVo> getPlTotalActivityTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
+        
         MgtPlTotalActivityTotalVo totalActivityTotal = orderService.getPlTotalActivityTotal(mgtBasePlatformDto);
         return R.ok(totalActivityTotal);
     }
 
+    @RequestMapping(value = "/getPlTotalActivityJoinMemberTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "获取平台商户活动统计(统计-活动统计-参与人数)")
+    public R<MgtPlTotalActivityTotalVo> getPlTotalActivityJoinMemberTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
+        Long userId = SecurityUtils.getUserId();
+        
+        MgtPlTotalActivityTotalVo totalActivityTotal = orderService.getPlTotalActivityJoinMemberTotal(mgtBasePlatformDto);
+        return R.ok(totalActivityTotal);
+    }
+
+    @RequestMapping(value = "/getPlTotalActivityGetMemberTotal", method = RequestMethod.POST)
+    @ApiOperation(value = "获取平台商户活动统计(统计-活动统计-获客人数)")
+    public R<MgtPlTotalActivityTotalVo> getPlTotalActivityGetMemberTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
+        Long userId = SecurityUtils.getUserId();
+        
+        MgtPlTotalActivityTotalVo totalActivityTotal = orderService.getPlTotalActivityGetMemberTotal(mgtBasePlatformDto);
+        return R.ok(totalActivityTotal);
+    }
+
     /*@RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST)
     @ApiOperation(value = "获取平台商户活动年龄分布")
     public R<MgtPlTotalActivityTotalVo> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) {
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
index 9554c09..692067d 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -184,8 +184,7 @@
     @ApiOperation(value = "支付订单")
     public R<AppPlaceOrderVo> payOrder(@RequestBody AppBaseGetDto appBaseGetDto) {
         Long userId = SecurityUtils.getUserId();
-        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
-
+        AppPlaceOrderVo appPlaceOrderVo = orderService.payOrder(appBaseGetDto.getId());
         return R.ok(appPlaceOrderVo);
     }
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java
index 7a60bf4..d0318a9 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/account/OrderPaymentService.java
@@ -37,6 +37,7 @@
      */
     OrderPayment getByOrderId(String orderId);
 
+    OrderPayment getByUnpaidOrderId(String orderId);
     /**
      *
      * @param outTradeNo
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java
index 589996f..8625cba 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/account/OrderPaymentServiceImpl.java
@@ -58,6 +58,16 @@
     }
 
     @Override
+    public OrderPayment getByUnpaidOrderId(String orderId) {
+        LambdaQueryWrapper<OrderPayment> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(OrderPayment::getOrderId, orderId)
+                .eq(OrderPayment::getDelFlag, 0)
+                .eq(OrderPayment::getPayStatus, 1)
+                .last(" limit 1 ");
+        return this.getOne(queryWrapper);
+    }
+
+    @Override
     public void updatePaySuccess(String outTradeNo, String transactionId) {
         LambdaUpdateWrapper<OrderPayment> updateWrapper = Wrappers.lambdaUpdate();
         updateWrapper.eq(OrderPayment::getOutTradeNo, outTradeNo)
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 27c19ec..7562c5b 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
@@ -784,7 +784,7 @@
                     orderId, order.getPayMoney(), appPlaceOrderDto.getOpenid(),
                     appPlaceOrderDto.getSpbillCreateIp(), goodsNameList,1);
             //生成自动取消订单延时任务
-            String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign();
+            String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign();
             redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, payStr , delayTime.longValue(), TimeUnit.MINUTES);
             DelayTask delayTask = new DelayTask();
             delayTask.setDelFlag(0);
@@ -1180,11 +1180,11 @@
             }
             appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
             // 小程序微信下单支付
-            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), orderNo,
+            createWxPayInfo(appPlaceOrderVo, userId, order.getShopId(), orderGoods.getGoodsName(), outTradeNo,
                     orderId, order.getPayMoney(), appPlaceActivityDto.getOpenid(),
                     appPlaceActivityDto.getSpbillCreateIp(), goodsNameList,2);
             //生成自动取消订单延时任务
-            String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign();
+            String payStr = appPlaceOrderVo.getAppId()+"-"+appPlaceOrderVo.getTimeStamp()+"-"+appPlaceOrderVo.getNonceStr()+"-"+appPlaceOrderVo.getPackageStr()+"-"+appPlaceOrderVo.getSignType()+"-"+appPlaceOrderVo.getPaySign();
             redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId, payStr , delayTime.longValue(), TimeUnit.MINUTES);
             DelayTask delayTask = new DelayTask();
             delayTask.setDelFlag(0);
@@ -1333,7 +1333,7 @@
         if(order.getOrderStatus()!=1){
             throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER);
         }
-        String payStr = redisService.getCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+orderId);
+        String payStr = redisService.getCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+ "-"+orderId);
         if(StringUtils.isBlank(payStr)){
             throw new ServiceException(AppErrorConstant.CANCEL_CANCEL_ORDER);
         }
@@ -1342,7 +1342,7 @@
             delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
         }
         AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
-        OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId);
+        OrderPayment orderPayment = orderPaymentService.getByUnpaidOrderId(orderId);
         String[] payArr = payStr.split("-");
         appPlaceOrderVo.setOrderId(order.getOrderId());
         appPlaceOrderVo.setOrderNo(order.getOrderNo());
@@ -1703,7 +1703,7 @@
         } catch (WxPayException e) {
             resultMessage = String.format("订单分账:%s 分账失败:%s", orderNo, e.getMessage());
             log.info(resultMessage);
-            e.printStackTrace();
+            throw new ServiceException(resultMessage);
         }
 
         // 保存分账信息
@@ -2813,34 +2813,83 @@
         List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
         List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>();
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
+            MgtMapIntTotalVo mgtMapIntTotalVo;
             MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Boolean noCycle = true;
+            Boolean noService = true;
+            Boolean noExperience = true;
+            Boolean noGoods = true;
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
                     mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noCycle= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
                     mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noService= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
                     mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noExperience = false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    noGoods = false;
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
+                //补充缺少类型
+                if(noCycle){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("周期");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noService){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("服务");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noExperience){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("体验");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noGoods){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("单品");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
                 goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -2861,8 +2910,8 @@
         //订单分布
         //日期全部时固定为5天
         if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){
-            mgtBaseShopDto.setStartDate(DateUtils.getDate());
-            mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+            mgtBaseShopDto.setEndDate(DateUtils.getDate());
+            mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
         }
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalOrderTotal(mgtBaseShopDto);
         if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
@@ -2942,34 +2991,83 @@
             totalActivityTotalVo.setExperienceTotal(0);
             totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO);
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
-            MgtMapIntTotalVo MgtMapIntTotalVo;
+            MgtMapIntTotalVo mgtMapIntTotalVo;
             MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Boolean noCycle = true;
+            Boolean noService = true;
+            Boolean noExperience = true;
+            Boolean noGoods = true;
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
                     totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noCycle= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
                     totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noService= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
                     totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noExperience = false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    noGoods = false;
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            //补充缺少类型
+            if(noCycle){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("周期");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("周期");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noService){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("服务");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("服务");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noExperience){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("体验");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("体验");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noGoods){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("单品");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("单品");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
                 goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -2979,8 +3077,8 @@
         //获取订单分布
         //日期全部时固定为5天
         if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){
-            mgtBaseShopDto.setStartDate(DateUtils.getDate());
-            mgtBaseShopDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+            mgtBaseShopDto.setEndDate(DateUtils.getDate());
+            mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
         }
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto);
         if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
@@ -2995,6 +3093,46 @@
             totalActivityTotalVo.setOrderTotalKey(orderTotalKey);
             totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
             totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
+        }
+        //参与人数
+        List<MgtMapIntTotalVo> joinList = orderMapper.getActivityMemberTotal(mgtBaseShopDto);
+        // 将查询结果转为Map
+        Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>();
+        if (joinList != null && !joinList.isEmpty()) {
+            mgtMapIntTotalVoMap = joinList.stream()
+                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        }
+        // 获取日期范围
+        List<String> dateList = getDateRange(mgtBaseShopDto.getStartDate(), mgtBaseShopDto.getEndDate());
+        int size = dateList.size();
+        // 创建日期和成员总数的数组
+        String[] joinMemberTotalKey = new String[size];
+        Integer[] joinMemberTotalValue = new Integer[size];
+        // 遍历日期列表,设置日期和成员总数的数组
+        String str;
+        Integer value;
+        for (int i = 0; i < size; i++) {
+            str = dateList.get(i);
+            joinMemberTotalKey[i] = str;
+            value = mgtMapIntTotalVoMap.get(str);
+            joinMemberTotalValue[i] = (value != null) ? value : 0;
+        }
+        totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey);
+        totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue);
+        return totalActivityTotalVo;
+    }
+
+    @Override
+    public MgtTotalActivityTotalVo getTotalActivityJoinMemberTotal(MgtBaseShopDto mgtBaseShopDto) {
+        MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo();
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBaseShopDto.getStartDate())){
+            mgtBaseShopDto.setEndDate(DateUtils.getDate());
+            mgtBaseShopDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
+        if(mgtBaseShopDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBaseShopDto.getAgeType()).getData();
+            mgtBaseShopDto.setUserIdList(userIdList);
         }
         //参与人数
         List<MgtMapIntTotalVo> joinList = orderMapper.getActivityMemberTotal(mgtBaseShopDto);
@@ -3129,10 +3267,28 @@
                 mgtBasePlatformDto.setUserIdList(userIdList);
             }
         }
-        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
+        List<Long> shopIdList = new ArrayList<>();
+        if(mgtBasePlatformDto.getShopId()!=null){
+            shopIdList.add(mgtBasePlatformDto.getShopId());
+        }else{
+            shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
+        }
         List<MgtTotalDataTotalVo> mgtTotalDataTotalVoList = new ArrayList<>();
         MgtBaseShopDto mgtBaseShopDto;
         MgtTotalDataTotalVo mgtTotalDataTotalVo;
+        MgtSimpleShopVo simpleShopVo;
+        HashSet<String> set = new HashSet<>();
+        // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
+        for (Long entity : shopIdList) {
+            set.add(entity.toString());
+        }
+        String joinedString = String.join(",", set);
+        MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
+        mgtBaseBathDto.setIds(joinedString);
+        List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
+        // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo
+        Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
+                .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
         if (shopIdList != null && !shopIdList.isEmpty()) {
             for (Long shopId : shopIdList) {
                 mgtBaseShopDto = new MgtBaseShopDto();
@@ -3140,8 +3296,10 @@
                 mgtBaseShopDto.setEndDate(mgtBasePlatformDto.getEndDate());
                 mgtBaseShopDto.setShopId(shopId);
                 mgtTotalDataTotalVo = this.getTotalDataTotal(mgtBaseShopDto);
-                Shop shop = remoteShopService.getShop(shopId).getData();
-                mgtTotalDataTotalVo.setShopName(shop.getShopName());
+                simpleShopVo = shopMap.get(shopId);
+                if (simpleShopVo!=null) {
+                    mgtTotalDataTotalVo.setShopName(simpleShopVo.getShopName());
+                }
                 mgtTotalDataTotalVoList.add(mgtTotalDataTotalVo);
             }
         }
@@ -3191,34 +3349,83 @@
         mgtTotalOrderTotalVo.setExperienceTotal(0);
         mgtTotalOrderTotalVo.setExperienceMoney(BigDecimal.ZERO);
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
+            MgtMapIntTotalVo mgtMapIntTotalVo;
             MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Boolean noCycle = true;
+            Boolean noService = true;
+            Boolean noExperience = true;
+            Boolean noGoods = true;
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
                     mgtTotalOrderTotalVo.setCycleTotal(mgtTotalOrderTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setCycleMoney(mgtTotalOrderTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noCycle= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
                     mgtTotalOrderTotalVo.setServiceTotal(mgtTotalOrderTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setServiceMoney(mgtTotalOrderTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noService= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
                     mgtTotalOrderTotalVo.setExperienceTotal(mgtTotalOrderTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     mgtTotalOrderTotalVo.setExperienceMoney(mgtTotalOrderTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noExperience = false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    noGoods = false;
                 }
-                goodsTypeTotalList.add(MgtMapIntTotalVo);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            //补充缺少类型
+            if(noCycle){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("周期");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("周期");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noService){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("服务");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("服务");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noExperience){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("体验");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("体验");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noGoods){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("单品");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("单品");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
                 goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -3239,8 +3446,8 @@
         //订单分布
         //日期全部时固定为5天
         if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
-            mgtBasePlatformDto.setStartDate(DateUtils.getDate());
-            mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
+            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
         }
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto);
         if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
@@ -3273,7 +3480,7 @@
             return new MgtPlTotalActivityTotalVo();
         }
         //获取需要关联的用户id集合
-        if (mgtBasePlatformDto.getDeptId() != null) {
+        /*if (mgtBasePlatformDto.getDeptId() != null) {
             List<Long> userIdList = new ArrayList<>();
             if (mgtBasePlatformDto.getUserId() != null) {
                 userIdList.add(mgtBasePlatformDto.getUserId());
@@ -3286,7 +3493,7 @@
             if (!userIdList.isEmpty()) {
                 mgtBasePlatformDto.setUserIdList(userIdList);
             }
-        }
+        }*/
         List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
         mgtBasePlatformDto.setShopIdList(shopIdList);
         //获取基础统计
@@ -3308,41 +3515,90 @@
         totalActivityTotalVo.setExperienceTotal(0);
         totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO);
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
-            MgtMapIntTotalVo MgtMapIntTotalVo;
+            MgtMapIntTotalVo mgtMapIntTotalVo;
             MgtMapBigTotalVo mgtMapBigTotalVo;
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Boolean noCycle = true;
+            Boolean noService = true;
+            Boolean noExperience = true;
+            Boolean noGoods = true;
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
-                MgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
-                MgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
+                mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
-                    MgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
                     totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noCycle= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
-                    MgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
                     totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noService= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
-                    MgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
                     totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                     totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond()));
+                    noExperience = false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
-                    MgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    noGoods = false;
                 }
+            }
+            //补充缺少类型
+            if(noCycle){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("周期");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("周期");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noService){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("服务");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("服务");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noExperience){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("体验");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("体验");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noGoods){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("单品");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("单品");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
             totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
         }
         //日期全部时固定为5天
         if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
-            mgtBasePlatformDto.setStartDate(DateUtils.getDate());
-            mgtBasePlatformDto.setEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
+            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
         }
         //获取订单分布
         List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalActivityTotal(mgtBasePlatformDto);
@@ -3446,14 +3702,137 @@
         // 遍历日期列表,设置日期和成员总数的数组
         for (int i = 0; i < size; i++) {
             str = dateList.get(i);
-            joinMemberTotalKey[i] = str;
+            getMemberTotalKey[i] = str;
             value = getMemberMap.get(str);
-            joinMemberTotalValue[i] = (value != null) ? value : 0;
+            getMemberTotalValue[i] = (value != null) ? value : 0;
         }
         totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey);
         totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);
         return totalActivityTotalVo;
     }
+
+
+    @Override
+    public MgtPlTotalActivityTotalVo getPlTotalActivityJoinMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) {
+        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom() == 2){
+            return new MgtPlTotalActivityTotalVo();
+        }
+        //获取需要关联的用户id集合
+        /*if (mgtBasePlatformDto.getDeptId() != null) {
+            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();
+            }
+            if (!userIdList.isEmpty()) {
+                mgtBasePlatformDto.setUserIdList(userIdList);
+            }
+        }*/
+        if(mgtBasePlatformDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
+            mgtBasePlatformDto.setUserIdList(userIdList);
+        }
+        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
+        mgtBasePlatformDto.setShopIdList(shopIdList);
+        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
+            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
+            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
+        //参与人数
+        List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto);
+        // 将查询结果转为Map
+        Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>();
+        if (joinList != null && !joinList.isEmpty()) {
+            mgtMapIntTotalVoMap = joinList.stream()
+                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        }
+        // 获取日期范围
+        List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate());
+        int size = dateList.size();
+        // 创建日期和成员总数的数组
+        String[] joinMemberTotalKey = new String[size];
+        Integer[] joinMemberTotalValue = new Integer[size];
+        // 遍历日期列表,设置日期和成员总数的数组
+        String str;
+        Integer value;
+        for (int i = 0; i < size; i++) {
+            str = dateList.get(i);
+            joinMemberTotalKey[i] = str;
+            value = mgtMapIntTotalVoMap.get(str);
+            joinMemberTotalValue[i] = (value != null) ? value : 0;
+        }
+        totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey);
+        totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue);
+        return totalActivityTotalVo;
+    }
+
+    @Override
+    public MgtPlTotalActivityTotalVo getPlTotalActivityGetMemberTotal(MgtBasePlatformDto mgtBasePlatformDto) {
+        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom() == 2){
+            return new MgtPlTotalActivityTotalVo();
+        }
+        //获取需要关联的用户id集合
+        /*if (mgtBasePlatformDto.getDeptId() != null) {
+            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();
+            }
+            if (!userIdList.isEmpty()) {
+                mgtBasePlatformDto.setUserIdList(userIdList);
+            }
+        }*/
+        if(mgtBasePlatformDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
+            mgtBasePlatformDto.setUserIdList(userIdList);
+        }
+        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
+        mgtBasePlatformDto.setShopIdList(shopIdList);
+        MgtPlTotalActivityTotalVo totalActivityTotalVo = new MgtPlTotalActivityTotalVo();
+        //日期全部时固定为5天
+        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
+            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
+            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
+        }
+        //获客人数
+        List<MgtMapIntTotalVo> getList = orderMapper.getMgtActivityGetMemberTotal(mgtBasePlatformDto);
+        // 将查询结果转为Map
+        Map<String, Integer> getMemberMap = new HashMap<>();
+        if (getList != null && !getList.isEmpty()) {
+            getMemberMap = getList.stream()
+                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
+        }
+        // 获取日期范围
+        List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate());
+        int size = dateList.size();
+        // 创建日期和成员总数的数组
+        String[] getMemberTotalKey = new String[size];
+        Integer[] getMemberTotalValue = new Integer[size];
+        // 遍历日期列表,设置日期和成员总数的数组
+        String str;
+        Integer value;
+        // 遍历日期列表,设置日期和成员总数的数组
+        for (int i = 0; i < size; i++) {
+            str = dateList.get(i);
+            getMemberTotalKey[i] = str;
+            value = getMemberMap.get(str);
+            getMemberTotalValue[i] = (value != null) ? value : 0;
+        }
+        totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey);
+        totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);
+        return totalActivityTotalVo;
+    }
+
 
     /**
      * @param mgtPlActivityAgeDto
@@ -3823,6 +4202,10 @@
                 bigTotal = hundredBig;
             }
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Boolean noCycle = true;
+            Boolean noService = true;
+            Boolean noExperience = true;
+            Boolean noGoods = true;
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
                 mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
@@ -3833,17 +4216,62 @@
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
                     mgtMapIntTotalVo.setMapKey("周期");
                     mgtMapBigTotalVo.setMapKey("周期");
+                    noCycle= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
                     mgtMapIntTotalVo.setMapKey("服务");
                     mgtMapBigTotalVo.setMapKey("服务");
+                    noService= false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
                     mgtMapIntTotalVo.setMapKey("体验");
                     mgtMapBigTotalVo.setMapKey("体验");
+                    noExperience = false;
                 } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                     mgtMapIntTotalVo.setMapKey("单品");
                     mgtMapBigTotalVo.setMapKey("单品");
+                    noGoods = false;
                 }
                 goodsTypeTotalList.add(mgtMapIntTotalVo);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            //补充缺少类型
+            if(noCycle){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("周期");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("周期");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noService){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("服务");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("服务");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noExperience){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("体验");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("体验");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                goodsTypeMoneyList.add(mgtMapBigTotalVo);
+            }
+            if(noGoods){
+                mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                mgtMapIntTotalVo.setMapKey("单品");
+                mgtMapIntTotalVo.setMapValue(0);
+                goodsTypeTotalList.add(mgtMapIntTotalVo);
+                mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                mgtMapBigTotalVo.setMapKey("单品");
+                mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
                 goodsTypeMoneyList.add(mgtMapBigTotalVo);
             }
             orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
@@ -4063,7 +4491,7 @@
     @Override
     @Transactional
     public void payBack(PartnerTransactionsResult transaction) {
-
+        log.info("订单支付回调---"+transaction.toString());
         // Order order = this.getById(orderId);
         // 更新订单状态 outTradeNo
         String outTradeNo = transaction.getOutTradeNo();
@@ -4558,6 +4986,15 @@
         return orderDistributionTotalVo;
     }
 
+    /**
+     * @description  补时间
+     * @author  jqs
+     * @date    2023/8/28 15:03
+     * @param orderTotalKey
+     * @param orderTotalValue
+     * @param orderMoneyValue
+     * @return  MerOrderDistributionTotalVo
+     */
     public MerOrderDistributionTotalVo fillOrderTotalKeyAndValuesToRecentFiveDays(String[] orderTotalKey,Integer[] orderTotalValue,BigDecimal[] orderMoneyValue) {
         MerOrderDistributionTotalVo orderDistributionTotalVo = new MerOrderDistributionTotalVo();
         // 获取当前日期
@@ -4599,6 +5036,7 @@
         orderDistributionTotalVo.setOrderMoneyValue(orderMoneyValue);
         return orderDistributionTotalVo;
     }
+
 
     private int getIndexInOrderTotalKey(String day,String[] orderTotalKey) {
         for (int i = 0; i < orderTotalKey.length; i++) {
@@ -4643,6 +5081,10 @@
                     bigTotal = hundredBig;
                 }
                 // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+                Boolean noCycle = true;
+                Boolean noService = true;
+                Boolean noExperience = true;
+                Boolean noGoods = true;
                 for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
                     mgtMapIntTotalVo = new MgtMapIntTotalVo();
                     mgtMapBigTotalVo = new MgtMapBigTotalVo();
@@ -4653,19 +5095,64 @@
                     if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
                         mgtMapIntTotalVo.setMapKey("周期");
                         mgtMapBigTotalVo.setMapKey("周期");
+                        noCycle= false;
                     } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("2")) {
                         mgtMapIntTotalVo.setMapKey("服务");
                         mgtMapBigTotalVo.setMapKey("服务");
+                        noService= false;
                     } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("3")) {
                         mgtMapIntTotalVo.setMapKey("体验");
                         mgtMapBigTotalVo.setMapKey("体验");
+                        noExperience = false;
                     } else if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("4")) {
                         mgtMapIntTotalVo.setMapKey("单品");
                         mgtMapBigTotalVo.setMapKey("单品");
+                        noGoods = false;
                     }
                     goodsTypeTotalList.add(mgtMapIntTotalVo);
                     goodsTypeMoneyList.add(mgtMapBigTotalVo);
                 }
+                //补充缺少类型
+                if(noCycle){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("周期");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("周期");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noService){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("服务");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("服务");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noExperience){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("体验");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("体验");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
+                if(noGoods){
+                    mgtMapIntTotalVo = new MgtMapIntTotalVo();
+                    mgtMapIntTotalVo.setMapKey("单品");
+                    mgtMapIntTotalVo.setMapValue(0);
+                    goodsTypeTotalList.add(mgtMapIntTotalVo);
+                    mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                    mgtMapBigTotalVo.setMapKey("单品");
+                    mgtMapBigTotalVo.setMapValue(BigDecimal.ZERO);
+                    goodsTypeMoneyList.add(mgtMapBigTotalVo);
+                }
                 orderTypeTotalVo.setGoodsTypeTotalList(goodsTypeTotalList);
                 orderTypeTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList);
             }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
index fec45aa..ffc2bfb 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -254,6 +254,8 @@
      */
     MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto);
 
+    MgtTotalActivityTotalVo getTotalActivityJoinMemberTotal(MgtBaseShopDto mgtBaseShopDto);
+
     /**
      * @description 获取商户活动年龄分布
      * @author  jqs
@@ -308,6 +310,10 @@
      */
     MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto);
 
+    MgtPlTotalActivityTotalVo getPlTotalActivityJoinMemberTotal(MgtBasePlatformDto mgtBasePlatformDto);
+
+    MgtPlTotalActivityTotalVo getPlTotalActivityGetMemberTotal(MgtBasePlatformDto mgtBasePlatformDto);
+
     /**
      * @description 获取商户活动年龄分布
      * @author  jqs
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 86bd659..5c3cbc5 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -922,7 +922,7 @@
         COUNT(DISTINCT toc.user_id) AS mapValueThird
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0 AND order_from = 2
+        WHERE toc.del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
         </if>
@@ -1978,6 +1978,12 @@
         <if test="param.shopId != null and param.shopId != ''">
             AND toc.shop_id = #{param.shopId}
         </if>
+        <if test="param.userIdList !=null and param.userIdList.size()>0">
+            AND toc.user_id IN
+            <foreach collection="param.userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="param.startDate!=null and param.startDate!=''">
             AND Date(toc.create_time) &gt;= #{param.startDate}
         </if>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
index e612dc5..8232e62 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTotalController.java
@@ -34,7 +34,6 @@
     @ApiOperation(value = "获取平台商户统计(统计-合作商统计)")
     public R<MgtPlTotalShopTotalVo> getPlTotalShopTotal(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
         Long userId = SecurityUtils.getUserId();
-        mgtBasePlatformDto.setUserId(userId);
         MgtPlTotalShopTotalVo totalShopTotalVo = shopService.getPlTotalShopTotal(mgtBasePlatformDto);
         return R.ok(totalShopTotalVo);
     }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
index 796d85f..a391545 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
@@ -34,6 +34,7 @@
         shared-configs:
           - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
 
+
 wx:
   pay:
     appId: wxb7f0ea286fc4e535
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 82a2e80..6c28571 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
@@ -627,6 +627,9 @@
         ts.shop_id
         FROM t_shop ts
         WHERE ts.del_flag = 0
+        <if test="param.userId!=null and param.userId!=''">
+            AND ts.belong_user_id = #{param.userId}
+        </if>
         <if test="param.userIdList!=null and param.userIdList.size()>0">
             AND ts.belong_user_id IN
             <foreach collection="param.userIdList" item="item" open="(" separator="," close=")">
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtSysStaffImportDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtSysStaffImportDto.java
index 52bfa3e..9580989 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtSysStaffImportDto.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtSysStaffImportDto.java
@@ -39,4 +39,13 @@
 
     @Excel(name = "个人邮箱")
     private String email;
+
+    @Excel(name = "地址")
+    private String address;
+
+    @Excel(name = "视频号")
+    private String videoNumber;
+
+    @Excel(name = "禁用状态")
+    private String userStatus;
 }
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 16ea7c2..4a82092 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
@@ -322,60 +322,67 @@
                 .collect(Collectors.toMap(DeptSimpleVo::getDeptName, Function.identity()));
         for (MgtSysStaffImportDto entity : staffImportDtoList) {
             try {
-                department = entity.getDepartment();
-                lastIndex = department.indexOf(";");
-                department = (lastIndex != -1) ? department.substring(0, lastIndex) : department;
-                firstIndex = department.lastIndexOf("/");
-                secondIndex = department.lastIndexOf('/', firstIndex - 1);
-                thirdIndex = department.lastIndexOf('/', secondIndex - 1);
-                departmentFirst = department.substring(firstIndex + 1);
-                deptSimpleVo = deptMap.get(departmentFirst);
-                if(deptSimpleVo==null){
-                    departmentSecond = department.substring(secondIndex + 1, firstIndex);
-                    deptSimpleVo = deptMap.get(departmentSecond);
-                }
-                if(deptSimpleVo==null){
-                    departmentThird = department.substring(thirdIndex + 1, secondIndex);
-                    deptSimpleVo = deptMap.get(departmentThird);
-                }
-                if(deptSimpleVo!=null&&StringUtils.isNotBlank(entity.getMobile())){
-                    LambdaQueryWrapper<SysStaff> queryWrapper = new LambdaQueryWrapper();
-                    queryWrapper.eq(SysStaff::getDelFlag,0);
-                    queryWrapper.eq(SysStaff::getStaffMobile,entity.getMobile());
-                    SysStaff sysStaffSame = this.getOne(queryWrapper, false);
-                    if(sysStaffSame!=null){
-                        sysStaffSame.setStaffName(entity.getStaffName());
-                        sysStaffSame.setStaffPost(entity.getPost());
-                        sysStaffSame.setWxUserId(entity.getUserName());
-                        if(StringUtils.isNotBlank(entity.getEmail())){
-                            sysStaffSame.setStaffEmail(entity.getEmail());
-                        }
-                        this.saveOrUpdate(sysStaffSame);
-                        sysUser = sysUserService.selectUserById(sysStaffSame.getUserId());
-                        sysUser.setDeptId(deptSimpleVo.getDeptId());
-                        sysUser.setNickName(entity.getStaffName());
-                        if(entity.getGender().equals("男")){
-                            sysUser.setSex("0");
-                        }else if(entity.getGender().equals("女")){
-                            sysUser.setSex("1");
+                if(StringUtils.isNotBlank(entity.getMobile())){
+                    if(StringUtils.isNotBlank(entity.getUserStatus())&&entity.getUserStatus().equals("禁用")){
+                        continue;
+                    }
+                    department = entity.getDepartment();
+                    lastIndex = department.indexOf(";");
+                    department = (lastIndex != -1) ? department.substring(0, lastIndex) : department;
+                    firstIndex = department.lastIndexOf("/");
+                    secondIndex = department.lastIndexOf('/', firstIndex - 1);
+                    thirdIndex = department.lastIndexOf('/', secondIndex - 1);
+                    departmentFirst = department.substring(firstIndex + 1);
+                    deptSimpleVo = deptMap.get(departmentFirst);
+                    if(deptSimpleVo==null){
+                        departmentSecond = department.substring(secondIndex + 1, firstIndex);
+                        deptSimpleVo = deptMap.get(departmentSecond);
+                    }
+                    if(deptSimpleVo==null){
+                        departmentThird = department.substring(thirdIndex + 1, secondIndex);
+                        deptSimpleVo = deptMap.get(departmentThird);
+                    }
+                    if(deptSimpleVo!=null&&StringUtils.isNotBlank(entity.getMobile())){
+                        LambdaQueryWrapper<SysStaff> queryWrapper = new LambdaQueryWrapper();
+                        queryWrapper.eq(SysStaff::getDelFlag,0);
+                        queryWrapper.eq(SysStaff::getStaffMobile,entity.getMobile());
+                        SysStaff sysStaffSame = this.getOne(queryWrapper, false);
+                        if(sysStaffSame!=null){
+                            sysStaffSame.setStaffName(entity.getStaffName());
+                            sysStaffSame.setStaffPost(entity.getPost());
+                            sysStaffSame.setWxUserId(entity.getUserName());
+                            if(StringUtils.isNotBlank(entity.getEmail())){
+                                sysStaffSame.setStaffEmail(entity.getEmail());
+                            }
+                            this.saveOrUpdate(sysStaffSame);
+                            sysUser = sysUserService.selectUserById(sysStaffSame.getUserId());
+                            sysUser.setDeptId(deptSimpleVo.getDeptId());
+                            sysUser.setNickName(entity.getStaffName());
+                            if(entity.getGender().equals("男")){
+                                sysUser.setSex("0");
+                            }else if(entity.getGender().equals("女")){
+                                sysUser.setSex("1");
+                            }else{
+                                sysUser.setSex("2");
+                            }
+                            if(StringUtils.isNotBlank(entity.getEmail())){
+                                sysUser.setEmail(entity.getEmail());
+                            }
+                            sysUserService.updateOnlyUser(sysUser);
+                            successNum = successNum + 1;
                         }else{
-                            sysUser.setSex("2");
+                            MgtStaffEditDto mgtStaffEditDto = new MgtStaffEditDto();
+                            mgtStaffEditDto.setDeptId(deptSimpleVo.getDeptId());
+                            mgtStaffEditDto.setStaffName(entity.getStaffName());
+                            mgtStaffEditDto.setStaffMobile(entity.getMobile());
+                            mgtStaffEditDto.setStaffEmail(entity.getEmail());
+                            mgtStaffEditDto.setStaffPost(entity.getPost());
+                            mgtStaffEditDto.setStaffAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/2023/8/26/362e964917304255aaa36a874063d198.jpg");
+                            mgtStaffEditDto.setHeadFlag("0");
+                            mgtStaffEditDto.setWxUserId(entity.getUserName());
+                            this.mgtStaffEdit(mgtStaffEditDto);
+                            successNum = successNum + 1;
                         }
-                        if(StringUtils.isNotBlank(entity.getEmail())){
-                            sysUser.setEmail(entity.getEmail());
-                        }
-                        sysUserService.updateOnlyUser(sysUser);
-                    }else{
-                        MgtStaffEditDto mgtStaffEditDto = new MgtStaffEditDto();
-                        mgtStaffEditDto.setDeptId(deptSimpleVo.getDeptId());
-                        mgtStaffEditDto.setStaffName(entity.getStaffName());
-                        mgtStaffEditDto.setStaffMobile(entity.getMobile());
-                        mgtStaffEditDto.setStaffEmail(entity.getEmail());
-                        mgtStaffEditDto.setStaffPost(entity.getPost());
-                        mgtStaffEditDto.setStaffAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/2023/8/26/362e964917304255aaa36a874063d198.jpg");
-                        mgtStaffEditDto.setHeadFlag("0");
-                        mgtStaffEditDto.setWxUserId(entity.getUserName());
-                        this.mgtStaffEdit(mgtStaffEditDto);
                     }
                 }
                 /*tagName = entity.getTagName();
@@ -403,7 +410,7 @@
                 }*/
             } catch (Exception e) {
                 failureNum++;
-                String msg = "<br/>" + failureNum + "、标签 " + entity.getStaffName() + " 导入失败:";
+                String msg = "<br/>" + failureNum + "员工 " + entity.getStaffName() + " 导入失败:";
                 failureMsg.append(msg + e.getMessage());
                 log.error(msg, e);
             }
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
index fc7c6be..2a03699 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -42,7 +42,6 @@
       max-file-size: 100MB
       max-request-size: 200MB
       location: /home/temp
-
 wx:
   cp:
     corpId: ww11400938eb1b91bc
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml
index 355b4e4..4f11130 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml
@@ -245,7 +245,7 @@
 		LEFT JOIN sys_dept sd ON sd.dept_id = su.dept_id
 		WHERE su.del_flag = '0'
 		<if test="userIds != null and userIds != ''">
-			AND FIND_IN_SET(#{userIds}, su.user_id)
+			AND FIND_IN_SET(su.user_id,#{userIds})
 		</if>
 	</select>
 </mapper> 
\ No newline at end of file

--
Gitblit v1.7.1