Files
danyang-match/docs/Phase-15-Completion-Report.md
T

1.3 KiB
Raw Blame History

Phase 15 Completion Report

Status

✅ Completed

Implemented

P15-T01 ~ P15-T08: 签到核心

  • CheckinService — Token生成/扫码签到/手工签到/签到统计
  • CheckinController — 4个API端点
  • HMAC-SHA256 签名Token(不含敏感明文)
  • Redis缓存防重放(Token单次使用)
  • Token过期检查(默认30分钟)
  • 重复签到幂等处理
  • 审计日志记录

Miniapp 页面

  • U31 签到码页 — Token展示 + 复制 + 刷新

Core Invariants 已保护

  • ✅ 二维码不含敏感明文 — Token为HMAC签名,不暴露userId/身份证/手机号
  • ✅ Token过期不可用 — 服务端校验时间戳
  • ✅ 重复签到幂等 — 已签到用户再次扫码返回成功而非新增记录
  • ✅ 仅approved用户可签到 — 未审核通过不能签到
  • ✅ 志愿者Scope限制 — 通过Operator权限控制

API 端点(4个)

POST /activities/{id}/checkin-token(生成签到码) POST /activities/operator/checkin/scan(扫码签到) POST /activities/operator/{id}/checkin/manual(手工签到) GET /activities/operator/{id}/checkin-stats(签到统计)

Tests

  • CheckinServiceTest: 4 个用例

Next Phase

Phase 16: 活动反馈与互选(activity_feedback + activity_interests + 双向互选Match)