低空智控平台 后端go
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

-- 待支付订单约束与超时扫描优化。执行前请确认不存在重复的 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);