147 lines
5.1 KiB
Markdown
147 lines
5.1 KiB
Markdown
|
|
# 封禁系统功能说明
|
|||
|
|
|
|||
|
|
## 功能概述
|
|||
|
|
|
|||
|
|
封禁系统提供用户封禁、房间封禁和黑名单管理功能,支持管理后台和移动端双端实时同步。
|
|||
|
|
|
|||
|
|
## 功能模块
|
|||
|
|
|
|||
|
|
### 1. 用户封禁(管理员功能)
|
|||
|
|
|
|||
|
|
管理员可以对违规用户进行封禁处理:
|
|||
|
|
|
|||
|
|
- **永久封禁**:用户账号永久禁用
|
|||
|
|
- **临时封禁**:设置封禁天数,到期自动解除
|
|||
|
|
- **解除封禁**:手动解除用户封禁状态
|
|||
|
|
- **封禁原因**:记录封禁原因,便于追溯
|
|||
|
|
|
|||
|
|
**API接口**:
|
|||
|
|
- `GET /api/admin/ban/user/list` - 获取用户封禁列表
|
|||
|
|
- `POST /api/admin/ban/user/add` - 封禁用户
|
|||
|
|
- `POST /api/admin/ban/user/unban/{id}` - 解除封禁
|
|||
|
|
- `POST /api/admin/ban/user/delete/{id}` - 删除记录
|
|||
|
|
- `GET /api/admin/ban/user/check/{userId}` - 检查封禁状态
|
|||
|
|
|
|||
|
|
### 2. 房间封禁(管理员功能)
|
|||
|
|
|
|||
|
|
管理员可以对违规直播间进行封禁处理:
|
|||
|
|
|
|||
|
|
- **永久封禁**:直播间永久关闭
|
|||
|
|
- **临时封禁**:设置封禁天数,到期自动解除
|
|||
|
|
- **解除封禁**:手动解除房间封禁状态
|
|||
|
|
- **封禁原因**:记录封禁原因
|
|||
|
|
|
|||
|
|
**API接口**:
|
|||
|
|
- `GET /api/admin/ban/room/list` - 获取房间封禁列表
|
|||
|
|
- `POST /api/admin/ban/room/add` - 封禁房间
|
|||
|
|
- `POST /api/admin/ban/room/unban/{id}` - 解除封禁
|
|||
|
|
- `POST /api/admin/ban/room/delete/{id}` - 删除记录
|
|||
|
|
- `GET /api/admin/ban/room/check/{roomId}` - 检查封禁状态
|
|||
|
|
|
|||
|
|
### 3. 用户黑名单(用户功能)
|
|||
|
|
|
|||
|
|
用户可以将其他用户加入黑名单:
|
|||
|
|
|
|||
|
|
- **添加黑名单**:屏蔽指定用户
|
|||
|
|
- **移除黑名单**:解除屏蔽
|
|||
|
|
- **黑名单列表**:查看已屏蔽的用户
|
|||
|
|
- **互动限制**:被拉黑用户无法发送消息、评论等
|
|||
|
|
|
|||
|
|
**移动端API接口**:
|
|||
|
|
- `GET /api/front/ban/check/me` - 检查当前用户封禁状态
|
|||
|
|
- `GET /api/front/ban/check/user/{userId}` - 检查指定用户封禁状态
|
|||
|
|
- `GET /api/front/ban/check/room/{roomId}` - 检查房间封禁状态
|
|||
|
|
- `GET /api/front/ban/blacklist/list` - 获取我的黑名单
|
|||
|
|
- `POST /api/front/ban/blacklist/add` - 添加到黑名单
|
|||
|
|
- `POST /api/front/ban/blacklist/remove` - 从黑名单移除
|
|||
|
|
- `GET /api/front/ban/blacklist/check/{targetUserId}` - 检查黑名单状态
|
|||
|
|
|
|||
|
|
## 数据库表结构
|
|||
|
|
|
|||
|
|
### eb_user_ban(用户封禁表)
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| id | bigint | 主键 |
|
|||
|
|
| 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 | 状态:1-生效,0-已解除 |
|
|||
|
|
|
|||
|
|
### eb_room_ban(房间封禁表)
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| id | bigint | 主键 |
|
|||
|
|
| room_id | int | 被封禁房间ID |
|
|||
|
|
| ban_type | varchar(20) | 封禁类型 |
|
|||
|
|
| reason | varchar(500) | 封禁原因 |
|
|||
|
|
| duration_days | int | 封禁天数 |
|
|||
|
|
| expire_time | datetime | 到期时间 |
|
|||
|
|
| operator_id | int | 操作人ID |
|
|||
|
|
| status | tinyint | 状态 |
|
|||
|
|
|
|||
|
|
### eb_user_blacklist(用户黑名单表)
|
|||
|
|
| 字段 | 类型 | 说明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| id | bigint | 主键 |
|
|||
|
|
| user_id | int | 用户ID(发起拉黑) |
|
|||
|
|
| blocked_user_id | int | 被拉黑用户ID |
|
|||
|
|
| blocker_nickname | varchar(100) | 拉黑者昵称 |
|
|||
|
|
| blocked_nickname | varchar(100) | 被拉黑者昵称 |
|
|||
|
|
| create_time | datetime | 创建时间 |
|
|||
|
|
|
|||
|
|
## 部署步骤
|
|||
|
|
|
|||
|
|
1. **执行数据库脚本**
|
|||
|
|
```bash
|
|||
|
|
mysql -u root -p zhibo < ban_system_tables.sql
|
|||
|
|
mysql -u root -p zhibo < add_ban_menus.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **部署后端**
|
|||
|
|
```bash
|
|||
|
|
deploy_ban_system.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **部署管理后台前端**
|
|||
|
|
- 确保 `Zhibo/admin/src/views/ban/userBan.vue` 和 `roomBan.vue` 已添加
|
|||
|
|
- 确保 `Zhibo/admin/src/api/ban.js` 已添加
|
|||
|
|
- 重新编译部署前端
|
|||
|
|
|
|||
|
|
4. **编译Android App**
|
|||
|
|
- 确保 `BlacklistActivity.java` 已添加
|
|||
|
|
- 确保布局文件已添加
|
|||
|
|
- 重新编译APK
|
|||
|
|
|
|||
|
|
## 双端同步机制
|
|||
|
|
|
|||
|
|
1. **管理后台封禁用户** → 用户状态更新 → 移动端检测到封禁状态 → 显示封禁提示
|
|||
|
|
2. **移动端添加黑名单** → 数据库更新 → 管理后台可查看黑名单记录
|
|||
|
|
3. **管理后台解除封禁** → 用户状态恢复 → 移动端可正常使用
|
|||
|
|
|
|||
|
|
## 文件清单
|
|||
|
|
|
|||
|
|
### 后端文件
|
|||
|
|
- `Zhibo/zhibo-h/crmeb-admin/src/main/java/com/zbkj/admin/controller/BanController.java`
|
|||
|
|
- `Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/controller/BanFrontController.java`
|
|||
|
|
- `Zhibo/zhibo-h/crmeb-admin/src/main/java/com/zbkj/admin/controller/BlacklistController.java`(已更新)
|
|||
|
|
|
|||
|
|
### 管理后台前端文件
|
|||
|
|
- `Zhibo/admin/src/views/ban/userBan.vue`
|
|||
|
|
- `Zhibo/admin/src/views/ban/roomBan.vue`
|
|||
|
|
- `Zhibo/admin/src/api/ban.js`
|
|||
|
|
- `Zhibo/admin/src/api/blacklist.js`
|
|||
|
|
|
|||
|
|
### Android文件
|
|||
|
|
- `android-app/app/src/main/java/com/example/livestreaming/BlacklistActivity.java`
|
|||
|
|
- `android-app/app/src/main/java/com/example/livestreaming/net/ApiService.java`(已更新)
|
|||
|
|
- `android-app/app/src/main/res/layout/activity_blacklist.xml`
|
|||
|
|
- `android-app/app/src/main/res/layout/item_blacklist.xml`
|
|||
|
|
- `android-app/app/src/main/res/drawable/bg_button_outline_primary.xml`
|
|||
|
|
|
|||
|
|
### SQL脚本
|
|||
|
|
- `ban_system_tables.sql` - 创建数据库表
|
|||
|
|
- `add_ban_menus.sql` - 添加菜单配置
|