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购买订单记录';