|
|
@@ -0,0 +1,175 @@
|
|
|
+-- Point模块数据库表结构
|
|
|
+-- 专注于整数型积分逻辑处理
|
|
|
+
|
|
|
+-- 积分类型表
|
|
|
+CREATE TABLE `kku_point_currency` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `identification` varchar(50) NOT NULL DEFAULT '' COMMENT '积分标识',
|
|
|
+ `type` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型,关联POINT_CURRENCY_TYPE枚举',
|
|
|
+ `icon` varchar(100) NOT NULL DEFAULT '' COMMENT '积分图标',
|
|
|
+ `name` varchar(100) NOT NULL DEFAULT '' COMMENT '积分名称',
|
|
|
+ `display_attributes` text COMMENT '显示属性,如图标、颜色等',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `uk_identification` (`identification`),
|
|
|
+ UNIQUE KEY `uk_type` (`type`),
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分类型表';
|
|
|
+
|
|
|
+-- 积分配置表
|
|
|
+CREATE TABLE `kku_point_config` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `name` varchar(100) NOT NULL DEFAULT '' COMMENT '积分名称',
|
|
|
+ `currency_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联的积分类型ID,外键关联kku_point_currency表',
|
|
|
+ `type` int(11) NOT NULL DEFAULT '0' COMMENT '积分账户类型,关联POINT_TYPE枚举',
|
|
|
+ `display_attributes` text COMMENT '显示属性,如图标、颜色等',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `uk_type` (`type`),
|
|
|
+ KEY `idx_currency_id` (`currency_id`),
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分配置表';
|
|
|
+
|
|
|
+-- 用户积分表
|
|
|
+CREATE TABLE `kku_point` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
|
|
+ `point_id` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型ID',
|
|
|
+ `balance` bigint(20) NOT NULL DEFAULT '0' COMMENT '积分余额(整数)',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `uk_user_point` (`user_id`, `point_id`),
|
|
|
+ KEY `idx_user_id` (`user_id`),
|
|
|
+ KEY `idx_point_id` (`point_id`),
|
|
|
+ KEY `idx_balance` (`balance`),
|
|
|
+ KEY `idx_update_time` (`update_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户积分表';
|
|
|
+
|
|
|
+-- 积分日志表
|
|
|
+CREATE TABLE `kku_point_logs` (
|
|
|
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
|
|
+ `point_id` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型ID',
|
|
|
+ `amount` bigint(20) NOT NULL DEFAULT '0' COMMENT '操作积分数量,正值为收入,负值为支出',
|
|
|
+ `operate_id` varchar(100) NOT NULL DEFAULT '' COMMENT '上游操作ID',
|
|
|
+ `operate_type` int(11) NOT NULL DEFAULT '0' COMMENT '上游操作类型',
|
|
|
+ `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `create_ip` varchar(50) NOT NULL DEFAULT '' COMMENT '创建IP',
|
|
|
+ `later_balance` bigint(20) NOT NULL DEFAULT '0' COMMENT '操作后余额',
|
|
|
+ `before_balance` bigint(20) NOT NULL DEFAULT '0' COMMENT '操作前余额',
|
|
|
+ `date_key` int(11) NOT NULL DEFAULT '0' COMMENT '日期key(用于分表)',
|
|
|
+ `hash` varchar(100) NOT NULL DEFAULT '' COMMENT '防篡改哈希值',
|
|
|
+ `prev_hash` varchar(100) NOT NULL DEFAULT '' COMMENT '上一条记录的哈希值',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_user_id` (`user_id`),
|
|
|
+ KEY `idx_point_id` (`point_id`),
|
|
|
+ KEY `idx_operate_type` (`operate_type`),
|
|
|
+ KEY `idx_create_time` (`create_time`),
|
|
|
+ KEY `idx_date_key` (`date_key`),
|
|
|
+ KEY `idx_user_point_time` (`user_id`, `point_id`, `create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分日志表';
|
|
|
+
|
|
|
+-- 积分管理表
|
|
|
+CREATE TABLE `kku_point_admin` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
|
|
+ `point_id` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型ID',
|
|
|
+ `admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '管理员ID',
|
|
|
+ `total_points` bigint(20) NOT NULL DEFAULT '0' COMMENT '操作积分数量',
|
|
|
+ `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0-待处理,1-已完成,2-已失败',
|
|
|
+ `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_user_id` (`user_id`),
|
|
|
+ KEY `idx_point_id` (`point_id`),
|
|
|
+ KEY `idx_admin_id` (`admin_id`),
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分管理表';
|
|
|
+
|
|
|
+-- 积分流转记录表
|
|
|
+CREATE TABLE `kku_point_circulation` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
|
|
+ `from_point_id` int(11) NOT NULL DEFAULT '0' COMMENT '源积分类型ID',
|
|
|
+ `to_point_id` int(11) NOT NULL DEFAULT '0' COMMENT '目标积分类型ID',
|
|
|
+ `amount` bigint(20) NOT NULL DEFAULT '0' COMMENT '流转积分数量',
|
|
|
+ `re_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联ID',
|
|
|
+ `re_type` varchar(50) NOT NULL DEFAULT '' COMMENT '关联类型',
|
|
|
+ `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
|
|
|
+ `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0-待处理,1-已完成,2-已失败',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_user_id` (`user_id`),
|
|
|
+ KEY `idx_from_point_id` (`from_point_id`),
|
|
|
+ KEY `idx_to_point_id` (`to_point_id`),
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
+ KEY `idx_create_time` (`create_time`),
|
|
|
+ KEY `idx_re_id_type` (`re_id`, `re_type`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分流转记录表';
|
|
|
+
|
|
|
+-- 积分转账记录表
|
|
|
+CREATE TABLE `kku_point_transfer` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `from_user_id` int(11) NOT NULL DEFAULT '0' COMMENT '转出用户ID',
|
|
|
+ `to_user_id` int(11) NOT NULL DEFAULT '0' COMMENT '转入用户ID',
|
|
|
+ `point_id` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型ID',
|
|
|
+ `amount` bigint(20) NOT NULL DEFAULT '0' COMMENT '转账积分数量',
|
|
|
+ `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '备注',
|
|
|
+ `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0-待处理,1-已完成,2-已失败',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ KEY `idx_from_user_id` (`from_user_id`),
|
|
|
+ KEY `idx_to_user_id` (`to_user_id`),
|
|
|
+ KEY `idx_point_id` (`point_id`),
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分转账记录表';
|
|
|
+
|
|
|
+-- 积分订单表
|
|
|
+CREATE TABLE `kku_point_order` (
|
|
|
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增',
|
|
|
+ `order_no` varchar(50) NOT NULL DEFAULT '' COMMENT '订单号',
|
|
|
+ `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',
|
|
|
+ `point_id` int(11) NOT NULL DEFAULT '0' COMMENT '积分类型ID',
|
|
|
+ `amount` bigint(20) NOT NULL DEFAULT '0' COMMENT '积分数量',
|
|
|
+ `order_type` varchar(50) NOT NULL DEFAULT '' COMMENT '订单类型',
|
|
|
+ `title` varchar(200) NOT NULL DEFAULT '' COMMENT '订单标题',
|
|
|
+ `description` varchar(500) NOT NULL DEFAULT '' COMMENT '订单描述',
|
|
|
+ `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单状态',
|
|
|
+ `extra_data` text COMMENT '额外数据(JSON格式)',
|
|
|
+ `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
|
|
+ `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ PRIMARY KEY (`id`),
|
|
|
+ UNIQUE KEY `uk_order_no` (`order_no`),
|
|
|
+ KEY `idx_user_id` (`user_id`),
|
|
|
+ KEY `idx_point_id` (`point_id`),
|
|
|
+ KEY `idx_order_type` (`order_type`),
|
|
|
+ KEY `idx_status` (`status`),
|
|
|
+ KEY `idx_create_time` (`create_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分订单表';
|
|
|
+
|
|
|
+-- 插入初始数据
|
|
|
+
|
|
|
+-- 积分类型数据
|
|
|
+INSERT INTO `kku_point_currency` (`id`, `identification`, `type`, `icon`, `name`, `display_attributes`, `create_time`, `update_time`) VALUES
|
|
|
+(1, 'EXP', 1, '⭐', '经验积分', '{"icon":"⭐","color":"#1890ff","background":"#f0f9ff"}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(2, 'ACHIEVEMENT', 2, '🏆', '成就积分', '{"icon":"🏆","color":"#52c41a","background":"#f6ffed"}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(3, 'ACTIVITY', 3, '🎯', '活动积分', '{"icon":"🎯","color":"#fa8c16","background":"#fff7e6"}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(4, 'CHECKIN', 4, '📅', '签到积分', '{"icon":"📅","color":"#722ed1","background":"#f9f0ff"}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(5, 'REFERRAL', 5, '👥', '推荐积分', '{"icon":"👥","color":"#eb2f96","background":"#fff0f6"}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
|
|
|
+
|
|
|
+-- 积分配置数据
|
|
|
+INSERT INTO `kku_point_config` (`id`, `name`, `currency_id`, `type`, `display_attributes`, `create_time`, `update_time`) VALUES
|
|
|
+(1, '经验积分账户', 1, 1, '{"icon":"⭐","color":"#1890ff","show_in_list":true}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(2, '成就积分账户', 2, 2, '{"icon":"🏆","color":"#52c41a","show_in_list":true}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(3, '活动积分账户', 3, 3, '{"icon":"🎯","color":"#fa8c16","show_in_list":true}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(4, '签到积分账户', 4, 4, '{"icon":"📅","color":"#722ed1","show_in_list":true}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
|
|
+(5, '推荐积分账户', 5, 5, '{"icon":"👥","color":"#eb2f96","show_in_list":true}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
|