admin/sql/migrate_order_side_effect.sql
zzh 34c47a3173
All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
fix: 创单后置步骤随订单落库,提交后再单独执行
进程重启或事务回滚不再丢掉 9610、轨迹和揽收;排货完成后再补轨迹、面单和计费相关触发。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 20:07:51 +08:00

40 lines
1.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 创单后置步骤表:与订单同一事务写入,提交后由后台执行。
-- 可重复执行。不建唯一索引。
SET @db := DATABASE();
SET @exists := (
SELECT COUNT(1)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = 't_order_side_effect'
);
SET @sql := IF(
@exists = 0,
'CREATE TABLE `t_order_side_effect` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
`OrderId` INT NOT NULL COMMENT ''订单 Id'',
`Step` VARCHAR(64) NOT NULL COMMENT ''步骤:customs-9610/forecast-billing/track-upsert 等'',
`Status` VARCHAR(32) NOT NULL DEFAULT ''pending'' COMMENT ''pending/running/done/failed'',
`PayloadJson` TEXT NULL COMMENT ''步骤入参,含轨迹授权头,日志中不要打印全文'',
`AttemptCount` INT NOT NULL DEFAULT 0 COMMENT ''已尝试次数'',
`NextRunTime` DATETIME NULL COMMENT ''下次可执行时间'',
`LastError` VARCHAR(512) NULL COMMENT ''最近一次失败原因'',
`IsDeleted` TINYINT NOT NULL DEFAULT 0 COMMENT ''软删除:0-否,1-是'',
`ConcurrencyStamp` CHAR(36) NOT NULL DEFAULT (UUID()) COMMENT ''并发戳'',
`CreateUserId` INT NOT NULL DEFAULT 0 COMMENT ''创建人'',
`CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ''创建时间'',
`UpdateUserId` INT NULL COMMENT ''更新人'',
`UpdateTime` DATETIME NULL COMMENT ''更新时间'',
PRIMARY KEY (`Id`),
KEY `idx_order_side_effect_due` (`Status`, `NextRunTime`),
KEY `idx_order_side_effect_order` (`OrderId`, `Step`)
) COMMENT=''创单后置步骤''',
'SELECT ''t_order_side_effect already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;