2026-06-16 17:00:06 +08:00

44 lines
2.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE IF NOT EXISTS cp_weekly_rank_configs (
app_code VARCHAR(32) NOT NULL DEFAULT 'lalu' COMMENT '应用编码',
activity_code VARCHAR(64) NOT NULL DEFAULT 'cp_weekly_rank' COMMENT '活动编码',
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
relation_type VARCHAR(32) NOT NULL DEFAULT 'cp' COMMENT '关系类型,当前固定 cp',
top_count INT NOT NULL DEFAULT 3 COMMENT '结算 Top 数量',
updated_by_admin_id BIGINT NOT NULL DEFAULT 0 COMMENT '最后更新管理员',
created_at_ms BIGINT NOT NULL COMMENT '创建时间UTC epoch ms',
updated_at_ms BIGINT NOT NULL COMMENT '更新时间UTC epoch ms',
PRIMARY KEY (app_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CP 周榜配置表';
CREATE TABLE IF NOT EXISTS cp_weekly_rank_rewards (
app_code VARCHAR(32) NOT NULL DEFAULT 'lalu' COMMENT '应用编码',
rank_no INT NOT NULL COMMENT '名次',
resource_group_id BIGINT NOT NULL COMMENT '奖励资源组 ID',
created_at_ms BIGINT NOT NULL COMMENT '创建时间UTC epoch ms',
updated_at_ms BIGINT NOT NULL COMMENT '更新时间UTC epoch ms',
PRIMARY KEY (app_code, rank_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CP 周榜名次奖励资源组表';
CREATE TABLE IF NOT EXISTS cp_weekly_rank_settlements (
app_code VARCHAR(32) NOT NULL DEFAULT 'lalu' COMMENT '应用编码',
settlement_id VARCHAR(96) NOT NULL COMMENT '发奖记录 ID',
period_start_ms BIGINT NOT NULL COMMENT '周周期开始UTC epoch ms',
period_end_ms BIGINT NOT NULL COMMENT '周周期结束UTC epoch ms',
rank_no INT NOT NULL COMMENT '名次',
relationship_id VARCHAR(128) NOT NULL COMMENT '获奖 CP 关系 ID',
user_id BIGINT NOT NULL COMMENT '获奖用户 ID',
score BIGINT NOT NULL DEFAULT 0 COMMENT '关系周榜分数',
resource_group_id BIGINT NOT NULL COMMENT '发放资源组 ID',
wallet_command_id VARCHAR(192) NOT NULL COMMENT 'wallet 发奖幂等键',
wallet_grant_id VARCHAR(128) NOT NULL DEFAULT '' COMMENT 'wallet grant ID',
status VARCHAR(32) NOT NULL COMMENT 'pending/running/granted/failed',
failure_reason VARCHAR(512) NOT NULL DEFAULT '' COMMENT '失败原因',
attempt_count INT NOT NULL DEFAULT 0 COMMENT '尝试次数',
created_at_ms BIGINT NOT NULL COMMENT '创建时间UTC epoch ms',
updated_at_ms BIGINT NOT NULL COMMENT '更新时间UTC epoch ms',
PRIMARY KEY (app_code, settlement_id),
UNIQUE KEY uk_cp_weekly_rank_period_user (app_code, period_start_ms, rank_no, relationship_id, user_id),
UNIQUE KEY uk_cp_weekly_rank_wallet_command (app_code, wallet_command_id),
KEY idx_cp_weekly_rank_pending (app_code, period_start_ms, period_end_ms, status, updated_at_ms)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CP 周榜发奖事实表';