From c7d0e9337ad62ca2776464c0b8ab3ba2d7a652df Mon Sep 17 00:00:00 2001 From: ageer <ageerle@163.com> Date: 星期六, 17 五月 2025 12:51:29 +0800 Subject: [PATCH] fix: 修复聊天记录保存异常 --- ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java | 1 + ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java | 1 + ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java | 18 +++++++++++------- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java index 012d526..ee93c13 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java @@ -43,6 +43,7 @@ /** * 浼氳瘽id */ + @NotBlank(message = "浼氳瘽id涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class }) private Long sessionId; /** diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java index be99044..5c51af7 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java @@ -54,14 +54,18 @@ String modelName = chatRequest.getModel(); ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setSessionId(chatRequest.getSessionId()); + + if(chatRequest.getSessionId() == null){ + Object sessionId = LocalCache.CACHE.get("sessionId"); + chatRequest.setSessionId((Long) sessionId); + } Object userId = LocalCache.CACHE.get("userId"); - if(userId!=null){ - chatMessageBo.setUserId((Long) userId); - }else { - chatMessageBo.setUserId(getUserId()); - } + chatMessageBo.setUserId((Long) userId); + + chatMessageBo.setSessionId(chatRequest.getSessionId()); + chatMessageBo.setContent(chatRequest.getPrompt()); + // 璁$畻鎬籺oken鏁� ChatToken chatToken = chatTokenService.queryByUserId(chatMessageBo.getUserId(), modelName); if (chatToken == null) { @@ -95,7 +99,7 @@ deductUserBalance(chatMessageBo.getUserId(), numberCost); chatMessageBo.setDeductCost(numberCost); } - chatMessageBo.setContent(chatRequest.getPrompt()); + } else { deductUserBalance(chatMessageBo.getUserId(), 0.0); chatMessageBo.setDeductCost(0d); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 5c1e5ea..741e5ce 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -89,6 +89,7 @@ chatSessionService.insertByBo(chatSessionBo); chatRequest.setSessionId(chatSessionBo.getId()); } + LocalCache.CACHE.put("sessionId", chatRequest.getSessionId()); // 淇濆瓨娑堟伅璁板綍 骞舵墸闄よ垂鐢� chatCostService.deductToken(chatRequest); // 鏍规嵁妯″瀷鍒嗙被璋冪敤涓嶅悓鐨勫鐞嗛�昏緫 -- Gitblit v1.9.3