19 lines
777 B
SQL
19 lines
777 B
SQL
-- 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;
|