You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.4 KiB
26 lines
1.4 KiB
-- 待支付订单约束与超时扫描优化。执行前请确认不存在重复的 unpaid/processing 订单。
|
|
|
|
ALTER TABLE traffic_order
|
|
MODIFY COLUMN pay_status VARCHAR(16) NOT NULL DEFAULT 'unpaid' COMMENT 'unpaid/processing/paid/cancelled/closed',
|
|
ADD KEY idx_traffic_order_pending_expire (pay_status, created_at, id);
|
|
|
|
ALTER TABLE sim_recharge_order
|
|
ADD COLUMN closed_at DATETIME NULL COMMENT '关闭时间' AFTER paid_at,
|
|
MODIFY COLUMN payment_status VARCHAR(16) NOT NULL DEFAULT 'unpaid' COMMENT 'unpaid/processing/paid/cancelled/closed',
|
|
ADD KEY idx_sim_recharge_pending_expire (payment_status, created_at, id);
|
|
|
|
ALTER TABLE payment_transaction
|
|
MODIFY COLUMN status VARCHAR(16) NOT NULL DEFAULT 'unpaid' COMMENT 'unpaid/processing/paid/failed/cancelled/closed',
|
|
ADD KEY idx_payment_business_status (business_type, business_order_id, status);
|
|
|
|
ALTER TABLE traffic_order
|
|
ADD COLUMN pending_user_id BIGINT GENERATED ALWAYS AS (
|
|
CASE WHEN pay_status IN ('unpaid', 'processing') THEN user_id ELSE NULL END
|
|
) STORED,
|
|
ADD UNIQUE KEY uk_traffic_order_pending_user (pending_user_id);
|
|
|
|
ALTER TABLE sim_recharge_order
|
|
ADD COLUMN pending_sim_card_id BIGINT GENERATED ALWAYS AS (
|
|
CASE WHEN payment_status IN ('unpaid', 'processing') THEN sim_card_id ELSE NULL END
|
|
) STORED,
|
|
ADD UNIQUE KEY uk_sim_recharge_pending_card (pending_sim_card_id);
|
|
|