| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- -- 任务分类表
- DROP TABLE IF EXISTS `kku_task_categories`;
- CREATE TABLE `kku_task_categories` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '分类ID,主键',
- `name` varchar(100) NOT NULL COMMENT '分类名称',
- `code` varchar(50) NOT NULL COMMENT '分类编码(唯一)',
- `description` varchar(255) DEFAULT NULL COMMENT '分类描述',
- `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序顺序',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_code` (`code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务分类表';
- -- 任务定义表
- DROP TABLE IF EXISTS `kku_task_tasks`;
- CREATE TABLE `kku_task_tasks` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '任务ID,主键',
- `category_id` int NOT NULL COMMENT '任务分类ID,外键关联kku_task_categories表',
- `name` varchar(100) NOT NULL COMMENT '任务名称',
- `description` varchar(500) DEFAULT NULL COMMENT '任务描述',
- `type` varchar(20) NOT NULL COMMENT '任务类型(daily, weekly, achievement, event, tutorial, team)',
- `target_type` varchar(30) NOT NULL COMMENT '目标类型(plant, harvest, upgrade_land等)',
- `target_params` json DEFAULT NULL COMMENT '目标参数(JSON格式,如特定作物ID)',
- `target_count` int NOT NULL DEFAULT '1' COMMENT '目标数量',
- `rewards` json NOT NULL COMMENT '奖励内容(JSON格式)',
- `prerequisite_tasks` json DEFAULT NULL COMMENT '前置任务ID(JSON格式)',
- `level_required` int NOT NULL DEFAULT '0' COMMENT '所需等级',
- `time_limit` int DEFAULT NULL COMMENT '时间限制(秒,NULL表示无限制)',
- `reset_type` varchar(20) NOT NULL DEFAULT 'none' COMMENT '重置类型(none, daily, weekly, monthly)',
- `is_active` tinyint NOT NULL DEFAULT '1' COMMENT '是否激活(0:否, 1:是)',
- `start_time` timestamp NULL DEFAULT NULL COMMENT '开始时间(NULL表示立即开始)',
- `end_time` timestamp NULL DEFAULT NULL COMMENT '结束时间(NULL表示永不结束)',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_category` (`category_id`),
- KEY `idx_type` (`type`),
- KEY `idx_target_type` (`target_type`),
- KEY `idx_active_time` (`is_active`, `start_time`, `end_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务定义表';
- -- 用户任务关联表
- DROP TABLE IF EXISTS `kku_task_user_tasks`;
- CREATE TABLE `kku_task_user_tasks` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `task_id` int NOT NULL COMMENT '任务ID,外键关联kku_task_tasks表',
- `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:未接取, 1:进行中, 2:已完成, 3:已领取奖励, 4:已失败, 5:已过期)',
- `progress` int NOT NULL DEFAULT '0' COMMENT '当前进度',
- `completed_at` timestamp NULL DEFAULT NULL COMMENT '完成时间',
- `rewarded_at` timestamp NULL DEFAULT NULL COMMENT '奖励发放时间',
- `expire_at` timestamp NULL DEFAULT NULL COMMENT '过期时间',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_task` (`user_id`, `task_id`),
- KEY `idx_user_status` (`user_id`, `status`),
- KEY `idx_task` (`task_id`),
- KEY `idx_expire` (`expire_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户任务关联表';
- -- 用户任务进度表
- DROP TABLE IF EXISTS `kku_task_user_progress`;
- CREATE TABLE `kku_task_user_progress` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `task_id` int NOT NULL COMMENT '任务ID,外键关联kku_task_tasks表',
- `target_id` varchar(100) NOT NULL COMMENT '目标ID(如特定作物ID、物品ID等)',
- `current_count` int NOT NULL DEFAULT '0' COMMENT '当前计数',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_user_task_target` (`user_id`, `task_id`, `target_id`),
- KEY `idx_user_task` (`user_id`, `task_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户任务进度表';
- -- 任务完成日志表
- DROP TABLE IF EXISTS `kku_task_completion_logs`;
- CREATE TABLE `kku_task_completion_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `task_id` int NOT NULL COMMENT '任务ID,外键关联kku_task_tasks表',
- `completed_at` timestamp NOT NULL COMMENT '完成时间',
- `time_spent` int DEFAULT NULL COMMENT '完成耗时(秒)',
- `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP地址',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user` (`user_id`),
- KEY `idx_task` (`task_id`),
- KEY `idx_completed_at` (`completed_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务完成日志表';
- -- 任务奖励发放日志表
- DROP TABLE IF EXISTS `kku_task_reward_logs`;
- CREATE TABLE `kku_task_reward_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `user_id` int NOT NULL COMMENT '用户ID',
- `task_id` int NOT NULL COMMENT '任务ID,外键关联kku_task_tasks表',
- `user_task_id` int NOT NULL COMMENT '用户任务ID,外键关联kku_task_user_tasks表',
- `rewards` json NOT NULL COMMENT '奖励内容(JSON格式)',
- `rewarded_at` timestamp NOT NULL COMMENT '奖励发放时间',
- `ip_address` varchar(45) DEFAULT NULL COMMENT 'IP地址',
- `device_info` varchar(255) DEFAULT NULL COMMENT '设备信息',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_user` (`user_id`),
- KEY `idx_task` (`task_id`),
- KEY `idx_user_task` (`user_task_id`),
- KEY `idx_rewarded_at` (`rewarded_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务奖励发放日志表';
- -- 任务重置日志表
- DROP TABLE IF EXISTS `kku_task_reset_logs`;
- CREATE TABLE `kku_task_reset_logs` (
- `id` int NOT NULL AUTO_INCREMENT COMMENT '记录ID,主键',
- `reset_type` varchar(20) NOT NULL COMMENT '重置类型(daily, weekly, monthly)',
- `reset_time` timestamp NOT NULL COMMENT '重置时间',
- `affected_tasks` json DEFAULT NULL COMMENT '受影响的任务ID列表(JSON格式)',
- `affected_count` int NOT NULL DEFAULT '0' COMMENT '受影响的任务数量',
- `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_reset_type` (`reset_type`),
- KEY `idx_reset_time` (`reset_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务重置日志表';
|