直播平台功能交互逻辑报告
概述
本报告详细描述直播平台三大核心模块的功能交互逻辑:
- 敏感词管理 - 内容安全过滤系统
- 消息/粉丝团/群组 - 社交通讯系统
- 封禁系统 - 用户与房间管理
一、敏感词管理模块
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 系统概述
封禁系统分为两大类:
- 平台封禁 - 管理员对用户/房间的封禁(eb_user_ban / eb_room_ban)
- 用户黑名单 - 用户间的互相拉黑(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 敏感词模块
- 实时过滤服务 - 目前敏感词表已建立,建议实现统一的敏感词过滤服务类
- 分类管理 - 支持按分类(spam/illegal/abuse)管理敏感词
- 批量导入 - 支持Excel/TXT批量导入敏感词
- 过滤日志 - 记录敏感词触发日志,便于分析
6.2 消息模块
- 消息撤回通知 - 撤回消息时通知对方
- 消息已读回执 - 显示消息已读状态
- 群聊@功能 - 粉丝团群聊支持@成员
- 消息搜索 - 支持历史消息搜索
6.3 封禁模块
- 封禁申诉 - 用户可提交封禁申诉
- 自动解封 - 临时封禁到期自动解封定时任务
- 封禁通知 - 封禁/解封时推送通知给用户
- 封禁统计 - 封禁数据统计报表
七、总结
本报告详细描述了直播平台三大核心模块的功能设计和交互逻辑:
- 敏感词管理 - 提供内容安全过滤能力,保障平台内容合规
- 消息/粉丝团/群组 - 构建完整的社交通讯体系,增强用户粘性
- 封禁系统 - 提供多层次的用户管理能力,维护平台秩序
三大模块相互配合,形成完整的平台安全和社交体系。
报告生成时间: 2026-01-05