liujie
2026-08-04 e9e42b621afdf6ac94f5327ee843b32b10a401b4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- migration-version: 20260803_120000_CREATE_ORDER_PAYMENT_ATTEMPT
USE `tour_guide`;
 
CREATE TABLE IF NOT EXISTS `tour_order_payment_attempt` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Payment attempt primary key',
    `order_id` BIGINT UNSIGNED NOT NULL COMMENT 'Tour order primary key',
    `req_seq_id` VARCHAR(64) NOT NULL COMMENT 'Huifu request sequence',
    `req_date` CHAR(8) NOT NULL COMMENT 'Huifu request date yyyyMMdd',
    `amount` DECIMAL(10,2) NOT NULL COMMENT 'Payment attempt amount',
    `status` VARCHAR(16) NOT NULL DEFAULT 'CREATED' COMMENT 'CREATED or SUCCEEDED',
    `provider_transaction_id` VARCHAR(64) DEFAULT NULL COMMENT 'Huifu transaction id',
    `paid_at` DATETIME DEFAULT NULL COMMENT 'Payment success time',
    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Created time',
    `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Updated time',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_order_payment_attempt_req_seq` (`req_seq_id`),
    UNIQUE KEY `uk_order_payment_attempt_provider_tx` (`provider_transaction_id`),
    KEY `idx_order_payment_attempt_order` (`order_id`, `status`),
    CONSTRAINT `fk_order_payment_attempt_order` FOREIGN KEY (`order_id`) REFERENCES `tour_order` (`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tour order payment attempts';
 
INSERT INTO `sys_schema_migration` (`version`, `description`)
VALUES ('20260803_120000_CREATE_ORDER_PAYMENT_ATTEMPT', 'create payment attempt history for retry and callback idempotency');