Skip to content

[FEATURE REQUEST] #3720

@quyirong

Description

@quyirong

Why this feature?

在当前 OpenIM 的 Web 和 Admin 系统中,缺少用户举报与内容治理能力。

在实际生产环境中,IM 系统不仅需要基础的消息通信能力,还需要具备基础的安全治理能力,例如:

  • 用户举报骚扰、诈骗、广告等行为
  • 管理员对举报内容进行审核与处理
  • 对违规用户进行封禁或限制

目前 OpenIM 仅提供通信能力,但缺少“业务治理闭环”,导致在真实社交或企业协作场景中无法满足合规与安全需求。

添加举报功能可以:

  1. 提升平台安全性与可控性
  2. 满足企业级或社交产品的基础合规需求
  3. 降低运营风险(骚扰、诈骗、垃圾信息)
  4. 补齐 IM 产品的“治理能力闭环”

在实际运营中,用户账号可能因为误判、批量风控或规则误触发而被封禁。

如果只有“封禁机制”而没有“申诉机制”,会导致以下问题:

  1. 用户无法自证清白,体验极差
  2. 管理误封无法纠正
  3. 平台缺少纠错机制,降低公信力
  4. 企业场景中不满足合规与申诉要求

因此建议增加“申诉系统”,形成完整治理闭环:
封禁 → 申诉 → 审核 → 结果反馈

Suggested Solution

建议在 OpenIM Web 与 Admin 系统中增加完整的“举报与工单处理机制”,包括以下设计:

1. Web 端(用户侧)

在以下位置增加“举报入口”:

  • 用户资料卡片
  • 聊天消息右键菜单
  • 群成员列表

举报内容字段建议:

  • 举报对象(userID / groupID / messageID)
  • 举报类型(骚扰 / 诈骗 / 色情 / 广告 / 其他)
  • 举报说明(可选)
  • 时间戳

提交后调用统一 API:
POST /api/report


2. 后端服务

新增 report service:

  • 接收举报数据
  • 写入 MongoDB / MySQL(report 表)
  • 支持状态流转:pending / processing / resolved / rejected

3. Admin 管理端

新增“举报工单模块”:

  • 举报列表查看
  • 按状态筛选(未处理 / 已处理)
  • 支持查看聊天上下文
  • 支持封禁用户 / 删除内容 / 标记处理结果

4. 可扩展能力(建议)

  • 举报自动风控(关键词 / 高频行为)
  • 多次举报自动降权或封禁
  • 与消息审计系统联动

该设计可以形成完整闭环:
用户举报 → 后台审核 → 管理员处理 → 用户行为治理

建议在 OpenIM 中增加“用户申诉系统”,与封禁机制联动:


1. 客户端(Web / App)

当用户账号处于以下状态时:

  • 被封禁(banned)
  • 限制登录(restricted)

在登录页或提示页增加:

👉 “提交申诉”入口

申诉表单字段:

  • 用户ID
  • 申诉原因(文本描述)
  • 申诉说明(详细情况)
  • 证据材料(可选上传图片 / 截图)
  • 联系方式(可选)

提交 API:

POST /api/appeal


2. 后端服务(Appeal Service)

新增申诉模块:

  • 接收申诉请求

  • 存储申诉记录(MongoDB / MySQL)

  • 支持状态流转:

    pending(待处理)
    reviewing(审核中)
    approved(通过,解封)
    rejected(拒绝)

  • 关联用户封禁状态


3. Admin 管理端

新增“申诉工单模块”:

功能包括:

  • 申诉列表查看
  • 按状态筛选
  • 查看用户历史封禁记录
  • 查看申诉内容(文本 + 图片)
  • 一键操作:
    • 解除封禁
    • 保持封禁
    • 追加处罚

4. 数据结构建议(示例)

{
  "user_id": "12345",
  "reason": "账号被误封",
  "description": "我只是正常聊天,没有违规",
  "evidence": [
    "https://xxx.com/image1.png"
  ],
  "status": "pending",
  "created_at": "2026-04-25"
}







### Additional Information

_No response_

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions