refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# 事件与调度方案:任务中心
|
||
|
||
## 实时事件处理
|
||
- 订阅事件:`OrderPaid`、`InviteSuccess`、`OrderRefunded/Cancelled`。
|
||
- 流程:
|
||
1. 解析事件并查`Tasks`在有效期且启用。
|
||
2. 更新`UserTaskProgress.metrics`(订单数/邀请数/首单标记)。
|
||
3. 匹配`TaskTiers`:达标产出`tier_id`列表(去除已领取)。
|
||
4. 幂等检查:生成`idempotency_key`并查`TaskEventLogs`。
|
||
5. 发奖:调用`user.GrantReward(...)`按`TaskRewards`派发;扣减库存(如有)。
|
||
6. 记录日志:`TaskEventLogs`写入状态与结果;`claimed_tiers`追加。
|
||
|
||
## 调度补偿
|
||
- 周期任务(每小时/每日):
|
||
- 扫描`UserTaskProgress`与事件流快照,识别漏发档位并补发。
|
||
- 生成指标快照与对账报表(订单/邀请/奖励入账)。
|
||
- 失败重试:对发奖失败记录按指数退避重试,设置最大重试次数与报警。
|
||
|
||
## 幂等与并发
|
||
- 幂等键:`user_id + task_id + tier_id + event_id`。
|
||
- 并发控制:同用户同任务串行执行;库存扣减与日志写入同事务或使用分布式锁。
|
||
|
||
## 风控
|
||
- 邀请有效校验:必须注册并完成首单;设备指纹与手机号校验。
|
||
- 刷单检测:黑名单、频次阈值、风控评分;高风险事件直接拒绝并记录原因。
|
||
- 限流:每日发奖上限;IP/设备限流。
|
||
|