zhibo/android-app/后端接口TODO清单-分类管理.md

98 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 后端接口 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