87 lines
5.9 KiB
SQL
87 lines
5.9 KiB
SQL
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购买订单记录';
|