调整退款额计算 添加销售为已取消、已关闭、交易关闭情况下退款中未计算到的金额

This commit is contained in:
2026-04-28 18:21:54 +08:00
parent 8ba49be41b
commit 6f38209efe
+65 -5
View File
@@ -147,7 +147,45 @@ ORDER BY 统计日期 DESC, 总销售额 DESC;
field_suffix="退款额",
sql_template="""
SET TIMEZONE = 'Asia/Shanghai';
WITH base_data AS (
WITH sales_base AS (
SELECT
fs.*,
TRIM(fs."平台订单号") AS "原平台订单号",
split_part(TRIM(fs."平台订单号"), '-', 1) AS "主订单号"
FROM analytics_layer.fact_sales fs
WHERE fs."订单状态" IN ('已关闭', '已取消', '交易关闭')
AND NULLIF(TRIM(fs."平台订单号"), '') IS NOT NULL
AND fs."支付时间" IS NOT NULL
AND fs."支付时间" >= %(start_ts)s
AND fs."支付时间" < %(end_ts_exclusive)s
),
missing_order_keys AS (
SELECT DISTINCT
sb."主订单号"
FROM sales_base sb
WHERE NOT EXISTS (
SELECT 1
FROM analytics_layer.fact_returns fr
WHERE split_part(TRIM(fr."平台订单号"), '-', 1) = sb."主订单号"
AND NULLIF(TRIM(fr."平台订单号"), '') IS NOT NULL
)
),
missing_return_sales AS (
SELECT
sb."支付时间"::DATE AS 统计日期,
sb."店铺主键",
SUM(sb."实付分摊金额") AS 补充退款金额
FROM sales_base sb
JOIN missing_order_keys mok
ON sb."主订单号" = mok."主订单号"
GROUP BY
sb."支付时间"::DATE,
sb."店铺主键"
),
base_data AS (
SELECT
f.完结时间::DATE AS 统计日期,
f.店铺主键,
@@ -215,12 +253,13 @@ shop_brand_detail AS (
SUM(退款金额) AS 总退款金额
FROM brand_split
GROUP BY 1,2,3
)
),
all_amount AS (
SELECT
统计日期,
店铺名称,
总退款金额
总退款金额 AS 金额
FROM shop_brand_detail
WHERE NOT (
店铺主键 IN (1,9,28,29)
@@ -233,7 +272,7 @@ UNION ALL
SELECT
统计日期,
原始店铺名称 AS 店铺名称,
SUM(退款金额) AS 总退款金额
SUM(退款金额) AS 金额
FROM base_data
WHERE 店铺主键 IN (1,28,29,3)
GROUP BY 1,2
@@ -244,7 +283,7 @@ UNION ALL
SELECT
r.统计日期,
r.原始店铺名称 || '_权益金' AS 店铺名称,
SUM(r.退款金额) AS 总退款金额
SUM(r.退款金额) AS 金额
FROM base_data r
JOIN recharge_orders ro
ON r.平台订单号 = ro.平台订单号
@@ -252,6 +291,27 @@ JOIN recharge_orders ro
WHERE r.店铺主键 IN (5,11,14,22,26)
GROUP BY 1,2
UNION ALL
SELECT
mrs.统计日期,
COALESCE(s.店铺名称, '未知店铺') AS 店铺名称,
SUM(mrs.补充退款金额) AS 金额
FROM missing_return_sales mrs
LEFT JOIN analytics_layer.dim_shop s
ON mrs.店铺主键 = s.店铺主键
GROUP BY 1,2
)
SELECT
统计日期,
店铺名称,
SUM(金额) AS 总退款金额
FROM all_amount
GROUP BY
统计日期,
店铺名称
ORDER BY 统计日期 DESC, 总退款金额 DESC;
""",
),