# 设计文档:任务中心 ## 架构图 ```mermaid 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`防重复;事务保证扣减与日志一致性。 - 风控:拒绝高风险用户事件;记录拒绝原因。 - 回滚:退款事件回滚进度计数;奖励不回收(可配置)。