zhibo/直播平台功能交互逻辑报告.md
2026-01-05 16:58:39 +08:00

33 KiB
Raw Blame History

直播平台功能交互逻辑报告

概述

本报告详细描述直播平台三大核心模块的功能交互逻辑:

  1. 敏感词管理 - 内容安全过滤系统
  2. 消息/粉丝团/群组 - 社交通讯系统
  3. 封禁系统 - 用户与房间管理

一、敏感词管理模块

1.1 功能概述

敏感词管理用于过滤平台内的违规内容,保障平台内容安全。

1.2 数据表结构

表名: eb_sensitive_word

字段 类型 说明
id int 主键ID
word varchar(128) 敏感词内容
category varchar(32) 分类(default/spam/illegal)
level tinyint 级别(1轻度/2中度/3重度)
action tinyint 处理方式(1替换/2拦截/3警告)
replace_text varchar(32) 替换文本(默认***)
status tinyint 状态(0禁用/1启用)
create_time datetime 创建时间
update_time datetime 更新时间

1.3 管理端功能

API路径: /api/admin/sensitive/word

接口 方法 功能
/list GET 敏感词列表(支持分页、关键词搜索、时间筛选)
/add POST 添加敏感词
/update POST 更新敏感词
/delete/{id} POST 删除敏感词
/status/{id} POST 切换启用/禁用状态

1.4 交互流程图

┌─────────────────────────────────────────────────────────────────┐
│                      敏感词管理流程                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐                  │
│  │ 管理员   │───▶│ 添加敏感词│───▶│ 存入数据库│                  │
│  └──────────┘    └──────────┘    └──────────┘                  │
│                                                                 │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐  │
│  │ 用户发送 │───▶│ 内容检测 │───▶│ 匹配敏感词│───▶│ 执行处理 │  │
│  │ 消息/弹幕│    │          │    │          │    │ (替换/拦截)│  │
│  └──────────┘    └──────────┘    └──────────┘    └──────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

1.5 应用场景

敏感词过滤应用于以下场景:

  • 直播间弹幕消息
  • 私聊消息内容
  • 粉丝团群聊消息
  • 动态发布内容
  • 用户昵称/签名

二、消息/粉丝团/群组模块

2.1 私聊消息系统

2.1.1 数据表结构

会话表: eb_conversation

字段 类型 说明
id bigint 会话ID
user1_id int 用户1 ID
user2_id int 用户2 ID
last_message varchar(255) 最后一条消息预览
last_message_time datetime 最后消息时间
user1_unread_count int 用户1未读数
user2_unread_count int 用户2未读数
user1_deleted tinyint 用户1是否删除
user2_deleted tinyint 用户2是否删除

私聊消息表: eb_private_message

字段 类型 说明
id bigint 消息ID
conversation_id bigint 会话ID
sender_id int 发送者ID
receiver_id int 接收者ID
content text 消息内容
message_type varchar(20) 消息类型(text/image/voice)
media_url varchar(500) 媒体URL
status varchar(20) 状态(sent/read)
is_recalled tinyint 是否撤回

2.1.2 移动端API

路径: /api/front/chat

接口 方法 功能
/conversations GET 获取会话列表
/conversations/{id} GET 获取会话详情
/conversations/{id}/messages GET 获取消息列表
/conversations/{id}/messages POST 发送消息
/conversations/{id}/read POST 标记已读
/messages/{id}/recall POST 撤回消息(2分钟内)

2.1.3 管理端API

路径: /api/admin/chat

接口 方法 功能
/conversations GET 会话列表(支持搜索)
/conversations/{id}/messages GET 查看会话消息
/conversations/{id} DELETE 删除会话
/messages/{id} DELETE 删除单条消息
/statistics GET 私聊统计数据

2.1.4 私聊交互流程

┌─────────────────────────────────────────────────────────────────────────┐
│                         私聊消息发送流程                                  │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐         │
│  │ 用户A  │──▶│ 检查黑名单 │──▶│ 敏感词过滤 │──▶│ 保存消息   │         │
│  │ 发消息 │   │            │   │            │   │            │         │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘         │
│                    │                                   │                │
│                    ▼                                   ▼                │
│              ┌────────────┐                     ┌────────────┐         │
│              │ 黑名单拦截 │                     │ 更新会话   │         │
│              │ 返回错误   │                     │ 推送通知   │         │
│              └────────────┘                     └────────────┘         │
│                                                        │                │
│                                                        ▼                │
│                                                 ┌────────────┐         │
│                                                 │ 用户B收到  │         │
│                                                 │ 消息通知   │         │
│                                                 └────────────┘         │
└─────────────────────────────────────────────────────────────────────────┘

2.2 粉丝团系统

2.2.1 数据表结构

粉丝团表: eb_fan_group

字段 类型 说明
id int 粉丝团ID
anchor_id int 主播ID
anchor_name varchar(64) 主播昵称
name varchar(64) 粉丝团名称
badge varchar(32) 粉丝团徽章
badge_color varchar(16) 徽章颜色
member_count int 成员数量
level int 粉丝团等级
status tinyint 状态(0解散/1正常)

粉丝团成员表: eb_fan_group_member

字段 类型 说明
id int 成员记录ID
group_id int 粉丝团ID
uid int 用户ID
nickname varchar(64) 成员昵称
level int 成员等级(1-10)
intimacy int 亲密度
status tinyint 状态
join_time datetime 加入时间

群聊消息表: eb_group_message

字段 类型 说明
id bigint 消息ID
group_id int 粉丝团ID
sender_id int 发送者ID
content text 消息内容
message_type varchar(20) 消息类型
is_deleted tinyint 是否删除

2.2.2 管理端API

路径: /api/admin/fan/group

接口 方法 功能
/list GET 粉丝团列表
/detail/{id} GET 粉丝团详情
/delete/{id} POST 删除粉丝团
/batch-delete POST 批量删除
/status/{id} POST 修改状态(解散/恢复)
/update/{id} POST 修改粉丝团信息
/member/list GET 成员列表
/member/delete/{id} POST 删除成员
/member/update-level/{id} POST 修改成员等级
/message/list GET 聊天记录列表
/message/delete/{id} POST 删除聊天记录
/statistics GET 统计数据

2.2.3 粉丝团交互流程

┌─────────────────────────────────────────────────────────────────────────┐
│                         粉丝团系统流程                                    │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  【创建粉丝团】                                                          │
│  ┌────────┐   ┌────────────┐   ┌────────────┐                          │
│  │ 主播   │──▶│ 设置名称   │──▶│ 创建粉丝团 │                          │
│  │ 开播   │   │ 徽章/颜色  │   │            │                          │
│  └────────┘   └────────────┘   └────────────┘                          │
│                                                                         │
│  【加入粉丝团】                                                          │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐         │
│  │ 用户   │──▶│ 查看粉丝团 │──▶│ 支付加入费 │──▶│ 成为成员   │         │
│  │        │   │ 信息       │   │ (可选)     │   │ 等级=1     │         │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘         │
│                                                                         │
│  【等级提升】                                                            │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐         │
│  │ 成员   │──▶│ 送礼/互动  │──▶│ 增加亲密度 │──▶│ 等级提升   │         │
│  │        │   │            │   │            │   │ (1-10级)   │         │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘         │
│                                                                         │
│  【群聊功能】                                                            │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐         │
│  │ 成员   │──▶│ 发送消息   │──▶│ 敏感词过滤 │──▶│ 群内广播   │         │
│  │        │   │            │   │            │   │            │         │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘         │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

三、封禁系统模块

3.1 系统概述

封禁系统分为两大类:

  1. 平台封禁 - 管理员对用户/房间的封禁eb_user_ban / eb_room_ban
  2. 用户黑名单 - 用户间的互相拉黑eb_user_blacklist / eb_room_blacklist

3.2 数据表结构

3.2.1 用户封禁表 eb_user_ban

字段 类型 说明
id bigint 记录ID
user_id int 被封禁用户ID
ban_type varchar(20) 封禁类型(permanent永久/temporary临时)
reason varchar(500) 封禁原因
duration_days int 封禁天数(临时封禁)
expire_time datetime 解封时间
operator_id int 操作员ID
status tinyint 状态(0已解封/1封禁中)

3.2.2 房间封禁表 eb_room_ban

字段 类型 说明
id bigint 记录ID
room_id int 被封禁房间ID
ban_type varchar(20) 封禁类型
reason varchar(500) 封禁原因
duration_days int 封禁天数
expire_time datetime 解封时间
operator_id int 操作员ID
status tinyint 状态

3.2.3 用户黑名单表 eb_user_blacklist

字段 类型 说明
id int 记录ID
user_id int 拉黑发起者ID
blocked_user_id int 被拉黑用户ID
blocker_nickname varchar(64) 发起者昵称
blocked_nickname varchar(64) 被拉黑者昵称
create_time datetime 创建时间

3.2.4 房间黑名单表 eb_room_blacklist

字段 类型 说明
id int 记录ID
room_id int 房间ID
room_name varchar(128) 房间名称
blocked_user_id int 被拉黑用户ID
blocked_user_nickname varchar(64) 被拉黑用户昵称
operator_id int 操作者ID(主播)
create_time datetime 创建时间

3.3 管理端API

3.3.1 封禁管理 /api/admin/ban

接口 方法 功能
/user/list GET 用户封禁列表
/user/add POST 封禁用户
/user/unban/{id} POST 解除用户封禁
/user/delete/{id} POST 删除封禁记录
/user/batch-delete POST 批量删除
/user/check/{userId} GET 检查用户封禁状态
/room/list GET 房间封禁列表
/room/add POST 封禁房间
/room/unban/{id} POST 解除房间封禁
/room/delete/{id} POST 删除封禁记录
/room/batch-delete POST 批量删除
/room/check/{roomId} GET 检查房间封禁状态

3.3.2 黑名单管理 /api/admin/blacklist

接口 方法 功能
/user/list GET 用户黑名单列表
/user/delete/{id} POST 删除用户黑名单记录
/user/batch-delete POST 批量删除
/room/list GET 房间黑名单列表
/room/delete/{id} POST 删除房间黑名单记录
/room/batch-delete POST 批量删除

3.4 移动端API

路径: /api/front/ban

接口 方法 功能
/check/me GET 检查当前用户封禁状态
/check/user/{userId} GET 检查指定用户封禁状态
/check/room/{roomId} GET 检查房间封禁状态
/blacklist/list GET 获取我的黑名单列表
/blacklist/add POST 添加用户到黑名单
/blacklist/remove POST 从黑名单移除用户
/blacklist/check/{targetUserId} GET 检查黑名单状态

3.5 封禁检查触发点

封禁状态检查在以下场景自动触发:

场景 检查内容 实现位置
用户登录 检查用户是否被封禁 LoginServiceImpl.checkUserBanStatus()
发送私聊消息 检查双方黑名单状态 ConversationServiceImpl.checkBlacklistStatus()
发送直播间弹幕 检查用户封禁状态 LiveRoomController.checkUserBanStatus()
赠送礼物 检查用户封禁状态 LiveRoomController.sendGift()
进入直播间 检查房间封禁状态 Android RoomDetailActivity

3.6 封禁系统交互流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                           封禁系统完整流程                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  【管理员封禁用户】                                                          │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐             │
│  │ 管理员 │──▶│ 选择用户   │──▶│ 设置封禁   │──▶│ 更新用户   │             │
│  │        │   │ 填写原因   │   │ 类型/时长  │   │ status=0   │             │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘             │
│                                                                             │
│  【用户登录检查】                                                            │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐             │
│  │ 用户   │──▶│ 提交登录   │──▶│ 检查封禁表 │──▶│ 封禁中?    │             │
│  │ 登录   │   │            │   │            │   │            │             │
│  └────────┘   └────────────┘   └────────────┘   └─────┬──────┘             │
│                                                       │                     │
│                                    ┌──────────────────┼──────────────────┐  │
│                                    ▼                  ▼                  │  │
│                              ┌──────────┐       ┌──────────┐             │  │
│                              │ 是:拒绝  │       │ 否:允许  │             │  │
│                              │ 返回原因 │       │ 登录成功 │             │  │
│                              └──────────┘       └──────────┘             │  │
│                                                                             │
│  【用户拉黑用户】                                                            │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐             │
│  │ 用户A  │──▶│ 点击拉黑   │──▶│ 添加黑名单 │──▶│ 删除好友   │             │
│  │        │   │ 用户B      │   │ 记录       │   │ 关系       │             │
│  └────────┘   └────────────┘   └────────────┘   └────────────┘             │
│                                                                             │
│  【私聊黑名单检查】                                                          │
│  ┌────────┐   ┌────────────┐   ┌────────────┐                              │
│  │ 用户A  │──▶│ 发送消息   │──▶│ 检查黑名单 │                              │
│  │ 发消息 │   │ 给用户B    │   │            │                              │
│  └────────┘   └────────────┘   └─────┬──────┘                              │
│                                      │                                      │
│                   ┌──────────────────┼──────────────────┐                   │
│                   ▼                  ▼                  ▼                   │
│             ┌──────────┐       ┌──────────┐       ┌──────────┐             │
│             │ A拉黑了B │       │ B拉黑了A │       │ 无黑名单 │             │
│             │ 提示:您已│       │ 提示:对方│       │ 正常发送 │             │
│             │ 拉黑对方 │       │ 已拉黑您 │       │          │             │
│             └──────────┘       └──────────┘       └──────────┘             │
│                                                                             │
│  【房间封禁检查】                                                            │
│  ┌────────┐   ┌────────────┐   ┌────────────┐   ┌────────────┐             │
│  │ 用户   │──▶│ 进入直播间 │──▶│ 检查房间   │──▶│ 封禁中?    │             │
│  │        │   │            │   │ 封禁状态   │   │            │             │
│  └────────┘   └────────────┘   └────────────┘   └─────┬──────┘             │
│                                                       │                     │
│                                    ┌──────────────────┼──────────────────┐  │
│                                    ▼                  ▼                  │  │
│                              ┌──────────┐       ┌──────────┐             │  │
│                              │ 是:禁止  │       │ 否:允许  │             │  │
│                              │ 进入房间 │       │ 进入观看 │             │  │
│                              └──────────┘       └──────────┘             │  │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

四、三大模块联动关系

4.1 模块交互图

┌─────────────────────────────────────────────────────────────────────────────┐
│                          三大模块联动关系                                     │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│                        ┌─────────────────┐                                  │
│                        │   敏感词管理    │                                  │
│                        │                 │                                  │
│                        │ • 内容过滤规则  │                                  │
│                        │ • 违规词库维护  │                                  │
│                        └────────┬────────┘                                  │
│                                 │                                           │
│                    ┌────────────┼────────────┐                              │
│                    │            │            │                              │
│                    ▼            ▼            ▼                              │
│  ┌─────────────────────┐  ┌─────────────────────┐  ┌─────────────────────┐  │
│  │     私聊消息        │  │    粉丝团群聊       │  │    直播间弹幕       │  │
│  │                     │  │                     │  │                     │  │
│  │ • 发送前过滤敏感词  │  │ • 发送前过滤敏感词  │  │ • 发送前过滤敏感词  │  │
│  │ • 检查黑名单状态    │  │ • 检查成员状态      │  │ • 检查用户封禁      │  │
│  │ • 检查用户封禁      │  │ • 检查用户封禁      │  │ • 检查房间封禁      │  │
│  └──────────┬──────────┘  └──────────┬──────────┘  └──────────┬──────────┘  │
│             │                        │                        │             │
│             └────────────────────────┼────────────────────────┘             │
│                                      │                                      │
│                                      ▼                                      │
│                        ┌─────────────────────┐                              │
│                        │     封禁系统        │                              │
│                        │                     │                              │
│                        │ • 用户封禁管理      │                              │
│                        │ • 房间封禁管理      │                              │
│                        │ • 用户黑名单        │                              │
│                        │ • 房间黑名单        │                              │
│                        └─────────────────────┘                              │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

4.2 完整消息发送流程

用户发送消息
     │
     ▼
┌────────────────┐
│ 1. 用户登录检查 │ ──── 检查 eb_user_ban 表
└───────┬────────┘
        │ 通过
        ▼
┌────────────────┐
│ 2. 封禁状态检查 │ ──── 检查用户是否被平台封禁
└───────┬────────┘
        │ 通过
        ▼
┌────────────────┐
│ 3. 黑名单检查   │ ──── 检查 eb_user_blacklist 表
└───────┬────────┘      (私聊场景)
        │ 通过
        ▼
┌────────────────┐
│ 4. 敏感词过滤   │ ──── 检查 eb_sensitive_word 表
└───────┬────────┘
        │ 通过/替换
        ▼
┌────────────────┐
│ 5. 消息入库     │ ──── 保存到对应消息表
└───────┬────────┘
        │
        ▼
┌────────────────┐
│ 6. 推送通知     │ ──── WebSocket/推送服务
└────────────────┘

五、代码实现位置汇总

5.1 后端代码

模块 文件路径 说明
敏感词管理 crmeb-admin/.../SensitiveWordController.java 管理端敏感词CRUD
私聊管理 crmeb-admin/.../ChatManagementController.java 管理端私聊管理
私聊服务 crmeb-service/.../ConversationServiceImpl.java 私聊业务逻辑+黑名单检查
粉丝团管理 crmeb-admin/.../FanGroupController.java 管理端粉丝团管理
封禁管理 crmeb-admin/.../BanController.java 管理端封禁管理
黑名单管理 crmeb-admin/.../BlacklistController.java 管理端黑名单管理
移动端封禁 crmeb-front/.../BanFrontController.java 移动端封禁API
登录服务 crmeb-front/.../LoginServiceImpl.java 登录时封禁检查
直播间控制 crmeb-front/.../LiveRoomController.java 弹幕/礼物封禁检查

5.2 前端代码

模块 文件路径 说明
敏感词页面 admin/src/views/sensitiveWord/list/index.vue 敏感词管理页面
敏感词API admin/src/api/sensitiveWord.js 敏感词API接口
粉丝团页面 admin/src/views/fanGroup/list/index.vue 粉丝团管理页面
粉丝团API admin/src/api/fanGroup.js 粉丝团API接口
封禁页面 admin/src/views/ban/ 封禁管理页面
黑名单页面 admin/src/views/blacklist/ 黑名单管理页面

5.3 Android代码

模块 文件路径 说明
API接口 ApiService.java 封禁/黑名单API定义
直播间 RoomDetailActivity.java 进入房间封禁检查
粉丝团聊天 GroupChatActivity.java 粉丝团群聊功能
消息列表 MessagesActivity.java 消息列表页面

六、待完善功能建议

6.1 敏感词模块

  1. 实时过滤服务 - 目前敏感词表已建立,建议实现统一的敏感词过滤服务类
  2. 分类管理 - 支持按分类(spam/illegal/abuse)管理敏感词
  3. 批量导入 - 支持Excel/TXT批量导入敏感词
  4. 过滤日志 - 记录敏感词触发日志,便于分析

6.2 消息模块

  1. 消息撤回通知 - 撤回消息时通知对方
  2. 消息已读回执 - 显示消息已读状态
  3. 群聊@功能 - 粉丝团群聊支持@成员
  4. 消息搜索 - 支持历史消息搜索

6.3 封禁模块

  1. 封禁申诉 - 用户可提交封禁申诉
  2. 自动解封 - 临时封禁到期自动解封定时任务
  3. 封禁通知 - 封禁/解封时推送通知给用户
  4. 封禁统计 - 封禁数据统计报表

七、总结

本报告详细描述了直播平台三大核心模块的功能设计和交互逻辑:

  1. 敏感词管理 - 提供内容安全过滤能力,保障平台内容合规
  2. 消息/粉丝团/群组 - 构建完整的社交通讯体系,增强用户粘性
  3. 封禁系统 - 提供多层次的用户管理能力,维护平台秩序

三大模块相互配合,形成完整的平台安全和社交体系。


报告生成时间: 2026-01-05