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