98 lines
2.2 KiB
Markdown
98 lines
2.2 KiB
Markdown
|
|
# 后端接口 TODO 清单 - 分类管理模块
|
|||
|
|
|
|||
|
|
## 1. 获取房间分类列表
|
|||
|
|
**文件**: `CategoryFilterManager.java`, `MainActivity.java`
|
|||
|
|
**接口路径**: `GET /api/rooms/categories`
|
|||
|
|
**请求参数**: 无
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"id": "string",
|
|||
|
|
"name": "string",
|
|||
|
|
"iconUrl": "string",
|
|||
|
|
"roomCount": "number",
|
|||
|
|
"sortOrder": "number"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
**说明**:
|
|||
|
|
- 用于显示分类标签页
|
|||
|
|
- 分类数据应从后端获取,而不是硬编码
|
|||
|
|
- 支持动态添加/删除分类
|
|||
|
|
|
|||
|
|
## 2. 按分类获取房间列表
|
|||
|
|
**文件**: `CategoryFilterManager.java`, `MainActivity.java`
|
|||
|
|
**接口路径**: `GET /api/rooms?category={categoryId}`
|
|||
|
|
**请求参数**:
|
|||
|
|
- category: 分类ID(必填)
|
|||
|
|
- page (可选): 页码
|
|||
|
|
- pageSize (可选): 每页数量
|
|||
|
|
- sortBy (可选): 排序方式(hot/new/viewers)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"id": "string",
|
|||
|
|
"title": "string",
|
|||
|
|
"streamerName": "string",
|
|||
|
|
"streamerId": "string",
|
|||
|
|
"type": "string",
|
|||
|
|
"categoryId": "string",
|
|||
|
|
"categoryName": "string",
|
|||
|
|
"isLive": "boolean",
|
|||
|
|
"coverUrl": "string",
|
|||
|
|
"viewerCount": "number",
|
|||
|
|
"streamUrls": {
|
|||
|
|
"flv": "string",
|
|||
|
|
"hls": "string",
|
|||
|
|
"rtmp": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 3. 获取推荐分类
|
|||
|
|
**文件**: `MainActivity.java`
|
|||
|
|
**接口路径**: `GET /api/rooms/categories/recommended`
|
|||
|
|
**请求参数**:
|
|||
|
|
- userId (可选): 用户ID(从token中获取,用于个性化推荐)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": [
|
|||
|
|
{
|
|||
|
|
"id": "string",
|
|||
|
|
"name": "string",
|
|||
|
|
"iconUrl": "string",
|
|||
|
|
"roomCount": "number"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
**说明**:
|
|||
|
|
- 根据用户观看历史推荐分类
|
|||
|
|
- 如果用户未登录,返回热门分类
|
|||
|
|
|
|||
|
|
## 分类筛选流程
|
|||
|
|
|
|||
|
|
### 前端实现
|
|||
|
|
1. 页面加载时获取分类列表
|
|||
|
|
2. 显示分类标签页
|
|||
|
|
3. 用户点击分类标签
|
|||
|
|
4. 调用按分类获取房间列表接口
|
|||
|
|
5. 显示筛选结果
|
|||
|
|
|
|||
|
|
### 性能优化
|
|||
|
|
- 缓存分类列表(本地存储)
|
|||
|
|
- 异步筛选,避免阻塞UI
|
|||
|
|
- 使用 RecyclerView 的 DiffUtil 优化列表更新
|
|||
|
|
- 保存用户最后选中的分类(SharedPreferences)
|