zhibo/观看历史功能-检查结果.md
xiao12feng8 a619bb1750 修复:首页标签分类+我的挚友处理+历史记录
优化:缘池界面+消息搜索界面
2026-01-05 16:47:07 +08:00

5.8 KiB
Raw Blame History

观看历史功能 - 检查结果

好消息API路径已经正确

经过检查,发现 ApiService.java 中的API路径已经是正确的


📊 当前API配置正确

ApiService.java 中的定义

// ==================== 用户活动记录 ====================

/**
 * 获取观看历史
 */
@GET("api/front/activity/view/history")  // ✅ 正确
Call<ApiResponse<PageResponse<Map<String, Object>>>> getViewHistory(
        @Query("targetType") String targetType,  // ✅ 正确
        @Query("page") int page,
        @Query("pageSize") int pageSize);

/**
 * 清除观看历史
 */
@DELETE("api/front/activity/view/history")  // ✅ 正确
Call<ApiResponse<String>> clearViewHistory(@Query("targetType") String targetType);  // ✅ 正确

/**
 * 获取点赞记录
 */
@GET("api/front/activity/like/records")  // ✅ 正确
Call<ApiResponse<PageResponse<Map<String, Object>>>> getLikeRecords(
        @Query("targetType") String targetType,  // ✅ 正确
        @Query("page") int page,
        @Query("pageSize") int pageSize);

/**
 * 获取收藏的作品
 */
@GET("api/front/activity/collect/works")  // ✅ 正确
Call<ApiResponse<PageResponse<Map<String, Object>>>> getCollectedWorks(
        @Query("page") int page,
        @Query("pageSize") int pageSize);

/**
 * 获取关注记录
 */
@GET("api/front/activity/follow/records")  // ✅ 正确
Call<ApiResponse<PageResponse<Map<String, Object>>>> getFollowRecords(
        @Query("page") int page,
        @Query("pageSize") int pageSize);

/**
 * 记录观看历史(新版)
 */
@POST("api/front/activity/view/record")  // ✅ 正确
Call<ApiResponse<Map<String, Object>>> recordViewHistoryNew(@Body Map<String, Object> body);

/**
 * 调试Token
 */
@GET("api/front/activity/debug/token")  // ✅ 正确
Call<ApiResponse<Map<String, Object>>> debugToken();

对比结果

功能 ApiService.java zhibo-h后台 状态
记录观看历史 /activity/view/record /activity/view/record 匹配
获取观看历史 /activity/view/history /activity/view/history 匹配
清除观看历史 /activity/view/history /activity/view/history 匹配
获取点赞记录 /activity/like/records /activity/like/records 匹配
获取关注记录 /activity/follow/records /activity/follow/records 匹配
获取收藏记录 /activity/collect/works /activity/collect/works 匹配
参数名 targetType targetType 匹配

🔍 需要检查的地方

虽然API路径正确但还需要检查以下几点

1. RoomDetailActivity.java 中的参数

检查 recordWatchHistory()updateWatchHistoryWithRoomInfo() 方法中的参数名:

需要确认的参数:

  • targetType (不是 type)
  • targetId
  • targetTitle
  • ⚠️ duration (不是 viewDuration)

2. 后台服务状态

确认zhibo-h后台服务

  • 是否正在运行
  • 端口是否正确8081本地8083生产
  • 数据库连接是否正常

3. Token认证

确认Token传递

  • Android端是否正确传递Token
  • Token格式是否正确Bearer {token}
  • Token是否有效

🔧 需要修改的地方

RoomDetailActivity.java

检查参数名是否正确,特别是 duration 字段:

// 当前代码(需要确认)
body.put("targetType", "room");      // ✅ 正确
body.put("targetId", roomId);        // ✅ 正确
body.put("targetTitle", "直播间");    // ✅ 正确
body.put("duration", 0);             // ⚠️ 需要确认是duration还是viewDuration

后台期望的参数名根据UserActivityRecordController.java:

String targetType = body.get("targetType")
String targetId = body.get("targetId")
String targetTitle = body.get("targetTitle")
Integer duration = body.get("duration")  // ← 注意是duration

📝 检查清单

API路径

  • getViewHistory 路径正确
  • clearViewHistory 路径正确
  • getLikeRecords 路径正确
  • getFollowRecords 路径正确
  • getCollectedWorks 路径正确
  • recordViewHistoryNew 路径正确
  • debugToken 路径正确

参数名

  • targetType 参数名正确
  • page 参数名正确
  • pageSize 参数名正确

需要确认

  • ⚠️ RoomDetailActivity中使用的是 duration 还是 viewDuration
  • ⚠️ 后台服务是否运行
  • ⚠️ Token是否正确传递

🚀 下一步行动

1. 检查RoomDetailActivity.java

查看 recordWatchHistory() 方法中的参数:

# 搜索关键代码
grep -n "body.put" RoomDetailActivity.java | grep -E "duration|viewDuration"

2. 测试API连接

使用curl测试后台API

# 测试调试接口
curl -X GET "http://1.15.149.240:8081/api/front/activity/debug/token" \
  -H "Authorization: Bearer YOUR_TOKEN"

# 测试记录观看历史
curl -X POST "http://1.15.149.240:8081/api/front/activity/view/record" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "targetType": "room",
    "targetId": "8",
    "targetTitle": "测试直播间",
    "duration": 120
  }'

3. 查看后台日志

检查zhibo-h的日志文件

tail -f Zhibo/zhibo-h/crmeb_front_log/log_info.log | grep "观看历史"

💡 结论

API路径配置完全正确

现在需要:

  1. 确认RoomDetailActivity中的参数名特别是duration
  2. 确认后台服务正在运行
  3. 测试功能是否正常工作

如果参数名也正确,那么功能应该已经可以正常使用了!


检查时间: 2026-01-05
状态: API路径正确需要确认参数和后台服务