-- ============================================================================= -- 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;