admin/sql/20260728_order_file.sql
zzh 41f4c58e99 Improve draft predeclare billing and structured create-fail payload.
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>
2026-07-28 19:30:27 +08:00

51 lines
2.2 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.

-- 订单附件表;将原 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`;