From 83c1a766957e4c74ea6e81c6e9b18f1b692b1b7b Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期六, 26 八月 2023 17:50:40 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml                         |   20 +-
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                            |  155 ++++++++++++++++++++++---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java     |   23 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java       |   17 ++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java     |    3 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                |   24 ++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java              |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java     |   65 ++++++++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java         |    2 
 10 files changed, 273 insertions(+), 41 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java
index 79e0f6c..242f255 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBasePlatformDto.java
@@ -47,4 +47,7 @@
 
     @ApiModelProperty(value="活动id")
     private String activityId;
+
+    @ApiModelProperty(value = "年龄层 1 <20,2 21-30,3 31-40,4 41-50,5 >50")
+    private Integer ageType;
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
index e8413d9..3d76f5b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtBaseShopDto.java
@@ -16,4 +16,6 @@
     @ApiModelProperty(value = "商户id")
     private Long shopId;
 
+
+
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index f559ea3..1c29ef1 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1255,7 +1255,7 @@
             menPercent = new BigDecimal("100.00");
             womenPercent = new BigDecimal("0.00");
         }else{
-            menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP);
+            menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
             womenPercent = bigTen.subtract(menPercent);
         }
         mgtTotalMemberTotalVo.setManPercent(menPercent);
@@ -1398,7 +1398,7 @@
                 menPercent = new BigDecimal("100.00");
                 womenPercent = new BigDecimal("0.00");
             }else{
-                menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP);
+                menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
                 womenPercent = bigTen.subtract(menPercent);
             }
             plTotalMemberTotalVo.setManTotal(manTotal);
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
index f1f41a2..37174cf 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -404,8 +404,8 @@
         IFNULL(SUM(CASE WHEN gender = 0 THEN 1 ELSE 0 END),0) manTotal,
         IFNULL(SUM(CASE WHEN gender = 1 THEN 1 ELSE 0 END),0) womenTotal,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20 THEN 1 ELSE 0 END),0) AS tenAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END),0) AS twentyAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END),0) AS ThirtyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31 THEN 1 ELSE 0 END),0) AS twentyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 41 THEN 1 ELSE 0 END),0) AS ThirtyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END),0) AS fortyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) &gt;= 51 THEN 1 ELSE 0 END),0) AS fiftyAge
         FROM t_member WHERE del_flag = 0 AND binding_flag = 1
@@ -538,10 +538,10 @@
             AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20
         </if>
         <if test="param.ageType != null and param.ageType ==2">
-            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30
+            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31
         </if>
         <if test="param.ageType != null and param.ageType ==3">
-            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40
+            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 41
         </if>
         <if test="param.ageType != null and param.ageType ==4">
             AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50
@@ -570,8 +570,8 @@
         IFNULL(SUM(CASE WHEN gender = 0 THEN 1 ELSE 0 END),0) manTotal,
         IFNULL(SUM(CASE WHEN gender = 1 THEN 1 ELSE 0 END),0) womenTotal,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20 THEN 1 ELSE 0 END),0) AS tenAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END),0) AS twentyAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END),0) AS ThirtyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31 THEN 1 ELSE 0 END),0) AS twentyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 41 THEN 1 ELSE 0 END),0) AS ThirtyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END),0) AS fortyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) &gt;= 51 THEN 1 ELSE 0 END),0) AS fiftyAge
         FROM t_member WHERE del_flag = 0 AND binding_flag = 1
@@ -783,8 +783,8 @@
         IFNULL(SUM(CASE WHEN gender = 0 THEN 1 ELSE 0 END),0) manTotal,
         IFNULL(SUM(CASE WHEN gender = 1 THEN 1 ELSE 0 END),0) womenTotal,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) &lt;= 20 THEN 1 ELSE 0 END),0) AS tenAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30 THEN 1 ELSE 0 END),0) AS twentyAge,
-        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40 THEN 1 ELSE 0 END),0) AS ThirtyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31 THEN 1 ELSE 0 END),0) AS twentyAge,
+        IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 41 THEN 1 ELSE 0 END),0) AS ThirtyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50 THEN 1 ELSE 0 END),0) AS fortyAge,
         IFNULL(SUM(CASE WHEN TIMESTAMPDIFF(YEAR, birthday, CURDATE()) &gt;= 51 THEN 1 ELSE 0 END),0) AS fiftyAge
         FROM t_member WHERE del_flag = 0 AND binding_flag = 1
@@ -994,10 +994,10 @@
             AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 1 AND 20
         </if>
         <if test="param.ageType !=null and param.ageType == 2">
-            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 30
+            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 21 AND 31
         </if>
         <if test="param.ageType !=null and param.ageType == 3">
-            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 40
+            AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 31 AND 41
         </if>
         <if test="param.ageType !=null and param.ageType == 4">
             AND TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 41 AND 50
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
index ab03a67..ea0df7f 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
@@ -48,16 +48,19 @@
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal serviceMoney;
 
-    @ApiModelProperty(value = "总人数")
+    @ApiModelProperty(value = "总参与人数")
+    private Integer orderJoinPerson;
+
+    @ApiModelProperty(value = "总获客人数")
     private Integer orderPerson;
 
-    @ApiModelProperty(value = "周期人数")
+    @ApiModelProperty(value = "周期获客人数")
     private Integer cyclePerson;
 
-    @ApiModelProperty(value = "体验人数")
+    @ApiModelProperty(value = "体验获客人数")
     private Integer experiencePerson;
 
-    @ApiModelProperty(value = "服务人数")
+    @ApiModelProperty(value = "服务获客人数")
     private Integer servicePerson;
 
     @ApiModelProperty(value = "订单数量key")
@@ -91,4 +94,16 @@
     @ApiModelProperty(value = "活动年龄分布value")
     private Integer[] activityAgeValue;
 
+    @ApiModelProperty(value = "参与人数key")
+    private String[] joinMemberTotalKey;
+
+    @ApiModelProperty(value = "参与人数key")
+    private Integer[] joinMemberTotalValue;
+
+    @ApiModelProperty(value = "获客人数key")
+    private String[] getMemberTotalKey;
+
+    @ApiModelProperty(value = "获客人数key")
+    private Integer[] getMemberTotalValue;
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
index e4b99dc..f8c4813 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
@@ -48,16 +48,19 @@
     @JsonSerialize(using = ToStringSerializer.class)
     private BigDecimal serviceMoney;
 
-    @ApiModelProperty(value = "总人数")
+    @ApiModelProperty(value = "总参与人数")
+    private Integer orderJoinPerson;
+
+    @ApiModelProperty(value = "总获客人数")
     private Integer orderPerson;
 
-    @ApiModelProperty(value = "周期人数")
+    @ApiModelProperty(value = "周期获客人数")
     private Integer cyclePerson;
 
-    @ApiModelProperty(value = "体验人数")
+    @ApiModelProperty(value = "体验获客人数")
     private Integer experiencePerson;
 
-    @ApiModelProperty(value = "服务人数")
+    @ApiModelProperty(value = "服务获客人数")
     private Integer servicePerson;
 
     @ApiModelProperty(value = "订单数量key")
@@ -81,4 +84,10 @@
 
     @ApiModelProperty(value = "活动年龄分布value")
     private Integer[] activityAgeValue;
+
+    @ApiModelProperty(value = "参与人数key")
+    private String[] joinMemberTotalKey;
+
+    @ApiModelProperty(value = "参与人数key")
+    private Integer[] joinMemberTotalValue;
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
index df55dd7..0beef6a 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -374,6 +374,24 @@
      */
     MgtPlTotalActivityTotalVo getPlTotalActivityTotal(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
 
+    /**
+     * @description  活动获客人数
+     * @author  jqs
+     * @date    2023/8/26 16:07
+     * @param mgtBasePlatformDto
+     * @return  MgtPlTotalActivityTotalVo
+     */
+    MgtPlTotalActivityTotalVo getPlTotalActivityMemberTotal(@Param("param") MgtBasePlatformDto mgtBasePlatformDto);
+
+    /**
+     * @description  活动获客人数
+     * @author  jqs
+     * @date    2023/8/26 16:07
+     * @param mgtBaseShopDto
+     * @return  getTotalActivityMemberTotal
+     */
+    MgtTotalActivityTotalVo getTotalActivityMemberTotal(@Param("param") MgtBaseShopDto mgtBaseShopDto);
+
 
     /**
      * @description listTotalActivityTotalGoodsType
@@ -622,6 +640,9 @@
      */
     List<MgtMapIntTotalVo> getStaffActivityGetMemberTotal(@Param("param")StaffTotalDto staffTotalDto);
 
+
+    List<MgtMapIntTotalVo> getMgtActivityGetMemberTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
+
     /**
      * @description  员工端获取活动获客人数
      * @author  jqs
@@ -631,6 +652,9 @@
      */
     List<MgtMapIntTotalVo> getStaffActivityMemberTotal(@Param("param")StaffTotalDto staffTotalDto);
 
+
+    List<MgtMapIntTotalVo> getMgtActivityMemberTotal(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
+
     /**
      * @description  获取用户商品购买数量
      * @author  jqs
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 7b653eb..5d57e7f 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
@@ -2836,6 +2836,12 @@
     public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto) {
         //获取基础统计
         MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityTotal(mgtBaseShopDto);
+        //获客人数
+        MgtTotalActivityTotalVo totalActivityMemberTotalVo = orderMapper.getTotalActivityMemberTotal(mgtBaseShopDto);
+        totalActivityTotalVo.setOrderPerson(totalActivityMemberTotalVo.getOrderPerson());
+        totalActivityTotalVo.setCyclePerson(totalActivityMemberTotalVo.getCyclePerson());
+        totalActivityTotalVo.setServicePerson(totalActivityMemberTotalVo.getServicePerson());
+        totalActivityTotalVo.setExperiencePerson(totalActivityMemberTotalVo.getExperiencePerson());
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto);
         if (MgtMapIntTotalVoGoodsType != null && MgtMapIntTotalVoGoodsType.size() > 0) {
@@ -2896,6 +2902,8 @@
             totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
             totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
         }
+        //参与人数
+
         return totalActivityTotalVo;
     }
 
@@ -3152,6 +3160,12 @@
         mgtBasePlatformDto.setShopIdList(shopIdList);
         //获取基础统计
         MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
+        //获客人数
+        MgtPlTotalActivityTotalVo totalActivityMemberTotalVo = orderMapper.getPlTotalActivityMemberTotal(mgtBasePlatformDto);
+        totalActivityTotalVo.setOrderPerson(totalActivityMemberTotalVo.getOrderPerson());
+        totalActivityTotalVo.setCyclePerson(totalActivityMemberTotalVo.getCyclePerson());
+        totalActivityTotalVo.setServicePerson(totalActivityMemberTotalVo.getServicePerson());
+        totalActivityTotalVo.setExperiencePerson(totalActivityMemberTotalVo.getExperiencePerson());
         //获取商品分类销售数据
         List<MgtMapTotalPlusVo> MgtMapIntTotalVoGoodsType = orderMapper.listPlTotalActivityTotalGoodsType(mgtBasePlatformDto);
         List<MgtMapIntTotalVo> goodsTypeTotalList = new ArrayList<>();
@@ -3241,6 +3255,57 @@
             activitySalesRank = bigListRemoveNull(activitySalesRank);
             totalActivityTotalVo.setActivitySalesRankList(activitySalesRank);
         }
+        MerTotalDto merTotalDto = new MerTotalDto();
+        merTotalDto.setAgeType(mgtBasePlatformDto.getAgeType());
+        if(mgtBasePlatformDto.getAgeType()!=null){
+            List<Long> userIdList = remoteMemberService.listUserIdByAgeType(mgtBasePlatformDto.getAgeType()).getData();
+            mgtBasePlatformDto.setUserIdList(userIdList);
+        }
+        //参与人数
+        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);
+        //获客人数
+        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));
+        }
+        // 创建日期和成员总数的数组
+        String[] getMemberTotalKey = new String[size];
+        Integer[] getMemberTotalValue = new Integer[size];
+        // 遍历日期列表,设置日期和成员总数的数组
+        for (int i = 0; i < size; i++) {
+            str = dateList.get(i);
+            joinMemberTotalKey[i] = str;
+            value = getMemberMap.get(str);
+            joinMemberTotalValue[i] = (value != null) ? value : 0;
+        }
+        totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey);
+        totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);
         return totalActivityTotalVo;
     }
 
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 61df02b..2ba4f39 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
@@ -480,7 +480,6 @@
      */
     StaffActivityDateMemberTotalVo getStaffActivityMemberTotal(StaffTotalDto staffTotalDto);
 
-
     /**
      * @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 cde7600..8d82573 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
@@ -893,10 +893,10 @@
 
     <select id="getTotalActivityTotal" resultType="com.ruoyi.order.domain.vo.MgtTotalActivityTotalVo">
         SELECT
-        COUNT(order_id) orderTotal,
-        IFNULL(SUM(order_money),0) orderMoney,
-        COUNT(DISTINCT user_id) orderPerson
-        FROM t_order WHERE del_flag = 0 AND order_from = 2
+        COUNT(CASE WHEN order_status = 3 THEN order_id ELSE NULL END) orderTotal,
+        IFNULL(SUM(CASE WHEN order_status = 3 AND pay_type = 1 THEN change_receivable_money WHEN order_status = 3 AND pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) orderMoney,
+        COUNT(DISTINCT user_id) orderJoinPerson
+        FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
         <if test="param.shopId != null and param.shopId != ''">
             AND shop_id = #{param.shopId}
         </if>
@@ -913,9 +913,8 @@
         tog.goods_type mapKey,
         COUNT(DISTINCT toc.order_id) AS mapValueFirst,
         IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond,
-        COUNT(DISTINCT toc.user_id) AS mapValueThird,
-        FROM
-        t_order toc
+        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
         <if test="param.shopId != null and param.shopId != ''">
@@ -1200,7 +1199,7 @@
         SELECT
         tog.goods_type mapKey,
         COUNT(DISTINCT toc.order_id) AS mapValueFirst,
-        IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond
+        IFNULL(SUM(tog.goods_receivable_money),0) AS mapValueSecond
         FROM
         t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
@@ -1217,7 +1216,8 @@
     <select id="listPlTotalOrderTotalGoodsRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo">
         SELECT
         tog.goods_name mapKey,
-        IFNULL(SUM(tog.goods_total_money),0) mapValue
+        IFNULL(SUM(tog.goods_receivable_money),0) mapValue,
+        COUNT(DISTINCT toc.order_id) mapTotalValue
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
         WHERE toc.del_flag = 0
@@ -1265,10 +1265,10 @@
 
     <select id="getPlTotalActivityTotal" resultType="com.ruoyi.order.domain.vo.MgtPlTotalActivityTotalVo">
         SELECT
-        COUNT(order_id) orderTotal,
-        IFNULL(SUM(order_money),0) orderMoney,
-        COUNT(DISTINCT user_id) orderPerson
-        FROM t_order WHERE del_flag = 0 AND order_from = 2
+        COUNT(CASE WHEN order_status = 3 THEN order_id ELSE NULL END) orderTotal,
+        IFNULL(SUM(CASE WHEN order_status = 3 AND pay_type = 1 THEN change_receivable_money WHEN order_status = 3 AND pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) orderMoney,
+        COUNT(DISTINCT user_id) orderJoinPerson
+        FROM t_order WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1283,15 +1283,61 @@
         </if>
     </select>
 
+    <select id="getPlTotalActivityMemberTotal" resultType="com.ruoyi.order.domain.vo.MgtPlTotalActivityTotalVo">
+        SELECT
+        COUNT(DISTINCT toc.user_id) orderPerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 1 THEN toc.user_id ELSE NULL END) cyclePerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 2 THEN toc.user_id ELSE NULL END) experiencePerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) servicePerson
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND toc.shop_id IN
+            <foreach collection="param.shopIdList" 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>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+    </select>
+
+    <select id="getTotalActivityMemberTotal" resultType="com.ruoyi.order.domain.vo.MgtTotalActivityTotalVo">
+        SELECT
+        COUNT(DISTINCT toc.user_id) orderPerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 1 THEN toc.user_id ELSE NULL END) cyclePerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 2 THEN toc.user_id ELSE NULL END) experiencePerson,
+        COUNT(DISTINCT CASE WHEN tog.goods_type = 3 THEN toc.user_id ELSE NULL END) servicePerson
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND toc.order_status = 3 AND toc.new_member_flag = 1
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND toc.shop_id IN
+            <foreach collection="param.shopIdList" 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>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+    </select>
+
     <select id="listPlTotalActivityTotalGoodsType" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo">
         SELECT
         tog.goods_type mapKey,
         COUNT(DISTINCT toc.order_id) AS mapValueFirst,
-        IFNULL(SUM(tog.goods_total_money),0) AS mapValueSecond,
+        IFNULL(SUM(tog.goods_receivable_money),0) AS mapValueSecond,
         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 toc.order_from = 2
+        WHERE toc.del_flag = 0 AND toc.order_from = 2 AND order_status = 3
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND toc.shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
@@ -1311,9 +1357,9 @@
         SELECT
         DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey,
         COUNT(DISTINCT order_id) AS mapValueFirst,
-        IFNULL(SUM(order_money),0) AS mapValueSecond
+        IFNULL(SUM(CASE WHEN pay_type = 1 THEN change_receivable_money WHEN pay_type = 2 THEN change_receivable_money + online_pay_money ELSE 0 END),0) AS mapValueSecond
         FROM t_order
-        WHERE del_flag = 0 AND order_from = 2
+        WHERE del_flag = 0 AND order_from = 2 AND order_status = 3
         AND Date(create_time) >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
@@ -1371,12 +1417,18 @@
             shop_id AS mapKey,
             COUNT(order_id) AS mapValue
         FROM t_order
-        WHERE del_flag = 0 AND order_from = 2
+        WHERE del_flag = 0 AND order_from = 2 AND order_status IN (2,3)
         <if test="param.shopIdList != null and param.shopIdList.size() > 0">
             AND shop_id IN
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY shop_id
         ORDER BY COUNT(order_id) DESC LIMIT 15
@@ -1409,6 +1461,12 @@
             <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
                 #{item}
             </foreach>
+        </if>
+        <if test="param.startDate!=null and param.startDate!=''">
+            AND Date(create_time) &gt;= #{param.startDate}
+        </if>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(create_time) &lt;= #{param.endDate}
         </if>
         GROUP BY activity_name
         ORDER BY SUM(order_money) DESC LIMIT 15
@@ -1555,7 +1613,7 @@
         <if test="param.endDate!=null and param.endDate!=''">
             AND Date(toc.create_time) &lt;= #{param.endDate}
         </if>
-        GROUP BY mapValue
+        GROUP BY mapKey
         ORDER BY mapValue DESC LIMIT 15
     </select>
 
@@ -1794,13 +1852,41 @@
         GROUP BY mapKey
     </select>
 
+    <select id="getMgtActivityGetMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
+        SELECT
+        DATE(toc.create_time) AS mapKey,
+        COUNT(DISTINCT toc.user_id) AS mapValue
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.order_from = 2 AND toc.new_member_flag = 1 AND toc.order_status IN (2,3)
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND toc.shop_id IN
+            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </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>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
+    </select>
+
     <select id="getStaffActivityMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
         SELECT
         DATE(toc.create_time) AS mapKey,
         COUNT(DISTINCT toc.user_id) AS mapValue
         FROM t_order toc
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
-        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2
+        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} AND toc.order_from = 2 AND toc.order_staus IN (2,3)
         <if test="param.activityId !=null and param.activityId != ''">
             AND toc.activity_id = #{param.activityId}
         </if>
@@ -1822,6 +1908,35 @@
         GROUP BY mapKey
     </select>
 
+
+    <select id="getMgtActivityMemberTotal" resultType="com.ruoyi.system.api.domain.vo.MgtMapIntTotalVo">
+        SELECT
+        DATE(toc.create_time) AS mapKey,
+        COUNT(DISTINCT toc.user_id) AS mapValue
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.del_flag = 0  AND toc.order_from = 2 AND toc.order_staus IN (2,3)
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND toc.shop_id IN
+            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </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>
+        <if test="param.endDate!=null and param.endDate!=''">
+            AND Date(toc.create_time) &lt;= #{param.endDate}
+        </if>
+        GROUP BY mapKey
+    </select>
+
     <select id="countUserBuyGoodsNum" resultType="java.lang.Integer">
         SELECT SUM(tog.buy_num)
         FROM t_order toc

--
Gitblit v1.7.1