From 9fc1285c0935148dd268c578b0808f90d4896f87 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sun, 4 May 2025 20:34:49 +0800 Subject: [PATCH] Merge pull request #1101 from xinnan-tech/hot-fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update:删除智能体时删除聊天记录 --- .../agent/controller/AgentController.java | 2 ++ .../agent/dao/AiAgentChatHistoryDao.java | 17 ++++++++++++++++- .../agent/service/AgentChatHistoryService.java | 7 +++++++ .../impl/AgentChatHistoryServiceImpl.java | 8 ++++++++ .../mapper/agent/AiAgentChatHistoryDao.xml | 14 ++++++++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java index b6c0ac62..9368cf6b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java @@ -192,6 +192,8 @@ public class AgentController { public Result delete(@PathVariable String id) { // 先删除关联的设备 deviceService.deleteByAgentId(id); + // 删除关联的聊天记录 + agentChatHistoryService.deleteByAgentId(id); // 再删除智能体 agentService.deleteById(id); return new Result<>(); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java index 9c07be1d..43a5f1ce 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/dao/AiAgentChatHistoryDao.java @@ -1,7 +1,9 @@ package xiaozhi.modules.agent.dao; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + import xiaozhi.modules.agent.entity.AgentChatHistoryEntity; /** @@ -13,4 +15,17 @@ import xiaozhi.modules.agent.entity.AgentChatHistoryEntity; */ @Mapper public interface AiAgentChatHistoryDao extends BaseMapper { + /** + * 根据智能体ID删除音频 + * + * @param agentId 智能体ID + */ + void deleteAudioByAgentId(String agentId); + + /** + * 根据智能体ID删除聊天历史记录 + * + * @param agentId 智能体ID + */ + void deleteHistoryByAgentId(String agentId); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java index e729c6dd..889f64cd 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentChatHistoryService.java @@ -35,4 +35,11 @@ public interface AgentChatHistoryService extends IService getChatHistoryBySessionId(String agentId, String sessionId); + + /** + * 根据智能体ID删除聊天记录 + * + * @param agentId 智能体ID + */ + void deleteByAgentId(String agentId); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java index 18669a6c..cc7236ae 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentChatHistoryServiceImpl.java @@ -6,6 +6,7 @@ import java.util.Map; import java.util.stream.Collectors; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -74,4 +75,11 @@ public class AgentChatHistoryServiceImpl extends ServiceImpl + + + DELETE FROM ai_agent_chat_audio + WHERE id IN ( + SELECT audio_id + FROM ai_agent_chat_history + WHERE agent_id = #{agentId} + ); + + + + DELETE FROM ai_agent_chat_history + WHERE agent_id = #{agentId}; +