refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
82 lines
4.9 KiB
SQL
82 lines
4.9 KiB
SQL
-- 任务中心 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 '关联任务ID(task_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 '关联任务ID(task_center_tasks.id)',
|
||
`tier_id` BIGINT NOT NULL COMMENT '关联档位ID(task_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 '用户ID(users.id)',
|
||
`task_id` BIGINT NOT NULL COMMENT '任务ID(task_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 '用户ID(users.id)',
|
||
`task_id` BIGINT NULL COMMENT '任务ID(task_center_tasks.id)',
|
||
`tier_id` BIGINT NULL COMMENT '档位ID(task_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='任务中心-事件日志';
|