feat: close overseas wallet and pallet cost flow

This commit is contained in:
2026-09-05 22:26:25 +08:00
parent f62283fb7f
commit 5fbd2bbd04
69 changed files with 1598 additions and 53 deletions
+32
View File
@@ -538,3 +538,35 @@ CREATE TABLE IF NOT EXISTS fin_wallet_hold (
CONSTRAINT chk_fin_wallet_hold_amount CHECK (amount > 0 AND actual_frozen_amount >= 0 AND credit_frozen_amount >= 0 AND amount=actual_frozen_amount+credit_frozen_amount),
CONSTRAINT chk_fin_wallet_hold_status CHECK (status IN ('FROZEN','SETTLED','RELEASED'))
) ENGINE=InnoDB COMMENT='客户资金冻结及结算生命周期';
CREATE TABLE IF NOT EXISTS fin_wallet_command_inbox (
event_id VARCHAR(64) NOT NULL COMMENT '海外资金指令事件ID',
event_type VARCHAR(96) NOT NULL COMMENT '事件类型',
payload_hash CHAR(64) NOT NULL COMMENT '规范化载荷SHA-256',
payload_json JSON NOT NULL COMMENT '冻结事件信封',
status VARCHAR(16) NOT NULL COMMENT 'PROCESSING、SUCCEEDED或FAILED',
result_json JSON NULL COMMENT '最终资金执行结果',
received_at DATETIME(3) NOT NULL COMMENT '接收时间',
processed_at DATETIME(3) NULL COMMENT '处理完成时间',
PRIMARY KEY (event_id),
KEY idx_fin_wallet_command_status (status,received_at)
) ENGINE=InnoDB COMMENT='跨区客户资金指令幂等收件箱';
CREATE TABLE IF NOT EXISTS fin_wallet_event_outbox (
event_id VARCHAR(64) NOT NULL COMMENT '资金结果事件ID',
event_key VARCHAR(160) NOT NULL COMMENT '业务幂等键',
payload_json JSON NOT NULL COMMENT '完整事件信封',
status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING、SENDING、PUBLISHED或DEAD',
retry_count INT NOT NULL DEFAULT 0 COMMENT '失败次数',
next_retry_at DATETIME(3) NOT NULL COMMENT '下次投递时间',
locked_by VARCHAR(128) NULL COMMENT '租约持有者',
locked_at DATETIME(3) NULL COMMENT '租约时间',
published_at DATETIME(3) NULL COMMENT '投递完成时间',
last_error VARCHAR(1000) NULL COMMENT '最后失败摘要',
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (event_id),
UNIQUE KEY uk_fin_wallet_event_key (event_key),
KEY idx_fin_wallet_event_publish (status,next_retry_at,created_at)
) ENGINE=InnoDB COMMENT='国内Finance到海外资金结果可靠发送箱';