fix: 修复聊天记录保存异常

This commit is contained in:
ageer
2025-05-17 12:51:29 +08:00
parent 158a0190b5
commit c7d0e9337a
3 changed files with 13 additions and 7 deletions

View File

@@ -43,6 +43,7 @@ public class ChatMessageBo extends BaseEntity {
/**
* 会话id
*/
@NotBlank(message = "会话id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long sessionId;
/**

View File

@@ -54,14 +54,18 @@ public class ChatCostServiceImpl implements IChatCostService {
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());
// 计算总token数
ChatToken chatToken = chatTokenService.queryByUserId(chatMessageBo.getUserId(), modelName);
if (chatToken == null) {
@@ -95,7 +99,7 @@ public class ChatCostServiceImpl implements IChatCostService {
deductUserBalance(chatMessageBo.getUserId(), numberCost);
chatMessageBo.setDeductCost(numberCost);
}
chatMessageBo.setContent(chatRequest.getPrompt());
} else {
deductUserBalance(chatMessageBo.getUserId(), 0.0);
chatMessageBo.setDeductCost(0d);

View File

@@ -89,6 +89,7 @@ public class SseServiceImpl implements ISseService {
chatSessionService.insertByBo(chatSessionBo);
chatRequest.setSessionId(chatSessionBo.getId());
}
LocalCache.CACHE.put("sessionId", chatRequest.getSessionId());
// 保存消息记录 并扣除费用
chatCostService.deductToken(chatRequest);
// 根据模型分类调用不同的处理逻辑