From f59d6b8d46287afc9ec306b531ed88ced407f45f Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期一, 11 十一月 2024 14:33:22 +0800
Subject: [PATCH] 优化统计

---
 src/main/java/com/mzl/flower/service/statistics/StatisticsService.java |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java b/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java
index 5c3ecc1..92767a5 100644
--- a/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java
+++ b/src/main/java/com/mzl/flower/service/statistics/StatisticsService.java
@@ -9,6 +9,7 @@
 import com.mzl.flower.dto.request.flower.FlowerQueryDTO;
 import com.mzl.flower.dto.request.payment.OrderItemSalesQueryDTO;
 import com.mzl.flower.dto.request.payment.OrderQueryDTO;
+import com.mzl.flower.dto.response.payment.OrderStatusCountDTO;
 import com.mzl.flower.dto.response.statistics.FlowerStatisticsDTO;
 import com.mzl.flower.dto.response.statistics.OrderStatisticsDTO;
 import com.mzl.flower.dto.response.statistics.RateStatisticsDTO;
@@ -105,14 +106,27 @@
                 .eq("is_enabled", 1)
                 .eq("status", "P")
                 .eq("deleted", 0));
-        dto.setSupplierCount(sc.longValue());//用户管理:统计商户列表已启用的全部用户(点击跳转到商户列表)
+        dto.setSupplierCount(sc.longValue());
 
-        Integer oc = orderMapper.selectCount(new QueryWrapper<Order>()
-                .eq("deleted", 0)
-                .isNotNull("payment_time")
-                .isNull("cancel_time")
-                .isNull("refund_time"));
-        dto.setOrderCount(oc.longValue());//订单管理:全部订单数量-待付款-已取消-已退款(点击跳转到订单列表)
+        Integer cc = customerMapper.selectCount(new QueryWrapper<Customer>()
+                .eq("is_enabled", 1)
+                .eq("deleted", 0));
+        dto.setCustomerCount(cc.longValue());//用户管理:统计商户列表已启用的全部用户(点击跳转到商户列表)
+
+        //订单管理:全部订单数量-待付款-已取消-已退款(点击跳转到订单列表)
+        List<OrderStatusCountDTO> ll = orderMapper.getOrderStatusCount(new OrderQueryDTO());
+        Integer oc = 0;
+        if (ll != null && ll.size() > 0) {
+            for (OrderStatusCountDTO c : ll) {
+                if(Constants.ORDER_STATUS_BACKEND.PENDING.name().equals(c.getValue())
+                        || Constants.ORDER_STATUS_BACKEND.CANCEL.name().equals(c.getValue())
+                        || Constants.ORDER_STATUS_BACKEND.REFUND.name().equals(c.getValue())){
+                    continue;
+                }
+                oc += c.getOrderCount();
+            }
+        }
+        dto.setOrderCount(oc.longValue());
 
         page = new Page(1, 1);
         OrderQueryDTO oq = new OrderQueryDTO();
@@ -307,7 +321,11 @@
         LocalDateTime beginY = begin.plusDays(-1);
 
         RateStatisticsDTO dto = new RateStatisticsDTO();
-        //TODO 用户访问量:点击到交易大厅或者商品详情页面计算,同一个用户,每天只计算一次(包含游客)(并计算新增量,计算日环比)
+        //用户访问量:点击到交易大厅或者商品详情页面计算,同一个用户,每天只计算一次(包含游客)(并计算新增量,计算日环比)
+
+        Integer c = userAccessMapper.selectCount(new QueryWrapper<UserAccess>());
+        dto.setCount(c.longValue());
+
         Integer cT = userAccessMapper.selectCount(new QueryWrapper<UserAccess>()
                 .gt("create_time", begin)
                 .le("create_time", end)
@@ -376,6 +394,8 @@
             BigDecimal yy = BigDecimal.valueOf(yesterday);
             BigDecimal rate = ttyy.divide(yy, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
             return rate.doubleValue();
+        } else if (today <= 0) {
+            return 0D;
         }
 
         return 100D;

--
Gitblit v1.9.3