|
@@ -0,0 +1,27 @@
|
|
|
|
|
+-- ============================================
|
|
|
|
|
+-- migration-v5.sql
|
|
|
|
|
+-- 邀请文案微信昵称 & 支付渠道切换追溯相关字段
|
|
|
|
|
+-- ============================================
|
|
|
|
|
+
|
|
|
|
|
+-- 1. t_user 补充微信昵称字段(幂等 ALTER)
|
|
|
|
|
+SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_user' AND COLUMN_NAME = 'wechat_nickname');
|
|
|
|
|
+SET @sql = IF(@col_exists = 0, "ALTER TABLE `t_user` ADD COLUMN `wechat_nickname` VARCHAR(128) DEFAULT NULL COMMENT '微信昵称' AFTER `wechat_union_id`", 'SELECT 1');
|
|
|
|
|
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
|
+
|
|
|
|
|
+-- 2. t_payment_order 补充实际支付渠道字段(幂等 ALTER)
|
|
|
|
|
+SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_payment_order' AND COLUMN_NAME = 'paid_channel');
|
|
|
|
|
+SET @sql = IF(@col_exists = 0, "ALTER TABLE `t_payment_order` ADD COLUMN `paid_channel` VARCHAR(20) DEFAULT NULL COMMENT '实际支付渠道:第一次支付成功时的渠道' AFTER `qr_code_url`", 'SELECT 1');
|
|
|
|
|
+PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
|
+
|
|
|
|
|
+-- 3. 支付订单重复支付记录表(切换渠道后多个渠道都支付成功时保留证据)
|
|
|
|
|
+CREATE TABLE IF NOT EXISTS `t_payment_order_extra_payment` (
|
|
|
|
|
+ `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|
|
|
|
+ `order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
|
|
|
|
|
+ `channel` VARCHAR(20) NOT NULL COMMENT '实际支付渠道:WECHAT/ALIPAY',
|
|
|
|
|
+ `trade_no` VARCHAR(64) NOT NULL COMMENT '第三方交易号',
|
|
|
|
|
+ `amount` DECIMAL(10,2) NOT NULL COMMENT '支付金额(元)',
|
|
|
|
|
+ `paid_time` DATETIME NOT NULL COMMENT '支付时间',
|
|
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
|
|
+ KEY `idx_order_no` (`order_no`)
|
|
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='支付订单重复支付记录表';
|