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

2.3 KiB

Phase 21 Completion Report

Status

✅ Completed

Implemented

P21-T01 ~ P21-T08: 账号生命周期

  • V014 迁移:consent_records + user_privacy_settings 表
  • ConsentRecord 实体 + ConsentRecordMapper
  • AccountLifecycleService — 退出婚恋服务/重新开启/注销前检查/执行注销/撤回同意/隐私设置
  • AccountController — 用户端6个端点
  • AccountOperatorController — 管理端2个端点(强制注销/检查)
  • Constants 已有:RELATIONSHIP_STATUS_SERVICE_EXITED / ACCOUNT_STATUS_CLOSED

Miniapp 页面(+3 页面)

  • U41 我的婚恋状态 — 展示状态 + 退出/重新开启 + 跳转成功确认/隐私/注销
  • 注销账号页 — 注销前说明(7项后果)+ 原因选择 + 在线便捷完成
  • U43 隐私设置 — 推荐可见/活动邀请/显示上线时间 三个开关

Core Invariants 已保护

  • ✅ 注销不制造障碍 — 全程在线,无需打电话/邮寄身份证/到现场
  • ✅ 敏感数据脱敏 — 手机号保留后4位,其余替换为*
  • ✅ 注销后不展示完整资料 — 历史会话显示"用户已注销"
  • ✅ 注销前检查进行中的业务 — 有进行中的红娘服务/活动不能直接注销
  • ✅ 通知 Match 对方 — 账号关闭时通知所有活跃 Match 对方
  • ✅ 取消未开始活动报名 — 注销时自动取消 pending/approved 但未开始的活动
  • ✅ 数据保留合规 — 必要审计信息脱敏保留,其他数据删除

API 端点(8个)

POST /account/withdraw(退出婚恋服务) POST /account/resume(重新开启服务) GET /account/can-withdraw(注销前检查) POST /account/close(执行注销) GET /account/privacy-settings(获取隐私设置) PUT /account/privacy-settings(更新隐私设置) POST /operator/account/{userId}/close(强制注销) GET /operator/account/{userId}/can-withdraw(检查)

Migration

V014__add_consent_and_privacy_tables.sql

Tests

  • AccountLifecycleServiceTest: 8 个不变量用例

Project Stats

  • Java files: 200 (+5 from Phase 20)
  • Test classes: 32 (+1)
  • Migration SQL: 14
  • Miniapp 页面: 33 (+3)

Next Phase

Phase 22: 部署运维(Docker Compose生产配置 + Nginx生产域名 + 监控告警 + 备份恢复脚本)