admin/sql/migrate_20261009_order_warehouse.sql
zzh da27fa4377
All checks were successful
Build and Deploy / deploy (push) Successful in 1m0s
feat: 重算应付放行锁渠道池校验,支持切换价格/规则版本与服务商名称
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 18:16:38 +08:00

106 lines
4.1 KiB
SQL
Raw Permalink 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.

-- =============================================================================
-- migrate_20261009_order_warehouse.sql
-- 汇总:
-- 1) t_order.DownstreamSupplierName(下游服务商名称)
-- 2) t_order_operation_log(运单操作日志)
-- 3) t_warehouse_address.Sort / Remark(仓库地址排序与备注)
-- 可重复执行。
-- =============================================================================
SET @db := DATABASE();
-- -----------------------------------------------------------------------------
-- 1) 订单:下游服务商名称
-- -----------------------------------------------------------------------------
SET @exists := (
SELECT COUNT(1)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = 't_order'
AND COLUMN_NAME = 'DownstreamSupplierName'
);
SET @sql := IF(
@exists = 0,
'ALTER TABLE `t_order` ADD COLUMN `DownstreamSupplierName` VARCHAR(128) NULL COMMENT ''下游 API 服务商名称'' AFTER `DownstreamSupplierCode`',
'SELECT ''t_order.DownstreamSupplierName already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- -----------------------------------------------------------------------------
-- 2) 运单操作日志表
-- -----------------------------------------------------------------------------
SET @tbl := (
SELECT COUNT(1)
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = 't_order_operation_log'
);
SET @sql := IF(
@tbl = 0,
'CREATE TABLE `t_order_operation_log` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT ''主键'',
`OrderId` INT NOT NULL COMMENT ''运单Id'',
`ServiceNo` VARCHAR(64) NULL COMMENT ''运单号冗余'',
`Action` VARCHAR(32) NOT NULL COMMENT ''动作码 editBasic/editWeight/recalcReceivable/recalcPayable/reallocate'',
`ActionName` VARCHAR(64) NOT NULL COMMENT ''动作中文名'',
`OperatorId` INT NOT NULL DEFAULT 0 COMMENT ''操作人用户Id'',
`OperatorName` VARCHAR(64) NULL COMMENT ''操作人展示名'',
`OperatorType` VARCHAR(16) NOT NULL DEFAULT ''staff'' COMMENT ''staff/customer/system/openapi'',
`Source` VARCHAR(16) NOT NULL DEFAULT ''pc'' COMMENT ''pc/h5/openapi/job'',
`ChangesJson` JSON NULL COMMENT ''字段 diff 数组 [{path,label,before,after}]'',
`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_ool_order_time` (`OrderId`, `CreateTime`),
KEY `idx_ool_service_no` (`ServiceNo`)
) COMMENT=''运单操作日志''',
'SELECT ''t_order_operation_log already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- -----------------------------------------------------------------------------
-- 3) 仓库地址:展示排序 + 备注
-- -----------------------------------------------------------------------------
SET @col := (
SELECT COUNT(1)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = 't_warehouse_address'
AND COLUMN_NAME = 'Sort'
);
SET @sql := IF(
@col = 0,
'ALTER TABLE `t_warehouse_address`
ADD COLUMN `Sort` INT NULL DEFAULT NULL COMMENT ''展示排序,越小越靠前'' AFTER `ShippingAddress`',
'SELECT ''t_warehouse_address.Sort already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @col := (
SELECT COUNT(1)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db
AND TABLE_NAME = 't_warehouse_address'
AND COLUMN_NAME = 'Remark'
);
SET @sql := IF(
@col = 0,
'ALTER TABLE `t_warehouse_address`
ADD COLUMN `Remark` VARCHAR(512) NULL DEFAULT NULL COMMENT ''备注'' AFTER `Sort`',
'SELECT ''t_warehouse_address.Remark already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;