-- +goose Up -- 000069 回填历史释放时间时只覆盖了 completed,遗漏了同样是可释放终态的 closed 订单, -- 导致不退款关单(AdminRejectRefund close、AdminSeal 等)的订单 release_at 永久为 NULL。 -- 这里补齐 closed,使这些订单重新纳入自动释放扫描。 UPDATE distribution_order_financials f JOIN rental_orders ro ON ro.id = f.order_id JOIN distribution_sites s ON s.id = f.site_id SET f.release_at = DATE_ADD(COALESCE(ro.settled_at, f.created_at), INTERVAL s.settlement_hold_days DAY) WHERE f.settlement_status = 'pending' AND f.release_at IS NULL AND ro.status IN ('completed', 'closed'); -- +goose Down -- 回填不可逆:无法区分补写的 release_at 与原有值,Down 用占位语句保持 goose 格式。 SELECT 1;