优化了消息点赞和反馈列表以数组形式返回
This commit is contained in:
@@ -352,11 +352,11 @@ public class AiChatController extends BaseController {
|
||||
/**
|
||||
* 获取APP的消息点赞和反馈列表
|
||||
* <p>
|
||||
* 该接口用于获取应用的终端用户反馈、点赞列表
|
||||
* 该接口用于获取整个Dify应用的终端用户反馈、点赞列表,类似Dify的日志界面
|
||||
* </p>
|
||||
*
|
||||
* @param page 页码,默认值:1
|
||||
* @param limit 每页数量,默认值:20
|
||||
* @param limit 每页数量,默认值:20,最大100
|
||||
* @return 包含点赞、反馈列表的统一响应结果
|
||||
*/
|
||||
@GetMapping("/app/feedbacks")
|
||||
@@ -365,9 +365,12 @@ public class AiChatController extends BaseController {
|
||||
@RequestParam(value = "limit", defaultValue = "20") String limit) {
|
||||
|
||||
try {
|
||||
// 参数校验和限制
|
||||
int limitValue = Math.min(Math.max(Integer.parseInt(limit), 1), 100);
|
||||
|
||||
// 构建请求URL
|
||||
String url = "http://47.112.118.149:8100/v1/app/feedbacks?page=" + page + "&limit=" + limit;
|
||||
//String url = "http://localhost:8080/v1/app/feedbacks?page=" + page + "&limit=" + limit;
|
||||
String url = "http://47.112.118.149:8100/v1/app/feedbacks?page=" + page + "&limit=" + limitValue;
|
||||
|
||||
// 构建请求
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
@@ -408,26 +411,43 @@ public class AiChatController extends BaseController {
|
||||
userMap.put("email", userNode.has("email") ? userNode.get("email").asText() : null);
|
||||
feedbackItem.put("from_end_user", userMap);
|
||||
}
|
||||
|
||||
// 提取消息内容
|
||||
if (feedbackNode.has("message")) {
|
||||
JsonNode messageNode = feedbackNode.get("message");
|
||||
Map<String, Object> messageMap = new HashMap<>();
|
||||
messageMap.put("id", messageNode.has("id") ? messageNode.get("id").asText() : null);
|
||||
messageMap.put("query", messageNode.has("query") ? messageNode.get("query").asText() : null);
|
||||
messageMap.put("answer", messageNode.has("answer") ? messageNode.get("answer").asText() : null);
|
||||
messageMap.put("created_at", messageNode.has("created_at") ? messageNode.get("created_at").asLong() : null);
|
||||
feedbackItem.put("message", messageMap);
|
||||
}
|
||||
|
||||
feedbackList.add(feedbackItem);
|
||||
}
|
||||
}
|
||||
|
||||
// 构建返回结果
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("data", feedbackList);
|
||||
result.put("page", rootNode.has("page") ? rootNode.get("page").asInt() : Integer.parseInt(page));
|
||||
result.put("limit", rootNode.has("limit") ? rootNode.get("limit").asInt() : Integer.parseInt(limit));
|
||||
result.put("has_more", rootNode.has("has_more") ? rootNode.get("has_more").asBoolean() : false);
|
||||
|
||||
return AjaxResult.success(result);
|
||||
// 直接返回数组形式的数据
|
||||
return AjaxResult.success(feedbackList);
|
||||
} else {
|
||||
String errorMsg = "获取反馈列表失败: " + response.code();
|
||||
String errorMsg = "获取反馈列表失败: " + response.code() + " " + response.message();
|
||||
try (ResponseBody errorBody = response.body()) {
|
||||
if (errorBody != null) {
|
||||
errorMsg += " - " + errorBody.string();
|
||||
String errorBodyString = errorBody.string();
|
||||
errorMsg += " - 响应体: " + errorBodyString;
|
||||
|
||||
// 尝试解析响应体中的错误信息
|
||||
try {
|
||||
JsonNode errorNode = mapper.readTree(errorBodyString);
|
||||
if (errorNode.has("message")) {
|
||||
errorMsg += " - 错误详情: " + errorNode.get("message").asText();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 如果无法解析为JSON,就保持原始响应体
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
errorMsg += " (无法读取错误详情)";
|
||||
errorMsg += " (无法读取错误详情): " + e.getMessage();
|
||||
}
|
||||
return AjaxResult.error(errorMsg);
|
||||
}
|
||||
|
Reference in New Issue
Block a user