mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-14 12:23:39 +00:00
fix: 修复聊天记录保存异常
This commit is contained in:
@@ -43,6 +43,7 @@ public class ChatMessageBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 会话id
|
* 会话id
|
||||||
*/
|
*/
|
||||||
|
@NotBlank(message = "会话id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Long sessionId;
|
private Long sessionId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -54,14 +54,18 @@ public class ChatCostServiceImpl implements IChatCostService {
|
|||||||
String modelName = chatRequest.getModel();
|
String modelName = chatRequest.getModel();
|
||||||
|
|
||||||
ChatMessageBo chatMessageBo = new ChatMessageBo();
|
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");
|
Object userId = LocalCache.CACHE.get("userId");
|
||||||
if(userId!=null){
|
chatMessageBo.setUserId((Long) userId);
|
||||||
chatMessageBo.setUserId((Long) userId);
|
|
||||||
}else {
|
chatMessageBo.setSessionId(chatRequest.getSessionId());
|
||||||
chatMessageBo.setUserId(getUserId());
|
chatMessageBo.setContent(chatRequest.getPrompt());
|
||||||
}
|
|
||||||
// 计算总token数
|
// 计算总token数
|
||||||
ChatToken chatToken = chatTokenService.queryByUserId(chatMessageBo.getUserId(), modelName);
|
ChatToken chatToken = chatTokenService.queryByUserId(chatMessageBo.getUserId(), modelName);
|
||||||
if (chatToken == null) {
|
if (chatToken == null) {
|
||||||
@@ -95,7 +99,7 @@ public class ChatCostServiceImpl implements IChatCostService {
|
|||||||
deductUserBalance(chatMessageBo.getUserId(), numberCost);
|
deductUserBalance(chatMessageBo.getUserId(), numberCost);
|
||||||
chatMessageBo.setDeductCost(numberCost);
|
chatMessageBo.setDeductCost(numberCost);
|
||||||
}
|
}
|
||||||
chatMessageBo.setContent(chatRequest.getPrompt());
|
|
||||||
} else {
|
} else {
|
||||||
deductUserBalance(chatMessageBo.getUserId(), 0.0);
|
deductUserBalance(chatMessageBo.getUserId(), 0.0);
|
||||||
chatMessageBo.setDeductCost(0d);
|
chatMessageBo.setDeductCost(0d);
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ public class SseServiceImpl implements ISseService {
|
|||||||
chatSessionService.insertByBo(chatSessionBo);
|
chatSessionService.insertByBo(chatSessionBo);
|
||||||
chatRequest.setSessionId(chatSessionBo.getId());
|
chatRequest.setSessionId(chatSessionBo.getId());
|
||||||
}
|
}
|
||||||
|
LocalCache.CACHE.put("sessionId", chatRequest.getSessionId());
|
||||||
// 保存消息记录 并扣除费用
|
// 保存消息记录 并扣除费用
|
||||||
chatCostService.deductToken(chatRequest);
|
chatCostService.deductToken(chatRequest);
|
||||||
// 根据模型分类调用不同的处理逻辑
|
// 根据模型分类调用不同的处理逻辑
|
||||||
|
|||||||
Reference in New Issue
Block a user