yumi-golang/migrations/022_task_center.sql
2026-05-08 18:55:47 +08:00

118 lines
6.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE IF NOT EXISTS `task_center_config` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`enabled` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否启用任务中心',
`timezone` varchar(64) NOT NULL DEFAULT 'Asia/Riyadh' COMMENT '任务周期时区',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_config_sys_origin` (`sys_origin`),
KEY `idx_task_center_config_enabled` (`enabled`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心系统配置';
CREATE TABLE IF NOT EXISTS `task_center_task_config` (
`id` bigint NOT NULL COMMENT '主键ID',
`config_id` bigint NOT NULL COMMENT '任务中心配置ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`task_code` varchar(64) NOT NULL COMMENT '任务编码',
`task_category` varchar(32) NOT NULL COMMENT '任务分类DAILY/NEWBIE',
`enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`task_name` varchar(255) NOT NULL DEFAULT '' COMMENT '任务名称',
`task_desc` varchar(255) NOT NULL DEFAULT '' COMMENT '任务说明',
`condition_type` varchar(64) NOT NULL DEFAULT '' COMMENT '完成条件类型',
`target_value` bigint NOT NULL DEFAULT '0' COMMENT '目标值',
`target_unit` varchar(32) NOT NULL DEFAULT '' COMMENT '目标单位',
`reward_gold` bigint NOT NULL DEFAULT '0' COMMENT '奖励金币',
`jump_type` varchar(64) NOT NULL DEFAULT 'NONE' COMMENT '跳转类型',
`jump_page` varchar(512) NOT NULL DEFAULT '' COMMENT '跳转参数',
`task_icon` varchar(512) NOT NULL DEFAULT '' COMMENT '任务图标',
`cover` varchar(512) NOT NULL DEFAULT '' COMMENT '任务封面',
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_task_code` (`sys_origin`, `task_code`),
KEY `idx_task_center_task_config_id` (`config_id`),
KEY `idx_task_center_task_sys_category` (`sys_origin`, `task_category`),
KEY `idx_task_center_task_enabled` (`enabled`),
KEY `idx_task_center_task_condition` (`condition_type`),
KEY `idx_task_center_task_sort` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心任务配置';
CREATE TABLE IF NOT EXISTS `task_center_user_progress` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`user_id` bigint NOT NULL COMMENT '用户ID',
`task_id` bigint NOT NULL COMMENT '任务ID',
`task_code` varchar(64) NOT NULL COMMENT '任务编码',
`task_category` varchar(32) NOT NULL COMMENT '任务分类',
`cycle_key` varchar(32) NOT NULL COMMENT '任务周期',
`condition_type` varchar(64) NOT NULL DEFAULT '' COMMENT '完成条件类型',
`completed_value` bigint NOT NULL DEFAULT '0' COMMENT '已完成值',
`target_value` bigint NOT NULL DEFAULT '0' COMMENT '目标值',
`status` varchar(32) NOT NULL DEFAULT 'IN_PROGRESS' COMMENT '任务状态',
`reward_collected` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已领取',
`claimed_at` datetime(3) DEFAULT NULL COMMENT '领取时间',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_user_progress` (`sys_origin`, `user_id`, `task_id`, `cycle_key`),
KEY `idx_task_center_progress_user` (`sys_origin`, `user_id`),
KEY `idx_task_center_progress_task` (`task_id`),
KEY `idx_task_center_progress_task_code` (`task_code`),
KEY `idx_task_center_progress_cycle` (`cycle_key`),
KEY `idx_task_center_progress_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心用户进度';
CREATE TABLE IF NOT EXISTS `task_center_event` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`event_id` varchar(128) NOT NULL COMMENT '业务事件ID',
`event_type` varchar(64) NOT NULL COMMENT '事件类型',
`user_id` bigint NOT NULL COMMENT '用户ID',
`task_id` bigint NOT NULL COMMENT '命中任务ID',
`task_code` varchar(64) NOT NULL COMMENT '命中任务编码',
`task_category` varchar(32) NOT NULL COMMENT '任务分类',
`cycle_key` varchar(32) NOT NULL COMMENT '任务周期',
`delta_value` bigint NOT NULL DEFAULT '0' COMMENT '本次增量',
`completed_value` bigint NOT NULL DEFAULT '0' COMMENT '事件后完成值',
`raw_json` text COMMENT '原始事件内容',
`occurred_at` datetime(3) DEFAULT NULL COMMENT '业务发生时间',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_event_task` (`event_id`, `task_id`),
KEY `idx_task_center_event_sys` (`sys_origin`),
KEY `idx_task_center_event_id` (`event_id`),
KEY `idx_task_center_event_type` (`event_type`),
KEY `idx_task_center_event_user` (`user_id`),
KEY `idx_task_center_event_task_code` (`task_code`),
KEY `idx_task_center_event_occurred` (`occurred_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心事件流水';
CREATE TABLE IF NOT EXISTS `task_center_claim_record` (
`id` bigint NOT NULL COMMENT '主键ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`user_id` bigint NOT NULL COMMENT '用户ID',
`task_id` bigint NOT NULL COMMENT '任务ID',
`task_code` varchar(64) NOT NULL COMMENT '任务编码',
`task_name` varchar(255) NOT NULL DEFAULT '' COMMENT '任务名称快照',
`task_category` varchar(32) NOT NULL COMMENT '任务分类',
`cycle_key` varchar(32) NOT NULL COMMENT '任务周期',
`reward_gold` bigint NOT NULL DEFAULT '0' COMMENT '奖励金币',
`wallet_event_id` varchar(160) NOT NULL COMMENT '钱包事件ID',
`status` varchar(32) NOT NULL COMMENT '领取状态',
`failure_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`claimed_at` datetime(3) DEFAULT NULL COMMENT '领取成功时间',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_claim_wallet_event` (`wallet_event_id`),
KEY `idx_task_center_claim_sys` (`sys_origin`),
KEY `idx_task_center_claim_user` (`user_id`),
KEY `idx_task_center_claim_task` (`task_id`),
KEY `idx_task_center_claim_task_code` (`task_code`),
KEY `idx_task_center_claim_cycle` (`cycle_key`),
KEY `idx_task_center_claim_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心领取记录';