chore: establish V1.1 recovery baseline

This commit is contained in:
2026-09-09 22:05:00 +08:00
commit b46b48eb33
947 changed files with 155471 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
# Phase 21 Completion Report
## Status
✅ Completed
## Implemented
### P21-T01 ~ P21-T08: 账号生命周期
- [x] V014 迁移:`consent_records` + `user_privacy_settings` 表
- [x] `ConsentRecord` 实体 + `ConsentRecordMapper`
- [x] `AccountLifecycleService` — 退出婚恋服务/重新开启/注销前检查/执行注销/撤回同意/隐私设置
- [x] `AccountController` — 用户端6个端点
- [x] `AccountOperatorController` — 管理端2个端点(强制注销/检查)
- [x] Constants 已有:RELATIONSHIP_STATUS_SERVICE_EXITED / ACCOUNT_STATUS_CLOSED
### Miniapp 页面(+3 页面)
- [x] U41 我的婚恋状态 — 展示状态 + 退出/重新开启 + 跳转成功确认/隐私/注销
- [x] 注销账号页 — 注销前说明(7项后果)+ 原因选择 + 在线便捷完成
- [x] 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生产域名 + 监控告警 + 备份恢复脚本)