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

1.7 KiB
Raw Blame History

Phase 14 Completion Report

Status

✅ Completed

Implemented

P14-T01 ~ P14-T13: 活动核心

  • Activity + ActivityRegistration 实体
  • ActivityMapper(含名额统计查询)
  • ActivityRegistrationMapper(含唯一约束查询 + 原子名额检查)
  • ActivityService — CRUD/报名/审核/取消/我的活动
  • ActivityController(用户端6端点)
  • ActivityOperatorController(后台7端点)

P14: 数据库

  • V010 迁移:activities + activity_registrations 表
  • 唯一约束:UNIQUE(activity_id, user_id) 防重复报名
  • 状态约束:activity_status + registration_status

Miniapp 页面

  • U27 活动首页
  • U28 活动详情
  • U29 活动报名
  • U30 我的活动

Core Invariants 已保护

  • ✅ 活动名额并发安全 — 事务内原子检查 + UNIQUE约束兜底
  • ✅ 重复报名安全 — 数据库唯一约束 (activity_id, user_id)
  • ✅ Pending不占正式名额 — 仅approved状态计入名额统计
  • ✅ 活动取消后通知所有已审核用户

API 端点(13个)

用户端:GET /activities · GET /activities/upcoming · GET /activities/{id} POST /activities/{id}/register · DELETE /activities/{id}/register · GET /activities/my 后台:POST /operator/activities · PUT /operator/activities/{id}/publish PUT /operator/activities/{id}/cancel · GET /operator/activities/{id}/registrations POST /operator/activities/registrations/{rid}/approve POST /operator/activities/registrations/{rid}/reject

Tests

  • ActivityServiceTest: 4 个用例(状态常量 + 并发安全Invariants)

Next Phase

Phase 15: 签到(Signed Checkin Token + Staff Scan + Duplicate Check)