| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- -- 团队模块数据库创建脚本
- -- 包含所有团队模块相关表的创建语句
- -- 1. 用户推荐关系表 (promotion_user_referrals)
- -- 存储用户与其直接推荐人(直接上级)的关系
- CREATE TABLE IF NOT EXISTS `kku_promotion_user_referrals` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `referrer_id` bigint(20) NOT NULL COMMENT '直接推荐人ID',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_id` (`user_id`),
- KEY `idx_referrer_id` (`referrer_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户直接推荐关系表';
- -- 2. 达人等级表 (promotion_user_talents)
- -- 存储用户的达人等级信息,包括直推人数和团队总人数
- CREATE TABLE IF NOT EXISTS `kku_promotion_user_talents` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `talent_level` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '达人等级:0无,1初级,2中级,3高级,4资深,5顶级',
- `direct_count` int(11) NOT NULL DEFAULT '0' COMMENT '直推人数',
- `promotion_count` int(11) NOT NULL DEFAULT '0' COMMENT '团队总人数',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_id` (`user_id`),
- KEY `idx_talent_level` (`talent_level`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='达人等级表';
- -- 3. 团队收益记录表 (promotion_profits)
- -- 记录团队成员产生的分成收益
- CREATE TABLE IF NOT EXISTS `kku_promotion_profits` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '获得收益的用户ID',
- `promotion_member_id` bigint(20) NOT NULL COMMENT '团队成员ID',
- `source_id` bigint(20) NOT NULL COMMENT '收益来源ID',
- `source_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收益来源类型',
- `item_id` bigint(20) NOT NULL COMMENT '物品ID',
- `profit_amount` int(11) NOT NULL COMMENT '分成收益数量',
- `profit_rate` decimal(5,4) NOT NULL COMMENT '分成比例',
- `relation_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '关系类型:1直推,2间推',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_promotion_member_id` (`promotion_member_id`),
- KEY `idx_source` (`source_type`,`source_id`),
- KEY `idx_relation_type` (`relation_type`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队收益记录表';
- -- 4. 推荐码表 (promotion_referral_codes)
- -- 存储用户的推荐码信息
- CREATE TABLE IF NOT EXISTS `kku_promotion_referral_codes` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `code` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '推荐码',
- `usage_count` int(11) NOT NULL DEFAULT '0' COMMENT '使用次数',
- `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1有效,0无效',
- `expire_time` timestamp NULL DEFAULT NULL COMMENT '过期时间,NULL表示永不过期',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_code` (`code`),
- UNIQUE KEY `idx_user_id` (`user_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推荐码表';
- -- 5. 达人等级配置表 (promotion_talent_configs)
- -- 存储不同达人等级的配置信息
- CREATE TABLE IF NOT EXISTS `kku_promotion_talent_configs` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `level` tinyint(3) unsigned NOT NULL COMMENT '等级',
- `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '等级名称',
- `direct_count_required` int(11) NOT NULL COMMENT '所需直推人数',
- `promotion_count_required` int(11) NOT NULL COMMENT '所需团队总人数',
- `profit_rate` decimal(5,4) NOT NULL COMMENT '间推分成比例',
- `benefits` json DEFAULT NULL COMMENT '等级权益',
- `icon` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '等级图标',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_level` (`level`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='达人等级配置表';
- -- 6. 收益分成规则表 (promotion_profit_rules)
- -- 存储不同来源的收益分成规则
- CREATE TABLE IF NOT EXISTS `kku_promotion_profit_rules` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `source_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源类型',
- `direct_profit_rate` decimal(5,4) NOT NULL COMMENT '直推分成比例',
- `max_indirect_level` int(11) NOT NULL DEFAULT '20' COMMENT '最大间推层级',
- `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1有效,0无效',
- `rules` json DEFAULT NULL COMMENT '特殊规则',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_source_type` (`source_type`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收益分成规则表';
- -- 7. 推荐关系修改记录表 (promotion_referral_changes)
- -- 记录用户推荐关系的修改历史
- CREATE TABLE IF NOT EXISTS `kku_promotion_referral_changes` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `old_referrer_id` bigint(20) DEFAULT NULL COMMENT '旧推荐人ID',
- `new_referrer_id` bigint(20) NOT NULL COMMENT '新推荐人ID',
- `change_time` timestamp NOT NULL COMMENT '修改时间',
- `change_reason` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '修改原因',
- `changed_by` bigint(20) NOT NULL COMMENT '操作人ID',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_change_time` (`change_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='推荐关系修改记录表';
- -- 8. 用户关系缓存表 (promotion_user_relation_cache)
- -- 用于存储用户之间的所有推荐关系(包括上下级关系)
- CREATE TABLE IF NOT EXISTS `kku_promotion_user_relation_cache` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `related_user_id` bigint(20) NOT NULL COMMENT '关联用户ID(上级)',
- `level` tinyint(3) unsigned NOT NULL COMMENT '关系层级:1直接,2间接',
- `path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关系路径,格式:1,2,3',
- `depth` tinyint(3) unsigned NOT NULL COMMENT '层级深度,从1开始',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_relation` (`user_id`,`related_user_id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_related_user_id` (`related_user_id`),
- KEY `idx_level` (`level`),
- KEY `idx_depth` (`depth`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户关系缓存表';
- -- 9. 邀请奖励记录表 (promotion_invite_rewards)
- -- 用于记录用户邀请他人注册时获得的奖励
- CREATE TABLE IF NOT EXISTS `kku_promotion_invite_rewards` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `user_id` bigint(20) NOT NULL COMMENT '获得奖励的用户ID',
- `invited_user_id` bigint(20) NOT NULL COMMENT '被邀请的用户ID',
- `reward_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '奖励类型:item=物品,coin=货币,exp=经验',
- `reward_id` bigint(20) NOT NULL COMMENT '奖励ID(物品ID或货币类型ID)',
- `reward_amount` int(11) NOT NULL COMMENT '奖励数量',
- `reward_source` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'register' COMMENT '奖励来源:register=注册,upgrade=升级,task=任务',
- `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:0=未发放,1=已发放,2=已过期',
- `remark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_invited_user_id` (`invited_user_id`),
- KEY `idx_reward_type` (`reward_type`),
- KEY `idx_reward_source` (`reward_source`),
- KEY `idx_status` (`status`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邀请奖励记录表';
- -- 10. 邀请码使用记录表 (promotion_referral_code_usages)
- -- 用于详细记录每次邀请码的使用情况
- CREATE TABLE IF NOT EXISTS `kku_promotion_referral_code_usages` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `code` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '使用的邀请码',
- `code_owner_id` bigint(20) NOT NULL COMMENT '邀请码所有者用户ID',
- `user_id` bigint(20) NOT NULL COMMENT '使用邀请码的用户ID',
- `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '使用时的IP地址',
- `user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '使用时的用户代理',
- `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态:0=失败,1=成功,2=已撤销',
- `result` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '使用结果描述',
- `remark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
- `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_code` (`code`),
- KEY `idx_code_owner_id` (`code_owner_id`),
- KEY `idx_user_id` (`user_id`),
- KEY `idx_status` (`status`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邀请码使用记录表';
- -- 初始化数据
- -- 1. 达人等级配置数据
- INSERT INTO `kku_promotion_talent_configs` (`level`, `name`, `direct_count_required`, `promotion_count_required`, `profit_rate`, `benefits`) VALUES
- (1, '初级达人', 5, 10, 0.0100, '{"farm_output_bonus": 0.01}'),
- (2, '中级达人', 10, 30, 0.0150, '{"farm_output_bonus": 0.02}'),
- (3, '高级达人', 20, 50, 0.0200, '{"farm_output_bonus": 0.03, "daily_gift": {"item_id": 1001, "amount": 1}}'),
- (4, '资深达人', 30, 100, 0.0250, '{"farm_output_bonus": 0.04, "daily_gift": {"item_id": 1001, "amount": 2}}'),
- (5, '顶级达人', 50, 200, 0.0300, '{"farm_output_bonus": 0.05, "daily_gift": {"item_id": 1001, "amount": 3}, "special_privileges": ["vip_customer_service", "exclusive_avatar_frame"]}');
- -- 2. 收益分成规则数据
- INSERT INTO `kku_promotion_profit_rules` (`source_type`, `direct_profit_rate`, `max_indirect_level`, `status`, `rules`) VALUES
- ('farm_harvest', 0.0500, 20, 1, '{"min_amount": 10, "max_amount": 1000}'),
- ('task_complete', 0.0300, 10, 1, '{"min_amount": 5, "max_amount": 500}'),
- ('item_sell', 0.0200, 5, 1, '{"min_amount": 1, "max_amount": 100, "excluded_items": [1001, 1002]}');
|