refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
1.6 KiB
1.6 KiB
设计文档:任务中心
架构图
flowchart LR
Events((OrderPaid/InviteSuccess)) --> Processor[Task Processor]
Processor --> Progress[UserTaskProgress]
Processor --> Judge{Match TaskTiers}
Judge -->|Hit Tier| Grant[GrantReward]
Grant --> Logs[TaskEventLogs]
Scheduler[Task Scheduler] --> Progress
Scheduler --> Judge
Admin[Admin UI] --> Tasks[(Tasks/TaskTiers/TaskRewards)]
App[App UI] --> Progress
分层与组件
- API层:
internal/api/task_center,管理端与APP端HTTP接口。 - 服务层:
internal/service/task_center,规则判定、进度更新、发奖编排、幂等控制。 - 仓储层:
internal/repository/mysql/task_center,任务与进度、日志数据访问。 - 调度器:周期扫描与补偿、快照与报表。
接口契约
- 任务实体:
Tasks(id/name/desc/status/time_window/visibility/conditions_schema?)。 - 档位:
TaskTiers(task_id/metric/operator/threshold/window/repeatable/priority)。 - 奖励:
TaskRewards(task_id/tier_id/type/payload/quantity)。 - 进度:
UserTaskProgress(user_id/task_id/metrics/claimed_tiers[]/updated_at)。 - 日志:
TaskEventLogs(event_id/user_id/task_id/tier_id/idempotency_key/status/result/created_at)。
数据流向
- 事件→进度更新→档位匹配→发奖→日志;调度→进度扫描→补偿发奖。
异常处理策略
- 幂等:以
idempotency_key防重复;事务保证扣减与日志一致性。 - 风控:拒绝高风险用户事件;记录拒绝原因。
- 回滚:退款事件回滚进度计数;奖励不回收(可配置)。