198 lines
13 KiB
SQL
198 lines
13 KiB
SQL
CREATE TABLE IF NOT EXISTS voice_room_rocket_config (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
timezone VARCHAR(64) NOT NULL DEFAULT 'Asia/Riyadh' COMMENT '业务时区',
|
||
max_level INT NOT NULL DEFAULT 6 COMMENT '最大等级',
|
||
ranking_top_limit INT NOT NULL DEFAULT 100 COMMENT '火箭王榜单展示人数',
|
||
reward_record_keep_days INT NOT NULL DEFAULT 35 COMMENT '用户奖励记录展示天数',
|
||
broadcast_duration_seconds INT NOT NULL DEFAULT 7 COMMENT '发射广播展示秒数',
|
||
in_room_reward_delay_seconds INT NOT NULL DEFAULT 10 COMMENT '在房间奖励延迟窗口秒数',
|
||
energy_rule_json JSON DEFAULT NULL COMMENT '礼物折算规则',
|
||
rule_text JSON DEFAULT NULL COMMENT '规则说明多语言文案',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_config (sys_origin)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭系统配置';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_level_config (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
level INT NOT NULL COMMENT '火箭等级,Lv.1-Lv.6',
|
||
need_energy BIGINT NOT NULL COMMENT '本级发射所需能量',
|
||
shake_threshold_percent DECIMAL(8,4) NOT NULL DEFAULT 0 COMMENT '抖动阈值百分比',
|
||
preview_rocket_url VARCHAR(512) DEFAULT NULL COMMENT '预览火箭资源URL',
|
||
rocket_icon_url VARCHAR(512) DEFAULT NULL COMMENT '火箭图标资源URL',
|
||
rocket_animation_url VARCHAR(512) DEFAULT NULL COMMENT '火箭发射动画资源URL',
|
||
progress_bar_url VARCHAR(512) DEFAULT NULL COMMENT '进度条资源URL(历史字段)',
|
||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序值,升序',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_level (sys_origin, level)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭等级配置';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_reward_config (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
level INT NOT NULL COMMENT '适用等级',
|
||
reward_scene VARCHAR(32) NOT NULL COMMENT 'TOP1/IGNITE/IN_ROOM',
|
||
reward_type VARCHAR(32) NOT NULL COMMENT 'GOLD/MOUNT/AVATAR_FRAME/CHAT_BUBBLE/VIP_CARD/GIFT/BADGE/NONE',
|
||
reward_item_id BIGINT DEFAULT NULL COMMENT '道具、礼物、权益等资源ID',
|
||
reward_name VARCHAR(128) NOT NULL COMMENT '奖励名称',
|
||
reward_cover VARCHAR(512) DEFAULT NULL COMMENT '奖励封面URL',
|
||
reward_amount BIGINT NOT NULL DEFAULT 1 COMMENT '金币数量或道具数量/天数',
|
||
expire_days INT DEFAULT NULL COMMENT '时效类奖励有效天数',
|
||
reward_copies INT NOT NULL DEFAULT 1 COMMENT 'IN_ROOM 本奖励每次发射可发放份数',
|
||
weight INT NOT NULL DEFAULT 0 COMMENT 'IN_ROOM 随机抽取权重,小于等于0按1处理',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序值,升序',
|
||
enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
KEY idx_voice_room_rocket_reward_scene (sys_origin, level, reward_scene, enabled)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭奖励配置';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_status (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL DEFAULT 1 COMMENT '当天第几轮火箭',
|
||
current_level INT NOT NULL DEFAULT 1 COMMENT '当前等级',
|
||
current_energy BIGINT NOT NULL DEFAULT 0 COMMENT '当前等级已累计能量',
|
||
need_energy BIGINT NOT NULL COMMENT '当前等级所需能量',
|
||
status VARCHAR(32) NOT NULL COMMENT 'CHARGING/LAUNCHING',
|
||
level_start_time DATETIME NOT NULL COMMENT '当前等级开始时间',
|
||
last_event_time DATETIME DEFAULT NULL COMMENT '最近一次有效送礼事件时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_status (sys_origin, room_id, day_key)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭当前状态';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_level_round (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL COMMENT '当天第几轮火箭',
|
||
level INT NOT NULL COMMENT '火箭等级',
|
||
need_energy BIGINT NOT NULL COMMENT '本级所需能量',
|
||
final_energy BIGINT NOT NULL DEFAULT 0 COMMENT '本级最终累计能量',
|
||
status VARCHAR(32) NOT NULL COMMENT 'CHARGING/LAUNCHED',
|
||
top1_user_id BIGINT DEFAULT NULL COMMENT '本级贡献第一用户ID',
|
||
ignite_user_id BIGINT DEFAULT NULL COMMENT '点火用户ID',
|
||
reach_time DATETIME DEFAULT NULL COMMENT '能量达标时间',
|
||
launch_time DATETIME DEFAULT NULL COMMENT '发射时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_level_round (sys_origin, room_id, day_key, round_no, level),
|
||
KEY idx_voice_room_rocket_level_round_room (sys_origin, room_id, day_key, round_no)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭每轮每级快照';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_contribution (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL COMMENT '当天第几轮火箭',
|
||
level INT NOT NULL COMMENT '火箭等级',
|
||
user_id BIGINT NOT NULL COMMENT '贡献用户ID',
|
||
score_energy BIGINT NOT NULL DEFAULT 0 COMMENT '计入榜单的能量值',
|
||
gift_count INT NOT NULL DEFAULT 0 COMMENT '计入火箭的送礼次数',
|
||
first_contribute_time DATETIME NOT NULL COMMENT '首次贡献时间',
|
||
last_contribute_time DATETIME NOT NULL COMMENT '最近贡献时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_contribution_user (sys_origin, room_id, day_key, round_no, level, user_id),
|
||
KEY idx_voice_room_rocket_contribution_rank (sys_origin, room_id, day_key, round_no, level, score_energy, last_contribute_time)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭贡献榜';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_gift_event_log (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
track_id VARCHAR(128) NOT NULL COMMENT '送礼事件唯一追踪ID',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
send_user_id BIGINT NOT NULL COMMENT '送礼用户ID',
|
||
gift_id BIGINT DEFAULT NULL COMMENT '礼物ID',
|
||
gift_type VARCHAR(32) DEFAULT NULL COMMENT '礼物类型',
|
||
gift_tab VARCHAR(64) DEFAULT NULL COMMENT '礼物分类',
|
||
raw_energy BIGINT NOT NULL DEFAULT 0 COMMENT '原始能量值',
|
||
accepted_energy BIGINT NOT NULL DEFAULT 0 COMMENT '实际计入火箭能量值',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL COMMENT '当天第几轮火箭',
|
||
level INT NOT NULL COMMENT '火箭等级',
|
||
status VARCHAR(32) NOT NULL COMMENT 'IGNORED/SUCCESS/FAILED',
|
||
raw_payload MEDIUMTEXT COMMENT '原始消息内容',
|
||
error_message VARCHAR(1024) DEFAULT NULL COMMENT '失败原因',
|
||
event_time DATETIME NOT NULL COMMENT '事件发生时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_track (track_id),
|
||
KEY idx_voice_room_rocket_event_room (sys_origin, room_id, day_key, round_no, level)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭送礼事件日志';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_launch (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
launch_no VARCHAR(64) NOT NULL COMMENT '发射编号',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
room_account VARCHAR(64) DEFAULT NULL COMMENT '房间号',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL COMMENT '当天第几轮火箭',
|
||
level INT NOT NULL COMMENT '火箭等级',
|
||
final_energy BIGINT NOT NULL COMMENT '发射时最终能量',
|
||
top1_user_id BIGINT DEFAULT NULL COMMENT '贡献第一用户ID',
|
||
ignite_user_id BIGINT DEFAULT NULL COMMENT '点火用户ID',
|
||
in_room_snapshot_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '在房用户快照状态,PENDING/SUCCESS/FAILED',
|
||
launch_time DATETIME NOT NULL COMMENT '发射时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_launch_no (launch_no),
|
||
UNIQUE KEY uk_voice_room_rocket_launch_level (sys_origin, room_id, day_key, round_no, level),
|
||
KEY idx_voice_room_rocket_launch_room (sys_origin, room_id, launch_time)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭发射记录';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_reward_record (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
launch_id BIGINT NOT NULL COMMENT '发射记录ID',
|
||
launch_no VARCHAR(64) NOT NULL COMMENT '发射编号',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
day_key VARCHAR(16) NOT NULL COMMENT 'UTC+3 业务日 yyyyMMdd',
|
||
round_no INT NOT NULL COMMENT '当天第几轮火箭',
|
||
level INT NOT NULL COMMENT '火箭等级',
|
||
user_id BIGINT NOT NULL COMMENT '获奖用户ID',
|
||
reward_scene VARCHAR(32) NOT NULL COMMENT '奖励场景,TOP1/IGNITE/IN_ROOM',
|
||
reward_config_id BIGINT NOT NULL COMMENT '奖励配置ID',
|
||
reward_type VARCHAR(32) NOT NULL COMMENT '奖励类型,GOLD/MOUNT/AVATAR_FRAME/CHAT_BUBBLE/VIP_CARD/GIFT/BADGE/NONE',
|
||
reward_item_id BIGINT DEFAULT NULL COMMENT '奖励资源ID',
|
||
reward_name VARCHAR(128) NOT NULL COMMENT '奖励名称',
|
||
reward_cover VARCHAR(512) DEFAULT NULL COMMENT '奖励封面URL',
|
||
reward_amount BIGINT NOT NULL DEFAULT 1 COMMENT '金币数量或道具数量/天数',
|
||
expire_days INT DEFAULT NULL COMMENT '时效类奖励有效天数',
|
||
grant_event_id VARCHAR(128) NOT NULL COMMENT '发奖幂等事件ID',
|
||
grant_status VARCHAR(32) NOT NULL COMMENT 'PENDING/SUCCESS/FAILED',
|
||
popup_status VARCHAR(32) NOT NULL DEFAULT 'UNREAD' COMMENT 'UNREAD/READ',
|
||
error_message VARCHAR(1024) DEFAULT NULL COMMENT '发奖失败原因',
|
||
grant_time DATETIME DEFAULT NULL COMMENT '发奖完成时间',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
UNIQUE KEY uk_voice_room_rocket_reward_event (grant_event_id),
|
||
KEY idx_voice_room_rocket_reward_user (sys_origin, user_id, create_time),
|
||
KEY idx_voice_room_rocket_reward_launch (launch_id, user_id),
|
||
KEY idx_voice_room_rocket_reward_retry (grant_status, update_time)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭奖励记录';
|
||
|
||
CREATE TABLE IF NOT EXISTS voice_room_rocket_audience_snapshot (
|
||
id BIGINT NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||
launch_id BIGINT NOT NULL COMMENT '发射记录ID',
|
||
sys_origin VARCHAR(32) NOT NULL COMMENT '系统来源',
|
||
room_id BIGINT NOT NULL COMMENT '房间ID',
|
||
user_id BIGINT NOT NULL COMMENT '在房用户ID',
|
||
last_seen_time DATETIME NOT NULL COMMENT '最近在线时间',
|
||
selected TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否被抽中发放在房奖励',
|
||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
UNIQUE KEY uk_voice_room_rocket_audience (launch_id, user_id),
|
||
KEY idx_voice_room_rocket_audience_launch (launch_id, selected)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='语音房火箭在房间用户快照';
|