bindbox-game/migrations/20260121_repair_coupon_data.sql

19 lines
771 B
SQL
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 1. 修复【金额券】:余额已为 0且尚未到期但状态被错误标记为"已过期”(3) 的券,统一修复为"已使用”(2)
UPDATE user_coupons
SET status = 2,
used_at = IFNULL(used_at, updated_at)
WHERE balance_amount = 0
AND status = 3
AND valid_end > NOW();
-- 2. 修复【核销记录一致性】:已经在 order_coupons 表中有抵扣记录,但状态仍为"已过期”(3) 的券
UPDATE user_coupons uc
JOIN order_coupons oc ON uc.id = oc.user_coupon_id
SET uc.status = 2,
uc.used_at = IFNULL(uc.used_at, oc.created_at)
WHERE uc.status = 3
AND uc.valid_end > NOW();
-- 3. (可选) 检查修复后的 User 9090 数据
-- SELECT id, status, balance_amount, valid_end, used_at FROM user_coupons WHERE user_id = 9090;