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}; +