Преглед на файлове

修复恒春来订单维度统的问题

cgp преди 2 седмици
родител
ревизия
7355d73348
променени са 1 файла, в които са добавени 28 реда и са изтрити 13 реда
  1. 28 13
      fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

+ 28 - 13
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -664,7 +664,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY
         cu.company_id DESC
     </select>
-
+    <!--status: 0 待支付, 1 待发货, 2 待收货, 3 交易完成, -1退款中, -2已退款, -3已取消-->
     <select id="selectOrderSaleStatisticsList" resultType="com.fs.hisStore.vo.OrderStatisticsVo">
         SELECT * FROM (
         SELECT
@@ -673,20 +673,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cu.nick_name,
         c.company_name,
         c.company_id,
+        -- 总单数 - 统计经过 WHERE 条件过滤后(即非 0 状态)的订单数量
         COUNT(DISTINCT fso.id) AS totalNum,
-        SUM(CASE WHEN fso.`status` != 0 THEN fso.total_price ELSE 0 END) AS totalPrice,
-        SUM(CASE WHEN fso.`status` != 0 THEN fso.pay_price ELSE 0 END) AS actualPaymentAmount,
-        SUM(CASE WHEN fso.`status` = 5 THEN 1 ELSE 0 END) AS dealNum,
-        SUM(CASE WHEN fso.`status` = 5 THEN fso.total_price ELSE 0 END) AS dealPrice,
-        SUM(CASE WHEN fso.`status` = 1 OR fso.`status` = -2 THEN 1 ELSE 0 END) AS cancelNum,
-        SUM(CASE WHEN fso.`status` = 1 OR fso.`status` = -2 THEN fso.total_price ELSE 0 END) AS cancelPrice,
-        SUM(CASE WHEN fso.`status` = 2 AND (fso.delivery_pay_status = 0 OR fso.delivery_pay_status IS NULL) THEN 1 ELSE 0 END) AS pendingNum,
-        SUM(CASE WHEN fso.`status` = 2 AND (fso.delivery_pay_status = 0 OR fso.delivery_pay_status IS NULL) THEN fso.total_price ELSE 0 END) AS pendingPrice,
-        SUM(CASE WHEN fso.`status` = 3 AND fso.delivery_pay_status > 0 THEN 1 ELSE 0 END) AS invoiceNum,
-        SUM(CASE WHEN fso.`status` = 3 AND fso.delivery_pay_status > 0 THEN fso.total_price ELSE 0 END) AS invoicePrice,
-        IFNULL(SUM(CASE WHEN fso.`status` > 3 AND fso.delivery_pay_status = 3 THEN 1 ELSE 0 END), 0) AS signForNum,
-        SUM(CASE WHEN fso.`status` > 3 AND fso.delivery_pay_status = 3 THEN fso.total_price ELSE 0 END) AS signFPrice,
+        -- 总金额 - 由于WHERE子句已过滤,无需CASE WHEN
+        SUM(fso.total_price) AS totalPrice,
+        -- 实付款金额 - 由于WHERE子句已过滤,无需CASE WHEN
+        SUM(fso.pay_price) AS actualPaymentAmount,
+        -- 成交单数
+        SUM(CASE WHEN fso.`status` = 3 THEN 1 ELSE 0 END) AS dealNum,
+        -- 成交金额
+        SUM(CASE WHEN fso.`status` = 3 THEN fso.total_price ELSE 0 END) AS dealPrice,
+        -- 取消单数 - 订单状态为 '已取消' (-3)
+        SUM(CASE WHEN fso.`status` = -3 THEN 1 ELSE 0 END) AS cancelNum,
+        -- 取消金额
+        SUM(CASE WHEN fso.`status` = -3 THEN fso.total_price ELSE 0 END) AS cancelPrice,
+        -- 待发货单数 - 订单状态为 '待发货' (1)
+        SUM(CASE WHEN fso.`status` = 1 AND (fso.delivery_pay_status = 0 OR fso.delivery_pay_status IS NULL) THEN 1 ELSE 0 END) AS pendingNum,
+        -- 待发货金额
+        SUM(CASE WHEN fso.`status` = 1 AND (fso.delivery_pay_status = 0 OR fso.delivery_pay_status IS NULL) THEN fso.total_price ELSE 0 END) AS pendingPrice,
+        -- 发货单数 - 订单状态为 '待收货' (2) 或 '交易完成' (3)
+        SUM(CASE WHEN fso.`status` IN (2, 3) THEN 1 ELSE 0 END) AS invoiceNum,
+        -- 发货金额
+        SUM(CASE WHEN fso.`status` IN (2, 3) THEN fso.total_price ELSE 0 END) AS invoicePrice,
+        -- 签收单数 - 订单状态为 '交易完成' (3)
+        IFNULL(SUM(CASE WHEN fso.`status` = 3 THEN 1 ELSE 0 END), 0) AS signForNum,
+        -- 签收金额
+        IFNULL(SUM(CASE WHEN fso.`status` = 3 THEN fso.total_price ELSE 0 END), 0) AS signFPrice,
+        -- 退单数 - 订单状态为 '退款中' (-1) 且退款状态为 '已退款' (2)
         SUM(CASE WHEN fso.`status` = -1 AND fso.refund_status = 2 THEN 1 ELSE 0 END) AS chargebackNum,
+        -- 退单金额
         SUM(CASE WHEN fso.`status` = -1 AND fso.refund_status = 2 THEN fso.total_price ELSE 0 END) AS chargebackPrice
         FROM
         company_user cu