yumi-golang/migrations/019_vip_system.sql
2026-04-29 18:45:52 +08:00

87 lines
5.9 KiB
SQL
Raw Permalink 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 `vip_level_config` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`level` int NOT NULL COMMENT 'VIP等级 1-5',
`level_code` varchar(16) NOT NULL DEFAULT '' COMMENT '等级编码 VIP1-VIP5',
`display_name` varchar(64) NOT NULL DEFAULT '' COMMENT '显示名称',
`enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用',
`duration_days` int NOT NULL DEFAULT '30' COMMENT '售卖时长当前固定30天',
`price_gold` bigint NOT NULL DEFAULT '0' COMMENT '购买价格,金币',
`badge_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '徽章资源ID',
`badge_name` varchar(128) NOT NULL DEFAULT '' COMMENT '徽章名称',
`badge_url` varchar(512) NOT NULL DEFAULT '' COMMENT '徽章资源URL',
`avatar_frame_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '头像框资源ID',
`avatar_frame_name` varchar(128) NOT NULL DEFAULT '' COMMENT '头像框名称',
`avatar_frame_url` varchar(512) NOT NULL DEFAULT '' COMMENT '头像框资源URL',
`entry_effect_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '进场特效资源ID',
`entry_effect_name` varchar(128) NOT NULL DEFAULT '' COMMENT '进场特效名称',
`entry_effect_url` varchar(512) NOT NULL DEFAULT '' COMMENT '进场特效资源URL',
`chat_bubble_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '聊天气泡资源ID',
`chat_bubble_name` varchar(128) NOT NULL DEFAULT '' COMMENT '聊天气泡名称',
`chat_bubble_url` varchar(512) NOT NULL DEFAULT '' COMMENT '聊天气泡资源URL',
`float_picture_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '飘窗资源ID',
`float_picture_name` varchar(128) NOT NULL DEFAULT '' COMMENT '飘窗名称',
`float_picture_url` varchar(512) NOT NULL DEFAULT '' COMMENT '飘窗资源URL',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vip_level_config` (`sys_origin`, `level`),
KEY `idx_vip_level_config_sys_origin` (`sys_origin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='VIP等级配置';
CREATE TABLE IF NOT EXISTS `user_vip_state` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`user_id` bigint NOT NULL COMMENT '用户ID',
`level` int NOT NULL DEFAULT '0' COMMENT '当前VIP等级',
`level_code` varchar(16) NOT NULL DEFAULT '' COMMENT '当前等级编码',
`display_name` varchar(64) NOT NULL DEFAULT '' COMMENT '当前显示名称',
`status` varchar(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态 ACTIVE/EXPIRED',
`start_at` datetime(3) DEFAULT NULL COMMENT '开始时间',
`expire_at` datetime(3) DEFAULT NULL COMMENT '到期时间',
`badge_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '当前徽章资源ID',
`badge_name` varchar(128) NOT NULL DEFAULT '' COMMENT '当前徽章名称',
`badge_url` varchar(512) NOT NULL DEFAULT '' COMMENT '当前徽章资源URL',
`avatar_frame_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '当前头像框资源ID',
`avatar_frame_name` varchar(128) NOT NULL DEFAULT '' COMMENT '当前头像框名称',
`avatar_frame_url` varchar(512) NOT NULL DEFAULT '' COMMENT '当前头像框资源URL',
`entry_effect_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '当前进场特效资源ID',
`entry_effect_name` varchar(128) NOT NULL DEFAULT '' COMMENT '当前进场特效名称',
`entry_effect_url` varchar(512) NOT NULL DEFAULT '' COMMENT '当前进场特效资源URL',
`chat_bubble_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '当前聊天气泡资源ID',
`chat_bubble_name` varchar(128) NOT NULL DEFAULT '' COMMENT '当前聊天气泡名称',
`chat_bubble_url` varchar(512) NOT NULL DEFAULT '' COMMENT '当前聊天气泡资源URL',
`float_picture_resource_id` bigint NOT NULL DEFAULT '0' COMMENT '当前飘窗资源ID',
`float_picture_name` varchar(128) NOT NULL DEFAULT '' COMMENT '当前飘窗名称',
`float_picture_url` varchar(512) NOT NULL DEFAULT '' COMMENT '当前飘窗资源URL',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_vip_state` (`sys_origin`, `user_id`),
KEY `idx_user_vip_state_lookup` (`sys_origin`, `user_id`, `status`),
KEY `idx_user_vip_expire` (`expire_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户VIP当前状态';
CREATE TABLE IF NOT EXISTS `vip_order_record` (
`id` bigint NOT NULL COMMENT '主键ID',
`event_id` varchar(128) NOT NULL COMMENT '钱包幂等事件ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`user_id` bigint NOT NULL COMMENT '用户ID',
`order_type` varchar(32) NOT NULL DEFAULT '' COMMENT '订单类型 PURCHASE/RENEW/UPGRADE',
`from_level` int NOT NULL DEFAULT '0' COMMENT '购买前等级',
`to_level` int NOT NULL DEFAULT '0' COMMENT '目标等级',
`duration_days` int NOT NULL DEFAULT '30' COMMENT '购买时长',
`original_price_gold` bigint NOT NULL DEFAULT '0' COMMENT '目标等级原价',
`paid_gold` bigint NOT NULL DEFAULT '0' COMMENT '实际支付金币',
`status` varchar(32) NOT NULL DEFAULT 'INIT' COMMENT '订单状态 INIT/SUCCESS/FAILED',
`start_at` datetime(3) DEFAULT NULL COMMENT '权益开始时间',
`expire_at` datetime(3) DEFAULT NULL COMMENT '权益到期时间',
`error_message` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vip_order_event` (`event_id`),
KEY `idx_vip_order_user_time` (`sys_origin`, `user_id`, `create_time`),
KEY `idx_vip_order_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='VIP购买订单记录';