2.0 KiB
2.0 KiB
Phase 17 Completion Report
Status
✅ Completed
Implemented
P17-T01 ~ P17-T10: 举报 + 风控核心
- V012 迁移:
reports+risk_events+risk_actions三张表 Report/RiskEvent/RiskAction实体 + Mapper(8个查询方法)ReportService— 提交举报/获取列表/处理举报/风险画像ReportController— 用户端2个端点ReportOperatorController— 管理端5个端点- Constants 新增:举报原因/状态/风险动作/风险等级 常量
Miniapp 页面
- U26 举报页 — 9种举报原因 + 补充说明 + 截图证据
- 我的举报页 — 举报记录列表 + 状态标签
Admin Web
- A15 举报中心 — 统计卡片 + 待处理列表 + 按优先级排序
- A16 举报详情抽屉 — 被举报人风险画像 + 处置操作表单
- 路由注册:/risk/reports
Core Invariants 已保护
- ✅ 关键词命中 ≠ 直接处罚 — 仅创建风险事件+提示,不自动封禁
- ✅ 风险评分不自动定罪 — 仅用于排序发现和人工审核
- ✅ 封禁需人工复核 — 永久封禁不走自动流程
- ✅ 举报不成立 ≠ 诈骗 — 不处罚举报人
- ✅ RiskLevel与AccountStatus分离 — 风险等级高不代表直接封号
- ✅ 诈骗/冒充优先处理 — 按 reason_type 优先级排序
API 端点(7个)
POST /risk/reports(提交举报) GET /risk/reports/my(我的举报) GET /operator/risk/reports/pending(待处理列表) GET /operator/risk/reports/{id}(详情+风险画像) POST /operator/risk/reports/{id}/process(处理举报) GET /operator/risk/reports/stats(统计) GET /operator/risk/users/{userId}(用户风险画像)
Migration
V012__add_risk_and_report_tables.sql
Tests
ReportServiceTest: 7 个不变量用例
Project Stats
- Java files: 176 (+12 from Phase 16)
- Test classes: 29 (+1)
- Migration SQL: 12
Next Phase
Phase 18: 申诉(appeal提交/审核/Feature Flag控制) EOF echo "Done"