Преглед изворни кода

feat: PortraitController 新增 /generate /regenerate 端点(AI 画像生成/重画入口)

- POST /api/user/portrait/generate: AI 分析行为+五维指标生成画像
- POST /api/user/portrait/regenerate: 参考旧画像重画,体现变化与延续
- 复用 getPortrait 返回 renderedSnapshot,portraitPrompt 覆盖为本次结果
E2E Test Bot пре 3 дана
родитељ
комит
68a9c8026d

+ 25 - 0
cfc-backend/src/main/java/com/etotem/cfc/controller/user/PortraitController.java

@@ -37,4 +37,29 @@ public class PortraitController {
         portraitService.updatePortraitPrompt(userId, portraitPrompt);
         return Result.success("保存成功");
     }
+
+    @PostMapping("/generate")
+    public Result<Map<String, Object>> generatePortrait(
+            @RequestAttribute("userId") Long userId,
+            @RequestBody Map<String, Object> params) {
+        Long memberId = params.get("memberId") != null
+                ? Long.valueOf(params.get("memberId").toString()) : null;
+        String portrait = portraitService.generatePortrait(userId, memberId);
+        // getPortrait 提供渲染快照(renderedSnapshot),portrait 覆盖为本次生成结果
+        Map<String, Object> result = portraitService.getPortrait(userId, null, memberId);
+        result.put("portraitPrompt", portrait);
+        return Result.success(result);
+    }
+
+    @PostMapping("/regenerate")
+    public Result<Map<String, Object>> regeneratePortrait(
+            @RequestAttribute("userId") Long userId,
+            @RequestBody Map<String, Object> params) {
+        Long memberId = params.get("memberId") != null
+                ? Long.valueOf(params.get("memberId").toString()) : null;
+        String portrait = portraitService.regeneratePortrait(userId, memberId);
+        Map<String, Object> result = portraitService.getPortrait(userId, null, memberId);
+        result.put("portraitPrompt", portrait);
+        return Result.success(result);
+    }
 }