Files
lislgosms/docs/phase-6-risk-review-plan.md
T

2.1 KiB

阶段 6:风控与审核实施计划

目标

发送前有规则、有原因、有闭环。阶段 6 聚焦短信任务进入发送链路前的风险评估与审核决策,不实现真实发送 worker。

实施范围

  1. 风控规则配置。
    • 建立租户级和平台级规则模型。
    • 内置第一版默认阈值。
    • 支持 blockmanual_reviewallow 动作。
  2. 发送前风险评估。
    • 单任务最大号码数。
    • 重复号码比例。
    • 非法号码比例。
    • 黑名单命中比例。
    • 非工作时间大批量营销发送。
    • 短时间任务创建频控。
    • 模板变量异常。
  3. 风控命中记录。
    • 记录规则编号、规则名称、阈值、实际值、处理动作、可读原因。
    • 关联租户、应用、模板和短信任务。
  4. 短信审核闭环。
    • 风控直接拒绝时,任务进入 rejected 并返回拒绝原因。
    • 风控要求人工审核时,任务进入 pending_review 并展示审核原因。
    • 管理端可通过或拒绝审核,并记录审核原因。

目录结构建议

api/src/risk-review/
  risk-review.module.ts
  risk-review.service.ts
  client-risk-review.controller.ts
  admin-risk-review.controller.ts

API 边界

客户端:

  • POST /api/client/risk-review/tasks/evaluate:创建短信发送预审任务并执行风控评估。
  • GET /api/client/risk-review/tasks:查询短信任务与拒绝/审核原因。

管理端:

  • GET /api/admin/risk-review/rules:查看风控规则。
  • POST /api/admin/risk-review/rules:创建或调整风控规则。
  • GET /api/admin/risk-review/hits:查看风控命中记录。
  • GET /api/admin/risk-review/tasks/pending:查看待审核任务和审核原因。
  • POST /api/admin/risk-review/tasks/:id/approve:审核通过。
  • POST /api/admin/risk-review/tasks/:id/reject:审核拒绝。

验收标准

  1. 命中风控规则时,必须记录规则编号、规则名称、阈值、实际值、处理动作。
  2. 进入审核的任务必须展示审核原因。
  3. 直接拒绝的任务必须向客户端返回可读原因。
  4. npm run verify:phase6 通过。