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