593 lines
33 KiB
Markdown
593 lines
33 KiB
Markdown
# 直播平台功能交互逻辑报告
|
||
|
||
## 概述
|
||
|
||
本报告详细描述直播平台三大核心模块的功能交互逻辑:
|
||
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*
|