From aa86e3f02aea9959a6a4fdb4af9c57d8599dd6a4 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Tue, 21 Apr 2026 14:14:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E6=B7=BB=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E8=8E=B7=E5=8F=96=E8=AF=AD=E4=B9=89=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在ChatManageService中新增getParseInfos方法用于批量查询 - 实现ChatManageServiceImpl中的getParseInfos具体逻辑 - 优化SqlReplaceHelper中的代码格式化处理 - 支持根据questionId批量获取多个语义解析结果 --- .../chat/server/service/ChatManageService.java | 2 ++ .../chat/server/service/impl/ChatManageServiceImpl.java | 9 +++++++++ .../supersonic/common/jsqlparser/SqlReplaceHelper.java | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java index f715fe63f..eaf105307 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/ChatManageService.java @@ -52,4 +52,6 @@ public interface ChatManageService { List batchAddParse(ChatParseReq chatParseReq, ChatParseResp chatParseResp); SemanticParseInfo getParseInfo(Long questionId, int parseId); + + List getParseInfos(Long questionId); } diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java index 9d87c8ceb..928d67fbe 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/service/impl/ChatManageServiceImpl.java @@ -244,4 +244,13 @@ public class ChatManageServiceImpl implements ChatManageService { return JSONObject.parseObject(chatParseDO.getParseInfo(), SemanticParseInfo.class); } } + + @Override + public List getParseInfos(Long questionId) { + List chatParseDOs = + chatQueryRepository.getParseInfoList(Collections.singletonList(questionId)); + return chatParseDOs.stream().map(chatParseDO -> JSONObject + .parseObject(chatParseDO.getParseInfo(), SemanticParseInfo.class)) + .collect(Collectors.toList()); + } } diff --git a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java index f7aae8919..c7632145f 100644 --- a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java +++ b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlReplaceHelper.java @@ -194,7 +194,8 @@ public class SqlReplaceHelper { setOperationList.getSelects().forEach(subSelectBody -> { if (subSelectBody instanceof PlainSelect) { PlainSelect subPlainSelect = (PlainSelect) subSelectBody; - replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace, subPlainSelect); + replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace, + subPlainSelect); } else if (subSelectBody instanceof ParenthesedSelect) { replaceFieldsInPlainOneSelect(fieldNameMap, exactReplace, ((ParenthesedSelect) subSelectBody).getPlainSelect());