bindbox-game/docs/任务中心/SQL_任务中心.sql
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

82 lines
4.9 KiB
SQL
Raw 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.

-- 任务中心 DDL含列注释与表注释
CREATE TABLE IF NOT EXISTS `task_center_tasks` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(64) NOT NULL COMMENT '任务名称',
`description` TEXT NULL COMMENT '任务描述',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '任务状态1启用 0停用',
`start_time` DATETIME NULL COMMENT '任务开始时间',
`end_time` DATETIME NULL COMMENT '任务结束时间',
`visibility` TINYINT NOT NULL DEFAULT 1 COMMENT '展示开关1展示 0隐藏',
`conditions_schema` TEXT NULL COMMENT '规则DSL(JSON),可选',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_visibility` (`visibility`),
KEY `idx_time` (`start_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务中心-任务';
CREATE TABLE IF NOT EXISTS `task_center_task_tiers` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`task_id` BIGINT NOT NULL COMMENT '关联任务IDtask_center_tasks.id',
`metric` VARCHAR(32) NOT NULL COMMENT '指标first_order|order_count|invite_count',
`operator` VARCHAR(8) NOT NULL COMMENT '比较符:>= 或 ==',
`threshold` BIGINT NOT NULL COMMENT '阈值(数量或布尔首单)',
`window` VARCHAR(32) NOT NULL COMMENT '时间窗口activity_period|since_registration',
`repeatable` TINYINT NOT NULL DEFAULT 1 COMMENT '是否每档一次0否 1是',
`priority` INT NOT NULL DEFAULT 0 COMMENT '匹配优先级(数值越小越先匹配)',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_task` (`task_id`),
KEY `idx_task_priority` (`task_id`,`priority`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务中心-档位配置';
CREATE TABLE IF NOT EXISTS `task_center_task_rewards` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`task_id` BIGINT NOT NULL COMMENT '关联任务IDtask_center_tasks.id',
`tier_id` BIGINT NOT NULL COMMENT '关联档位IDtask_center_task_tiers.id',
`reward_type` VARCHAR(32) NOT NULL COMMENT '奖励类型points|coupon|item_card|title',
`reward_payload` TEXT NOT NULL COMMENT '奖励载荷(JSON):各类型所需参数',
`quantity` BIGINT NOT NULL DEFAULT 1 COMMENT '发放数量或上限(视类型)',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_task_tier` (`task_id`,`tier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务中心-奖励配置';
CREATE TABLE IF NOT EXISTS `task_center_user_progress` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT NOT NULL COMMENT '用户IDusers.id',
`task_id` BIGINT NOT NULL COMMENT '任务IDtask_center_tasks.id',
`order_count` BIGINT NOT NULL DEFAULT 0 COMMENT '累计完成订单数',
`invite_count` BIGINT NOT NULL DEFAULT 0 COMMENT '累计有效邀请数',
`first_order` TINYINT NOT NULL DEFAULT 0 COMMENT '首单标记1是 0否',
`claimed_tiers` TEXT NULL COMMENT '已领取档位ID数组(JSON)',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_user_task` (`user_id`,`task_id`),
KEY `idx_user` (`user_id`),
KEY `idx_task` (`task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务中心-用户进度';
CREATE TABLE IF NOT EXISTS `task_center_event_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`event_id` VARCHAR(64) NULL COMMENT '事件ID字符串',
`source_type` VARCHAR(16) NULL COMMENT '来源类型order|invite',
`source_id` BIGINT NULL COMMENT '来源业务ID订单ID或用户ID',
`user_id` BIGINT NULL COMMENT '用户IDusers.id',
`task_id` BIGINT NULL COMMENT '任务IDtask_center_tasks.id',
`tier_id` BIGINT NULL COMMENT '档位IDtask_center_task_tiers.id',
`idempotency_key` VARCHAR(128) NOT NULL COMMENT '幂等键user:task:tier:source',
`status` VARCHAR(16) NULL COMMENT '处理状态granted|skipped|rejected',
`result` TEXT NULL COMMENT '处理结果详情(JSON)',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_idk` (`idempotency_key`),
KEY `idx_user_task_tier` (`user_id`,`task_id`,`tier_id`),
KEY `idx_event` (`event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务中心-事件日志';