feat: gift card breakdown - migrations, fdw queries, finance recharge task, board-finance page updates

This commit is contained in:
Neo
2026-03-20 03:24:17 +08:00
parent 8f8abad4c9
commit 675301f38b
15 changed files with 473 additions and 185 deletions

View File

@@ -0,0 +1,53 @@
-- ============================================================
-- 赠送卡细分数据一致性验证脚本
-- 用途ETL 跑数完成后,验证 DWS 层赠送卡细分字段的数据正确性
-- 关联需求Requirements 10.1, 10.2, 10.3
-- ============================================================
-- ------------------------------------------------------------
-- 1. 验证余额恒等式 (Requirement 10.3)
-- gift_card_balance = gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance
-- 预期结果:空集(无违反恒等式的记录)
-- ------------------------------------------------------------
SELECT site_id, stat_date,
gift_card_balance,
gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance AS sum_breakdown,
gift_card_balance - (gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance) AS diff
FROM dws.dws_finance_recharge_summary
WHERE gift_card_balance != gift_liquor_balance + gift_table_fee_balance + gift_voucher_balance;
-- ------------------------------------------------------------
-- 2. 验证新增恒等式 (Requirement 10.2 隐含)
-- recharge_gift = gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge
-- 预期结果:空集(无违反恒等式的记录)
-- ------------------------------------------------------------
SELECT site_id, stat_date,
recharge_gift,
gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge AS sum_breakdown,
recharge_gift - (gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge) AS diff
FROM dws.dws_finance_recharge_summary
WHERE recharge_gift != gift_liquor_recharge + gift_table_fee_recharge + gift_voucher_recharge;
-- ------------------------------------------------------------
-- 3. 验证 DWS 与 DWD 源数据一致 (Requirement 10.1)
-- DWS 各类型余额 = DWD dim_member_card_account 对应 card_type_id 的 balance 之和
-- 预期结果DWS 行与 DWD 行的 liquor/table_fee/voucher 数值一致
-- card_type_id 映射:
-- 2794699703437125 → 酒水卡 (liquor)
-- 2791990152417157 → 台费卡 (table_fee)
-- 2793266846533445 → 抵用券 (voucher)
-- ------------------------------------------------------------
SELECT 'DWS' AS source,
SUM(gift_liquor_balance) AS liquor,
SUM(gift_table_fee_balance) AS table_fee,
SUM(gift_voucher_balance) AS voucher
FROM dws.dws_finance_recharge_summary
WHERE stat_date = CURRENT_DATE
UNION ALL
SELECT 'DWD',
SUM(CASE WHEN card_type_id = 2794699703437125 THEN balance ELSE 0 END),
SUM(CASE WHEN card_type_id = 2791990152417157 THEN balance ELSE 0 END),
SUM(CASE WHEN card_type_id = 2793266846533445 THEN balance ELSE 0 END)
FROM dwd.dim_member_card_account
WHERE scd2_is_current = 1 AND COALESCE(is_delete, 0) = 0
AND card_type_id IN (2794699703437125, 2791990152417157, 2793266846533445);