This commit is contained in:
2025-07-25 16:18:33 +08:00
parent c09cbc3f01
commit a4c6140ed5
50 changed files with 2249 additions and 1599 deletions
@@ -2,8 +2,8 @@ package com.emotion.controller;
import com.emotion.common.Result;
import com.emotion.service.AIChatService;
import com.emotion.util.CurrentUserUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,13 +13,13 @@ import java.util.Map;
/**
* 情绪总结控制器
*
*
* @author emotion-museum
* @date 2025-07-25
*/
@Slf4j
@RestController
@RequestMapping("/api/emotion-summary")
@RequestMapping("/emotion-summary")
@Tag(name = "情绪总结管理", description = "用户情绪记录总结和分析功能")
public class EmotionSummaryController {
@@ -27,39 +27,46 @@ public class EmotionSummaryController {
private AIChatService aiChatService;
@Operation(summary = "生成用户当天的情绪记录总结", description = "基于用户当天的聊天记录生成情绪分析和记录")
@PostMapping("/generate/{userId}")
public Result<Map<String, Object>> generateEmotionSummary(
@Parameter(description = "用户ID") @PathVariable String userId) {
log.info("收到生成情绪记录总结请求: userId={}", userId);
@PostMapping("/generate")
public Result<Map<String, Object>> generateEmotionSummary() {
try {
// 从上下文中获取当前用户ID
String userId = CurrentUserUtil.requireCurrentUserId();
log.info("收到生成情绪记录总结请求: userId={}", userId);
// 调用AI服务生成情绪总结
Map<String, Object> result = aiChatService.generateEmotionSummary(userId);
if ((Boolean) result.get("success")) {
log.info("情绪记录总结生成成功: userId={}", userId);
return Result.success(result, "情绪记录总结生成成功");
return Result.success("情绪记录总结生成成功", result);
} else {
String message = (String) result.get("message");
log.warn("情绪记录总结生成失败: userId={}, message={}", userId, message);
return Result.error(message);
}
} catch (IllegalStateException e) {
log.warn("用户认证失败: {}", e.getMessage());
return Result.error(e.getMessage());
} catch (Exception e) {
log.error("生成情绪记录总结时发生异常: userId={}", userId, e);
log.error("生成情绪记录总结时发生异常", e);
return Result.error("生成情绪记录总结失败: " + e.getMessage());
}
}
@Operation(summary = "获取用户情绪记录总结状态", description = "检查用户今天是否已经生成过情绪记录")
@GetMapping("/status/{userId}")
public Result<Map<String, Object>> getEmotionSummaryStatus(
@Parameter(description = "用户ID") @PathVariable String userId) {
log.info("查询用户情绪记录总结状态: userId={}", userId);
@GetMapping("/status")
public Result<Map<String, Object>> getEmotionSummaryStatus() {
try {
// 从上下文中获取当前用户ID
String userId = CurrentUserUtil.requireCurrentUserId();
log.info("查询用户情绪记录总结状态: userId={}", userId);
// 这里可以添加检查用户今天是否已经生成过情绪记录的逻辑
// 暂时返回基本状态信息
Map<String, Object> status = Map.of(
@@ -67,11 +74,14 @@ public class EmotionSummaryController {
"canGenerate", true,
"message", "可以生成情绪记录总结"
);
return Result.success(status);
} catch (IllegalStateException e) {
log.warn("用户认证失败: {}", e.getMessage());
return Result.error(e.getMessage());
} catch (Exception e) {
log.error("查询情绪记录总结状态时发生异常: userId={}", userId, e);
log.error("查询情绪记录总结状态时发生异常", e);
return Result.error("查询状态失败: " + e.getMessage());
}
}