Re-run forecast billing on draft pre-declare, and expose draftSaved/orderId/serviceNo via ErrorCode/Data/details for clearer place-order failure UX. Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
2.2 KiB
SQL
51 lines
2.2 KiB
SQL
-- 订单附件表;将原 LabelUrl 迁移为 systemLabel 后删除订单旧面单字段。
|
||
-- 在 MySQL 执行前请先备份。
|
||
|
||
CREATE TABLE IF NOT EXISTS `t_order_file` (
|
||
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增',
|
||
`OrderId` INT NOT NULL COMMENT '订单Id',
|
||
`FileType` VARCHAR(32) NOT NULL COMMENT '附件类型:tradeProof交易证明/systemLabel系统面单/downstreamLabel下游面单/lastMileLabel末端面单/infraredImage红外图片',
|
||
`FileName` VARCHAR(255) NULL COMMENT '原始文件名',
|
||
`FileUrl` VARCHAR(512) NOT NULL COMMENT '文件地址(相对路径或外链)',
|
||
`ContentType` VARCHAR(128) NULL COMMENT '文件MIME类型',
|
||
`FileSize` BIGINT NULL COMMENT '文件大小(字节)',
|
||
`Sort` INT NOT NULL DEFAULT 0 COMMENT '同类型内排序',
|
||
`Source` VARCHAR(32) NOT NULL DEFAULT 'upload' COMMENT '来源:upload上传/systemGenerate系统生成/downstream下游回传/migrate迁移',
|
||
`Remark` 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_ord_file_order_type` (`OrderId`, `FileType`, `IsDeleted`)
|
||
) COMMENT='订单附件表';
|
||
|
||
-- 迁移已有系统面单地址(若 LabelUrl 列已删除可跳过本段)
|
||
INSERT INTO `t_order_file` (`OrderId`, `FileType`, `FileName`, `FileUrl`, `ContentType`, `Sort`, `Source`, `CreateUserId`, `CreateTime`)
|
||
SELECT
|
||
`Id`,
|
||
'systemLabel',
|
||
SUBSTRING_INDEX(`LabelUrl`, '/', -1),
|
||
`LabelUrl`,
|
||
'application/pdf',
|
||
0,
|
||
'migrate',
|
||
0,
|
||
NOW()
|
||
FROM `t_order`
|
||
WHERE `LabelUrl` IS NOT NULL
|
||
AND TRIM(`LabelUrl`) <> ''
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM `t_order_file` f
|
||
WHERE f.`OrderId` = `t_order`.`Id`
|
||
AND f.`FileType` = 'systemLabel'
|
||
AND f.`IsDeleted` = 0
|
||
);
|
||
|
||
ALTER TABLE `t_order`
|
||
DROP COLUMN `LabelUrl`,
|
||
DROP COLUMN `LabelGenerateStatus`,
|
||
DROP COLUMN `LabelGenerateError`;
|