-- ============================================================================= -- migrate_order_operation_log.sql -- 运单操作日志表(业务动作 + 字段级 before/after diff) -- 可重复执行 -- ============================================================================= SET @db := DATABASE(); 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/bindSnapshotVersions/updateAdditionalServices/addFee/pay/preDeclare/downstreamForward/print'', `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;