-- 待付款订单统一在服务端以创建后 30 分钟为截止时间,避免只由客户端倒计时控制。 ALTER TYPE "OrderStatus" ADD VALUE IF NOT EXISTS 'PAYMENT_EXPIRED'; ALTER TABLE "Order" ADD COLUMN IF NOT EXISTS "paymentExpiresAt" TIMESTAMP(3); -- 为已有待付款订单补齐截止时间;历史订单会按创建时间计算并在下一次读取时自动过期。 UPDATE "Order" SET "paymentExpiresAt" = "createdAt" + INTERVAL '30 minutes' WHERE "paymentExpiresAt" IS NULL AND "status" = 'PENDING'; CREATE INDEX IF NOT EXISTS "Order_paymentExpiresAt_idx" ON "Order"("paymentExpiresAt");