From 1fff6f68aeb68750052231215bbffc9246a3fe8d Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com>
Date: 星期三, 23 十月 2024 09:27:19 +0800
Subject: [PATCH] 统计 总销售金额 总销售扎数

---
 src/main/java/com/mzl/flower/service/statistics/StatisticsService.java        |   30 +++++++++++----
 src/main/java/com/mzl/flower/dto/response/statistics/FlowerStatisticsDTO.java |   14 +++---
 src/main/resources/mapper/payment/OrderItemMapper.xml                         |   10 +++-
 src/main/resources/mapper/payment/OrderMapper.xml                             |   10 +++-
 src/main/java/com/mzl/flower/dto/response/statistics/OrderStatisticsDTO.java  |   21 ++++++++++
 src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java   |    2 
 6 files changed, 65 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/response/statistics/FlowerStatisticsDTO.java b/src/main/java/com/mzl/flower/dto/response/statistics/FlowerStatisticsDTO.java
index cb977cc..2d681c3 100644
--- a/src/main/java/com/mzl/flower/dto/response/statistics/FlowerStatisticsDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/statistics/FlowerStatisticsDTO.java
@@ -8,23 +8,23 @@
 @Data
 public class FlowerStatisticsDTO {
     @ApiModelProperty(value = "商品管理")
-    private Integer flowerCount;
+    private Long flowerCount;
 
     @ApiModelProperty(value = "用户管理")
-    private Integer supplierCount;
+    private Long supplierCount;
 
     @ApiModelProperty(value = "订单管理")
-    private Integer orderCount;
+    private Long orderCount;
 
     @ApiModelProperty(value = "订单管理-待发货")
-    private Integer orderSendCount;
+    private Long orderSendCount;
 
     @ApiModelProperty(value = "商品管理-在售")
-    private Integer flowerUpCount;
+    private Long flowerUpCount;
 
     @ApiModelProperty(value = "商品管理-待审核")
-    private Integer flowerPendingCount;
+    private Long flowerPendingCount;
 
     @ApiModelProperty(value = "待售后处理")
-    private Integer orderSalesCount;
+    private Long orderSalesCount;
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/statistics/OrderStatisticsDTO.java b/src/main/java/com/mzl/flower/dto/response/statistics/OrderStatisticsDTO.java
new file mode 100644
index 0000000..1b689c1
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/response/statistics/OrderStatisticsDTO.java
@@ -0,0 +1,21 @@
+package com.mzl.flower.dto.response.statistics;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OrderStatisticsDTO {
+    @ApiModelProperty(value = "总销售金额")
+    private BigDecimal totalSaleAmount;
+
+    @ApiModelProperty(value = "总销售扎数")
+    private Long totalSaleFlowerCount;
+
+    @ApiModelProperty(value = "供应商待提现")
+    private BigDecimal supplierPendingAmount;
+
+    @ApiModelProperty(value = "供应商已提现")
+    private BigDecimal supplierCompleteAmount;
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java b/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java
index a5ea6cb..797fc14 100644
--- a/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/statistics/SaleStatisticsDTO.java
@@ -11,5 +11,5 @@
     private BigDecimal saleAmount;
 
     @ApiModelProperty(value = "销售扎数")
-    private Integer saleFlowerCount;
+    private Long saleFlowerCount;
 }
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 e70d68e..a0322f9 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.payment.OrderQueryDTO;
 import com.mzl.flower.dto.response.flower.FlowerListDTO;
 import com.mzl.flower.dto.response.statistics.FlowerStatisticsDTO;
+import com.mzl.flower.dto.response.statistics.OrderStatisticsDTO;
 import com.mzl.flower.dto.response.statistics.SaleStatisticsDTO;
 import com.mzl.flower.entity.payment.Order;
 import com.mzl.flower.entity.supplier.Supplier;
@@ -65,7 +66,7 @@
         Integer c = orderItemMapper.getFlowerSaleNum(begin, end);
 
         dto.setSaleAmount(a);
-        dto.setSaleFlowerCount(c);
+        dto.setSaleFlowerCount(c == null ? 0 : c.longValue());
 
         return dto;
     }
@@ -82,26 +83,26 @@
         statusList.add(Constants.FLOWER_STATUS.FORCE_OFF.name());
         q.setStatusList(statusList);
         flowerMapper.selectFlowerList(page, q);
-        dto.setFlowerCount((int)page.getTotal());
+        dto.setFlowerCount(page.getTotal());
 
         Integer sc = supplierMapper.selectCount(new QueryWrapper<Supplier>()
                 .eq("is_enabled", 1)
                 .eq("status", "P")
                 .eq("deleted", 0));
-        dto.setSupplierCount(sc);
+        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);
+        dto.setOrderCount(oc.longValue());
 
         page = new Page(1, 1);
         OrderQueryDTO oq = new OrderQueryDTO();
         oq.setStatusBackend(Constants.ORDER_STATUS_BACKEND.SEND.name());
         orderMapper.selectOrderList(page, oq);
-        dto.setOrderSendCount((int)page.getTotal());
+        dto.setOrderSendCount(page.getTotal());
 
         page = new Page(1, 1);
         q = new FlowerQueryDTO();
@@ -109,7 +110,7 @@
         statusList.add(Constants.FLOWER_STATUS.UP.name());
         q.setStatusList(statusList);
         flowerMapper.selectFlowerList(page, q);
-        dto.setFlowerUpCount((int)page.getTotal());
+        dto.setFlowerUpCount(page.getTotal());
 
         page = new Page(1, 1);
         q = new FlowerQueryDTO();
@@ -117,13 +118,26 @@
         statusList.add(Constants.FLOWER_STATUS.PENDING.name());
         q.setStatusList(statusList);
         flowerMapper.selectFlowerList(page, q);
-        dto.setFlowerPendingCount((int)page.getTotal());
+        dto.setFlowerPendingCount(page.getTotal());
 
         page = new Page(1, 1);
         OrderItemSalesQueryDTO sq = new OrderItemSalesQueryDTO();
         sq.setStatus(Constants.ORDER_SALES_STATUS.PENDING.name());
         orderItemSalesMapper.selectItemSalesList(page, sq);
-        dto.setOrderSalesCount((int)page.getTotal());
+        dto.setOrderSalesCount(page.getTotal());
+
+        return dto;
+    }
+
+    public OrderStatisticsDTO getOrderStatistics(){
+        OrderStatisticsDTO dto = new OrderStatisticsDTO();
+        BigDecimal a = orderMapper.getOrderSaleAmount(null, null);
+        Integer c = orderItemMapper.getFlowerSaleNum(null, null);
+        dto.setTotalSaleAmount(a);
+        dto.setTotalSaleFlowerCount(c == null ? 0 : c.longValue());
+
+        dto.setSupplierPendingAmount(new BigDecimal(0));//TODO 供应商待提现:结算列表待结算(供应商)+供应商钱包余额
+        dto.setSupplierCompleteAmount(new BigDecimal(0));//TODO 供应商已提现:结算列表已结算(供应商)+供应商钱包已提现金额
 
         return dto;
     }
diff --git a/src/main/resources/mapper/payment/OrderItemMapper.xml b/src/main/resources/mapper/payment/OrderItemMapper.xml
index 0037d42..053f966 100644
--- a/src/main/resources/mapper/payment/OrderItemMapper.xml
+++ b/src/main/resources/mapper/payment/OrderItemMapper.xml
@@ -76,9 +76,13 @@
         SELECT sum(oi.num)
         FROM t_order_item oi
         JOIN t_order o on oi.order_id = o.id
-        WHERE o.create_time &gt; #{startTime}
-        and o.create_time &lt;= #{endTime}
-        and o.payment_time is not null
+        WHERE o.payment_time is not null
         and o.refund_time is null
+        <if test="startTime != null">
+            and o.create_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null">
+            and o.create_time &lt;= #{endTime}
+        </if>
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/payment/OrderMapper.xml b/src/main/resources/mapper/payment/OrderMapper.xml
index e0451eb..5e6e22a 100644
--- a/src/main/resources/mapper/payment/OrderMapper.xml
+++ b/src/main/resources/mapper/payment/OrderMapper.xml
@@ -366,9 +366,13 @@
     <select id="getOrderSaleAmount" resultType="java.math.BigDecimal">
         SELECT sum(o.payment_amount)
         FROM t_order o
-        WHERE o.create_time &gt; #{startTime}
-        and o.create_time &lt;= #{endTime}
-        and o.payment_time is not null
+        WHERE o.payment_time is not null
         and o.refund_time is null
+        <if test="startTime != null">
+            and o.create_time &gt; #{startTime}
+        </if>
+        <if test="endTime != null">
+            and o.create_time &lt;= #{endTime}
+        </if>
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3