From 22fc06733f1e3d1941499b312d83d07fdad27949 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 08 Jul 2025 14:37:34 +0800
Subject: [PATCH] feat(mall): 添加活动数据统计功能

---
 src/main/resources/templates/febs/views/modules/mallMember/dataInfo.html       |   40 ++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/vo/AdminDataInfoVo.java                      |    5 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java |   17 ++++++++
 3 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index b353d10..3eeec36 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -1061,6 +1061,23 @@
         adminDataInfoVo.setTotalWeekAmount(totalWeekAmount);
         adminDataInfoVo.setTotalMonthAmount(totalMonthAmount);
 
+        List<HappyActivityOrder> happyActivityDoneOrders = happyActivityOrderMapper.selectList(
+                Wrappers.lambdaQuery(HappyActivityOrder.class)
+                        .eq(HappyActivityOrder::getPayState, StateUpDownEnum.PAY_STATE_PAY_SUCCESS.getCode())
+                        .eq(HappyActivityOrder::getState, StateUpDownEnum.ORDER_STATE_USED.getCode())
+        );
+
+        if(CollUtil.isNotEmpty(happyActivityDoneOrders)){
+            adminDataInfoVo.setTotalActivityMember(happyActivityDoneOrders.size());
+
+            adminDataInfoVo.setTotalActivityDayMember(
+                    Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfDay(new Date())) >= 0).count()));
+            adminDataInfoVo.setTotalActivityWeekMember(
+                    Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfWeek(new Date())) >= 0).count()));
+            adminDataInfoVo.setTotalActivityMonthMember(
+                    Math.toIntExact(happyActivityDoneOrders.stream().filter(entity -> DateUtil.compare(entity.getCreatedTime(), DateUtil.beginOfMonth(new Date())) >= 0).count()));
+        }
+
         return new FebsResponse().success().data(adminDataInfoVo);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminDataInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminDataInfoVo.java
index 0eb84b5..30349dd 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminDataInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminDataInfoVo.java
@@ -12,6 +12,11 @@
     private Integer totalWeekMember = 0;//七日内新增
     private Integer totalMonthMember = 0;//30天内新增
 
+    private Integer totalActivityMember = 0;//总数
+    private Integer totalActivityDayMember = 0;//昨日新增
+    private Integer totalActivityWeekMember = 0;//七日内新增
+    private Integer totalActivityMonthMember = 0;//30天内新增
+
     private BigDecimal totalAmount = BigDecimal.ZERO;//总数
     private BigDecimal totalDayAmount = BigDecimal.ZERO;//新增
     private BigDecimal totalWeekAmount = BigDecimal.ZERO;//本周新增
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/dataInfo.html b/src/main/resources/templates/febs/views/modules/mallMember/dataInfo.html
index cf36f4b..a5938bb 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/dataInfo.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/dataInfo.html
@@ -191,6 +191,46 @@
                     </div>
                 </div>
 
+                <div class="layui-card-body layui-anim layui-anim-fadein">
+                    <div class="layui-row">
+                        <div class="m-title">活动数据</div>
+                        <div class="layui-row layui-col-space15">
+                            <div class="layui-col-md3">
+                                <div class="layui-panel">
+                                    <div class="box">
+                                        <p class="name">总计参与人数</p>
+                                        <p class="num"><span id="totalActivityMember"></span></p>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-md3">
+                                <div class="layui-panel">
+                                    <div class="box">
+                                        <p class="name">今日新增参与人数</p>
+                                        <p class="num"><span id="totalActivityDayMember"></span></p>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-md3">
+                                <div class="layui-panel">
+                                    <div class="box">
+                                        <p class="name">本周新增参与人数</p>
+                                        <p class="num"><span id="totalActivityWeekMember"></span></p>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-md3">
+                                <div class="layui-panel">
+                                    <div class="box">
+                                        <p class="name">本月新增参与人数</p>
+                                        <p class="num"><span id="totalActivityMonthMember"></span></p>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
 
 
             </div>

--
Gitblit v1.9.1