2.3 KiB
2.3 KiB
Phase 21 Completion Report
Status
✅ Completed
Implemented
P21-T01 ~ P21-T08: 账号生命周期
- V014 迁移:
consent_records+user_privacy_settings表 ConsentRecord实体 +ConsentRecordMapperAccountLifecycleService— 退出婚恋服务/重新开启/注销前检查/执行注销/撤回同意/隐私设置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生产域名 + 监控告警 + 备份恢复脚本)