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

98 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

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