aslan-server/rc-service/rc-service-other/docs/room_red_packet_tables.sql
2025-11-26 10:35:53 +08:00

64 lines
3.1 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 `room_red_packet` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
`packet_id` VARCHAR(32) UNIQUE NOT NULL COMMENT '红包IDUUID',
`room_id` BIGINT NOT NULL COMMENT '房间ID',
`user_id` BIGINT NOT NULL COMMENT '发起人ID',
`packet_type` TINYINT NOT NULL COMMENT '红包类型1-固定金额 2-拼手气',
`source_type` TINYINT NOT NULL DEFAULT 1 COMMENT '来源类型1-用户红包 2-平台红包',
`total_amount` BIGINT NOT NULL COMMENT '总金额(分)',
`total_count` INT NOT NULL COMMENT '红包总个数',
`remain_amount` BIGINT NOT NULL COMMENT '剩余金额(分)',
`remain_count` INT NOT NULL COMMENT '剩余个数',
`expire_minutes` INT NOT NULL COMMENT '过期分钟数1/3/5',
`expire_time` DATETIME NOT NULL COMMENT '过期时间',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态1-进行中 2-已抢完 3-已过期',
`refund_status` TINYINT DEFAULT 0 COMMENT '退款状态0-未退 1-已退 2-无需退款',
`is_broadcast` TINYINT DEFAULT 0 COMMENT '是否触发全服推送0-否 1-是10000+金币)',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX `idx_room_id` (`room_id`),
INDEX `idx_user_id` (`user_id`),
INDEX `idx_expire_time` (`expire_time`, `status`),
INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房间红包主表';
-- 房间红包领取记录表
CREATE TABLE `room_red_packet_record` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
`record_id` VARCHAR(32) UNIQUE NOT NULL COMMENT '记录IDUUID',
`packet_id` VARCHAR(32) NOT NULL COMMENT '红包ID',
`user_id` BIGINT NOT NULL COMMENT '领取人ID',
`amount` BIGINT NOT NULL COMMENT '领取金额(分)',
`grab_time` DATETIME NOT NULL COMMENT '抢红包时间',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
UNIQUE KEY `uk_packet_user` (`packet_id`, `user_id`) COMMENT '防止重复领取',
INDEX `idx_packet_id` (`packet_id`),
INDEX `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房间红包领取记录表';
-- 房间红包异常日志表(可选,用于补偿机制)
CREATE TABLE `room_red_packet_error_log` (
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
`packet_id` VARCHAR(32) NOT NULL COMMENT '红包ID',
`user_id` BIGINT COMMENT '用户ID',
`error_type` VARCHAR(50) NOT NULL COMMENT '异常类型',
`error_msg` TEXT COMMENT '异常信息',
`retry_count` INT DEFAULT 0 COMMENT '重试次数',
`status` TINYINT DEFAULT 0 COMMENT '状态0-待处理 1-已处理',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX `idx_packet_id` (`packet_id`),
INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='房间红包异常日志表';