From 3670e993adcbd2efc6e3784e0bb59f8151a63fc8 Mon Sep 17 00:00:00 2001 From: "qinyong@9artedu.com" Date: Fri, 26 Jun 2026 10:18:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E9=94=AE=E8=AF=9D=E6=9C=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AF=AD=E9=9F=B3=E8=81=8A=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generation/controller/GenerationController.java | 12 +++++++++++- .../generation/mapper/ArchiveMessageMapper.java | 8 ++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java b/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java index a165000..2cff949 100644 --- a/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java +++ b/backend/generation-service/src/main/java/com/artedu/generation/controller/GenerationController.java @@ -131,11 +131,21 @@ public class GenerationController { // 历史消息上下文 List top15 = (messages == null || messages.isEmpty()) ? new ArrayList<>() - : messages.stream().limit(15).collect(Collectors.toList()); + : messages.stream() + .filter(msg -> !( + "voice".equals(msg.getMsgtype()) && + msg.getContent() != null && + !msg.getContent().contains("[语音]") + )) + .limit(15) + .collect(Collectors.toList()); StringBuilder sb = new StringBuilder(); boolean is_external = true; int count = 0; for (ArchiveMessage msg : messages) { + if("voice".equals(msg.getMsgtype()) && msg.getContent() != null && !msg.getContent().contains("[语音]")){ + continue; + } sb.append(msg.getCreatedAt()).append(" ").append(msg.getFromRole()).append(" ").append(msg.getContent()).append("\n"); if ("EXTERNAL".equals(messages.get(0).getFromRole())){ //第一条消息是客户的消息 则继续 if(count<3){ diff --git a/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java b/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java index 812914f..ae77c70 100644 --- a/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java +++ b/backend/generation-service/src/main/java/com/artedu/generation/mapper/ArchiveMessageMapper.java @@ -14,12 +14,12 @@ public interface ArchiveMessageMapper extends BaseMapper { @Select("") @@ -33,7 +33,7 @@ public interface ArchiveMessageMapper extends BaseMapper { @Select("SELECT created_at, from_role, content FROM archive_messages " + "WHERE roomid = #{roomid} " + - "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype='text' " + + "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype in ('text','voice') " + "AND content IS NOT NULL AND content != '' " + "ORDER BY msgtime DESC") List selectGroupChatMessages(@Param("roomid") String roomid, @@ -45,7 +45,7 @@ public interface ArchiveMessageMapper extends BaseMapper { */ @Select("SELECT msgtime, created_at, from_user, to_user, from_role, content FROM archive_messages " + "WHERE (from_user = #{fromUser} OR to_user = #{fromUser}) " + - "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype='text' " + + "AND msgtime >= #{startTime} AND msgtime < #{endTime} AND msgtype in ('text','voice') " + "AND content IS NOT NULL AND content != '' " + "ORDER BY msgtime DESC LIMIT 100") List selectMessagesByFromUser(@Param("fromUser") String fromUser,