create.sql 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. -- URS推广模块数据库创建脚本
  2. -- 创建时间: 2025-06-14
  3. -- 版本: v1.0.0
  4. -- 1. URS用户推荐关系表
  5. CREATE TABLE `kku_urs_promotion_user_referrals` (
  6. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  7. `urs_user_id` bigint unsigned NOT NULL COMMENT 'URS用户ID(核心)',
  8. `user_id` bigint unsigned NOT NULL COMMENT '农场用户ID(辅助)',
  9. `urs_referrer_id` bigint unsigned NOT NULL COMMENT 'URS推荐人ID(核心)',
  10. `referrer_id` bigint unsigned NOT NULL COMMENT '农场推荐人ID(辅助)',
  11. `referral_code` varchar(32) DEFAULT NULL COMMENT '使用的推荐码(历史记录)',
  12. `referral_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '推荐时间',
  13. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1有效,0无效',
  14. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  15. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  16. PRIMARY KEY (`id`),
  17. UNIQUE KEY `uk_urs_user_id` (`urs_user_id`),
  18. UNIQUE KEY `uk_user_id` (`user_id`),
  19. KEY `idx_urs_referrer_id` (`urs_referrer_id`),
  20. KEY `idx_referrer_id` (`referrer_id`),
  21. KEY `idx_referral_code` (`referral_code`),
  22. KEY `idx_referral_time` (`referral_time`),
  23. KEY `idx_status` (`status`)
  24. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS用户推荐关系表';
  25. -- 2. URS达人等级表
  26. CREATE TABLE `kku_urs_promotion_user_talents` (
  27. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  28. `urs_user_id` bigint unsigned NOT NULL COMMENT 'URS用户ID(核心)',
  29. `user_id` bigint unsigned NOT NULL COMMENT '农场用户ID(辅助)',
  30. `talent_level` tinyint NOT NULL DEFAULT '0' COMMENT 'URS达人等级:0无,1初级,2中级,3高级,4资深,5顶级',
  31. `direct_count` int NOT NULL DEFAULT '0' COMMENT '直推人数',
  32. `promotion_count` int NOT NULL DEFAULT '0' COMMENT '团队总人数',
  33. `last_level_update_time` timestamp NULL DEFAULT NULL COMMENT '最后等级更新时间',
  34. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  35. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  36. PRIMARY KEY (`id`),
  37. UNIQUE KEY `uk_urs_user_id` (`urs_user_id`),
  38. UNIQUE KEY `uk_user_id` (`user_id`),
  39. KEY `idx_talent_level` (`talent_level`),
  40. KEY `idx_direct_count` (`direct_count`),
  41. KEY `idx_promotion_count` (`promotion_count`)
  42. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS达人等级表';
  43. -- 3. URS团队收益记录表
  44. CREATE TABLE `kku_urs_promotion_profits` (
  45. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  46. `urs_user_id` bigint unsigned NOT NULL COMMENT '获得收益的URS用户ID(核心)',
  47. `user_id` bigint unsigned NOT NULL COMMENT '获得收益的农场用户ID(辅助)',
  48. `urs_promotion_member_id` bigint unsigned NOT NULL COMMENT '团队成员URS用户ID(核心)',
  49. `promotion_member_id` bigint unsigned NOT NULL COMMENT '团队成员农场用户ID(辅助)',
  50. `source_id` bigint unsigned NOT NULL COMMENT '收益来源ID',
  51. `source_type` varchar(32) NOT NULL COMMENT '收益来源类型',
  52. `relation_type` varchar(16) NOT NULL COMMENT '关系类型:direct直推,indirect间推',
  53. `relation_level` tinyint NOT NULL DEFAULT '1' COMMENT '推荐层级:1直推,2-20间推',
  54. `original_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '原始收益金额',
  55. `profit_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '分成收益金额',
  56. `profit_rate` decimal(8,6) NOT NULL DEFAULT '0.000000' COMMENT '分成比例',
  57. `talent_level` tinyint NOT NULL DEFAULT '0' COMMENT '获得收益时的达人等级',
  58. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1正常,0取消',
  59. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  60. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  61. PRIMARY KEY (`id`),
  62. KEY `idx_urs_user_id` (`urs_user_id`),
  63. KEY `idx_user_id` (`user_id`),
  64. KEY `idx_urs_promotion_member_id` (`urs_promotion_member_id`),
  65. KEY `idx_promotion_member_id` (`promotion_member_id`),
  66. KEY `idx_source` (`source_type`,`source_id`),
  67. KEY `idx_relation_type` (`relation_type`),
  68. KEY `idx_relation_level` (`relation_level`),
  69. KEY `idx_created_at` (`created_at`),
  70. KEY `idx_status` (`status`)
  71. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS团队收益记录表';
  72. -- 4. URS达人等级配置表
  73. CREATE TABLE `kku_urs_promotion_talent_configs` (
  74. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  75. `level` tinyint NOT NULL COMMENT '等级:0无,1初级,2中级,3高级,4资深,5顶级',
  76. `name` varchar(32) NOT NULL COMMENT '等级名称',
  77. `direct_count_required` int NOT NULL DEFAULT '0' COMMENT '所需直推人数',
  78. `promotion_count_required` int NOT NULL DEFAULT '0' COMMENT '所需团队总人数',
  79. `profit_rate` decimal(8,6) NOT NULL DEFAULT '0.000000' COMMENT '间推分成比例',
  80. `benefits` json DEFAULT NULL COMMENT '等级权益JSON',
  81. `icon` varchar(255) DEFAULT NULL COMMENT '等级图标',
  82. `description` text COMMENT '等级描述',
  83. `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序权重',
  84. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1启用,0禁用',
  85. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  86. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  87. PRIMARY KEY (`id`),
  88. UNIQUE KEY `uk_level` (`level`),
  89. KEY `idx_sort_order` (`sort_order`),
  90. KEY `idx_status` (`status`)
  91. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS达人等级配置表';
  92. -- 6. URS收益分成规则表
  93. CREATE TABLE `kku_urs_promotion_profit_rules` (
  94. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  95. `source_type` varchar(32) NOT NULL COMMENT '收益来源类型',
  96. `name` varchar(64) NOT NULL COMMENT '规则名称',
  97. `direct_profit_rate` decimal(8,6) NOT NULL DEFAULT '0.050000' COMMENT '直推分成比例',
  98. `max_indirect_level` tinyint NOT NULL DEFAULT '20' COMMENT '最大间推层级',
  99. `min_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '最小分成金额',
  100. `max_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '最大分成金额,0为无限制',
  101. `rules` json DEFAULT NULL COMMENT '扩展规则JSON',
  102. `description` text COMMENT '规则描述',
  103. `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序权重',
  104. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1启用,0禁用',
  105. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  106. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  107. PRIMARY KEY (`id`),
  108. UNIQUE KEY `uk_source_type` (`source_type`),
  109. KEY `idx_status` (`status`),
  110. KEY `idx_sort_order` (`sort_order`)
  111. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS收益分成规则表';
  112. -- 7. URS推荐关系修改记录表
  113. CREATE TABLE `kku_urs_promotion_referral_changes` (
  114. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  115. `user_id` bigint unsigned NOT NULL COMMENT '用户ID',
  116. `old_referrer_id` bigint unsigned DEFAULT NULL COMMENT '原推荐人ID',
  117. `new_referrer_id` bigint unsigned DEFAULT NULL COMMENT '新推荐人ID',
  118. `change_reason` varchar(64) NOT NULL COMMENT '修改原因',
  119. `change_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  120. `operator_id` bigint unsigned DEFAULT NULL COMMENT '操作人ID',
  121. `remark` text COMMENT '备注',
  122. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  123. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  124. PRIMARY KEY (`id`),
  125. KEY `idx_user_id` (`user_id`),
  126. KEY `idx_old_referrer_id` (`old_referrer_id`),
  127. KEY `idx_new_referrer_id` (`new_referrer_id`),
  128. KEY `idx_change_time` (`change_time`)
  129. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS推荐关系修改记录表';
  130. -- 8. URS用户关系缓存表
  131. CREATE TABLE `kku_urs_promotion_user_relation_cache` (
  132. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  133. `user_id` bigint unsigned NOT NULL COMMENT '用户ID',
  134. `related_user_id` bigint unsigned NOT NULL COMMENT '关联用户ID',
  135. `relation_type` varchar(16) NOT NULL COMMENT '关系类型:referrer上级,member下级',
  136. `level` tinyint NOT NULL DEFAULT '1' COMMENT '关系层级:1直接,2-20间接',
  137. `depth` tinyint NOT NULL DEFAULT '1' COMMENT '关系深度',
  138. `path` text COMMENT '关系路径',
  139. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  140. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  141. PRIMARY KEY (`id`),
  142. UNIQUE KEY `uk_user_related` (`user_id`,`related_user_id`,`relation_type`),
  143. KEY `idx_user_id` (`user_id`),
  144. KEY `idx_related_user_id` (`related_user_id`),
  145. KEY `idx_relation_type` (`relation_type`),
  146. KEY `idx_level` (`level`),
  147. KEY `idx_depth` (`depth`)
  148. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS用户关系缓存表';
  149. -- 9. URS邀请奖励记录表
  150. CREATE TABLE `kku_urs_promotion_invite_rewards` (
  151. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  152. `user_id` bigint unsigned NOT NULL COMMENT '获得奖励的用户ID',
  153. `invited_user_id` bigint unsigned NOT NULL COMMENT '被邀请用户ID',
  154. `reward_type` varchar(32) NOT NULL COMMENT '奖励类型',
  155. `reward_source` varchar(32) NOT NULL COMMENT '奖励来源',
  156. `reward_amount` decimal(30,10) NOT NULL DEFAULT '0.0000000000' COMMENT '奖励数量',
  157. `reward_item_id` bigint unsigned DEFAULT NULL COMMENT '奖励物品ID',
  158. `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:1已发放,0待发放,2已取消',
  159. `granted_at` timestamp NULL DEFAULT NULL COMMENT '发放时间',
  160. `expire_at` timestamp NULL DEFAULT NULL COMMENT '过期时间',
  161. `remark` text COMMENT '备注',
  162. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  163. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  164. PRIMARY KEY (`id`),
  165. KEY `idx_user_id` (`user_id`),
  166. KEY `idx_invited_user_id` (`invited_user_id`),
  167. KEY `idx_reward_type` (`reward_type`),
  168. KEY `idx_reward_source` (`reward_source`),
  169. KEY `idx_status` (`status`),
  170. KEY `idx_created_at` (`created_at`)
  171. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='URS邀请奖励记录表';