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

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"