31 lines
2.0 KiB
SQL
31 lines
2.0 KiB
SQL
SET NAMES utf8mb4;
|
||||
|
|
USE baiyue_firstleg;
|
|||
|
|
|
|||
|
|
-- 既有二期数据库增量:先确保 phase2-inbound-schema.sql 中的测量和幂等表已存在。
|
|||
|
|
CREATE TABLE IF NOT EXISTS fl_third_party_call_log (
|
|||
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '第三方调用日志ID(雪花ID)',
|
|||
|
|
tenant_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '识别出的租户ID,未知应用为0',
|
|||
|
|
app_key VARCHAR(128) NULL COMMENT '第三方应用标识',
|
|||
|
|
signature_subject VARCHAR(128) NULL COMMENT '签名主体快照',
|
|||
|
|
request_method VARCHAR(8) NOT NULL COMMENT 'HTTP方法',
|
|||
|
|
request_path VARCHAR(255) NOT NULL COMMENT '签名使用的规范路径',
|
|||
|
|
request_timestamp VARCHAR(32) NULL COMMENT '请求头Unix毫秒时间戳原值',
|
|||
|
|
nonce VARCHAR(128) NULL COMMENT '请求Nonce',
|
|||
|
|
idempotency_key VARCHAR(128) NULL COMMENT 'HTTP幂等键,查询接口为空',
|
|||
|
|
idempotency_anchor TINYINT UNSIGNED NULL COMMENT '签名通过后首个请求为1,重复调用为空',
|
|||
|
|
signature_value VARCHAR(128) NULL COMMENT '第三方签名原值',
|
|||
|
|
request_hash CHAR(64) NOT NULL COMMENT '原始请求体SHA-256小写十六进制',
|
|||
|
|
raw_payload LONGTEXT NOT NULL COMMENT '未经重新序列化的UTF-8原始请求体',
|
|||
|
|
processing_status VARCHAR(16) NOT NULL COMMENT 'PROCESSING、ACCEPTED或REJECTED',
|
|||
|
|
result_code VARCHAR(32) NULL COMMENT '统一响应业务码',
|
|||
|
|
result_message VARCHAR(1000) NULL COMMENT '处理结果或失败原因',
|
|||
|
|
result_json JSON NULL COMMENT '首次成功结果快照',
|
|||
|
|
requested_at DATETIME(3) NOT NULL COMMENT '服务端接收时间',
|
|||
|
|
processed_at DATETIME(3) NULL COMMENT '处理完成时间',
|
|||
|
|
PRIMARY KEY (id),
|
|||
|
|
KEY idx_third_call_app_time (tenant_id, app_key, requested_at),
|
|||
|
|
KEY idx_third_call_idempotency (tenant_id, app_key, idempotency_key),
|
|||
|
|
KEY idx_third_call_nonce (tenant_id, app_key, nonce),
|
|||
|
|
UNIQUE KEY uk_third_call_idempotency_owner (tenant_id, app_key, idempotency_key, idempotency_anchor)
|
|||
|
|
) ENGINE=InnoDB COMMENT='第三方测量开放接口原始请求、签名主体和处理结果留档';
|