60 lines
4.5 KiB
SQL
60 lines
4.5 KiB
SQL
-- thirdparty 支付任务事实表与执行尝试表。
|
|
-- Quartz 是唯一周期触发入口;任务表只保存可恢复事实、租约和幂等状态。
|
|
CREATE TABLE IF NOT EXISTS `third_payment_task`
|
|
(
|
|
`id` bigint NOT NULL COMMENT '任务主键',
|
|
`tenant_id` bigint NOT NULL COMMENT '租户ID',
|
|
`task_type` varchar(48) NOT NULL COMMENT '任务类型编码',
|
|
`task_key` varchar(192) NOT NULL COMMENT '租户内稳定幂等任务键',
|
|
`pay_order_id` bigint DEFAULT NULL COMMENT 'third_pay_order主键',
|
|
`fz_order_id` bigint DEFAULT NULL COMMENT 'third_fz_order主键',
|
|
`aggregate_session_id` bigint DEFAULT NULL COMMENT 'third_aggregate_pay_session主键',
|
|
`pay_no` varchar(128) DEFAULT NULL COMMENT '平台支付单号',
|
|
`refund_no` varchar(128) DEFAULT NULL COMMENT '平台退款单号',
|
|
`fz_no` varchar(128) DEFAULT NULL COMMENT '平台分账单号',
|
|
`aggregate_no` varchar(128) DEFAULT NULL COMMENT '聚合会话单号',
|
|
`status` varchar(16) NOT NULL COMMENT '任务状态:READY/PROCESSING/RETRY/SUCCESS/FAILED/ALERT/CANCELLED',
|
|
`next_run_time` datetime NOT NULL COMMENT '下一次可执行时间',
|
|
`priority` int NOT NULL DEFAULT 0 COMMENT '任务优先级,数值越大越优先',
|
|
`lease_owner` varchar(128) DEFAULT NULL COMMENT 'Worker实例标识',
|
|
`lease_token` varchar(64) DEFAULT NULL COMMENT '本次执行租约令牌',
|
|
`lease_expire_time` datetime DEFAULT NULL COMMENT '租约失效时间',
|
|
`attempt_count` int NOT NULL DEFAULT 0 COMMENT '累计执行次数',
|
|
`last_external_status` varchar(64) DEFAULT NULL COMMENT '最近一次渠道状态',
|
|
`last_error_code` varchar(128) DEFAULT NULL COMMENT '最近一次错误码',
|
|
`last_error_message` varchar(1024) DEFAULT NULL COMMENT '最近一次错误摘要',
|
|
`finished_time` datetime DEFAULT NULL COMMENT '任务终态时间',
|
|
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人',
|
|
`create_time` datetime NOT NULL COMMENT '创建时间',
|
|
`update_by` varchar(64) DEFAULT NULL COMMENT '修改人',
|
|
`update_time` datetime NOT NULL COMMENT '更新时间',
|
|
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_third_payment_task_tenant_key` (`tenant_id`, `task_key`),
|
|
KEY `idx_third_payment_task_due` (`status`, `next_run_time`, `priority`, `id`),
|
|
KEY `idx_third_payment_task_lease` (`status`, `lease_expire_time`),
|
|
KEY `idx_third_payment_task_pay_no` (`tenant_id`, `pay_no`),
|
|
KEY `idx_third_payment_task_fz_no` (`tenant_id`, `fz_no`)
|
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '第三方支付任务事实';
|
|
|
|
CREATE TABLE IF NOT EXISTS `third_payment_task_attempt`
|
|
(
|
|
`id` bigint NOT NULL COMMENT '尝试记录主键',
|
|
`task_id` bigint NOT NULL COMMENT '任务主键',
|
|
`tenant_id` bigint NOT NULL COMMENT '租户ID',
|
|
`attempt_no` int NOT NULL COMMENT '任务内尝试序号',
|
|
`trigger_source` varchar(32) NOT NULL COMMENT '触发来源:QUARTZ/CALLBACK/SYNC/MANUAL',
|
|
`worker_id` varchar(128) DEFAULT NULL COMMENT 'Worker实例标识',
|
|
`lease_token` varchar(64) DEFAULT NULL COMMENT '执行租约令牌',
|
|
`request_snapshot` text DEFAULT NULL COMMENT '脱敏请求快照',
|
|
`response_snapshot` text DEFAULT NULL COMMENT '脱敏响应快照',
|
|
`external_status` varchar(64) DEFAULT NULL COMMENT '渠道状态',
|
|
`error_code` varchar(128) DEFAULT NULL COMMENT '错误码',
|
|
`error_message` varchar(1024) DEFAULT NULL COMMENT '错误摘要',
|
|
`started_time` datetime NOT NULL COMMENT '开始时间',
|
|
`finished_time` datetime DEFAULT NULL COMMENT '结束时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_third_payment_attempt_task` (`task_id`, `attempt_no`),
|
|
KEY `idx_third_payment_attempt_tenant_time` (`tenant_id`, `started_time`)
|
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '第三方支付任务执行尝试';
|