From ad3c42019154cce958fe64eb74d4b946f9da782b Mon Sep 17 00:00:00 2001 From: rainv123 <2148537152@qq.com> Date: Thu, 13 Nov 2025 10:49:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BD=93=E5=88=A0=E9=99=A4=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E8=AE=B0=E5=BD=95=E6=97=B6=EF=BC=8C=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=A0=E9=99=A4=E7=9B=B8=E5=85=B3=E7=9A=84=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=98=A0=E5=B0=84=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AgentPluginMappingService.java | 7 +++++++ .../impl/AgentPluginMappingServiceImpl.java | 19 +++++++++++++++++++ .../impl/KnowledgeBaseServiceImpl.java | 2 ++ .../resources/db/changelog/202511131016.sql | 13 +++++++++++++ .../db/changelog/db.changelog-master.yaml | 9 ++++++++- 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 main/manager-api/src/main/resources/db/changelog/202511131016.sql diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentPluginMappingService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentPluginMappingService.java index 79d97d2e..8f742ba1 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentPluginMappingService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentPluginMappingService.java @@ -26,4 +26,11 @@ public interface AgentPluginMappingService extends IService * @param agentId */ void deleteByAgentId(String agentId); + + /** + * 根据知识库ID删除插件映射记录 + * + * @param knowledgeBaseId 知识库ID + */ + void deleteByKnowledgeBaseId(String knowledgeBaseId); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentPluginMappingServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentPluginMappingServiceImpl.java index fe197fbc..baf38d71 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentPluginMappingServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentPluginMappingServiceImpl.java @@ -6,12 +6,14 @@ import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import xiaozhi.common.utils.JsonUtils; import xiaozhi.modules.agent.dao.AgentPluginMappingMapper; import xiaozhi.modules.agent.entity.AgentPluginMapping; @@ -27,9 +29,11 @@ import xiaozhi.modules.model.service.ModelConfigService; */ @Service @RequiredArgsConstructor +@Slf4j public class AgentPluginMappingServiceImpl extends ServiceImpl implements AgentPluginMappingService { private final AgentPluginMappingMapper agentPluginMappingMapper; + @Lazy private final KnowledgeBaseService knowledgeBaseService; private final ModelConfigService modelConfigService; @@ -102,4 +106,19 @@ public class AgentPluginMappingServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("plugin_id", knowledgeBaseId); + int deletedCount = agentPluginMappingMapper.delete(updateWrapper); + + if (deletedCount > 0) { + log.info("已删除 {} 条与知识库ID '{}' 相关的插件映射记录", deletedCount, knowledgeBaseId); + } + } + } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java index b56923de..14420254 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/knowledge/service/impl/KnowledgeBaseServiceImpl.java @@ -314,6 +314,8 @@ public class KnowledgeBaseServiceImpl extends BaseServiceImpl 0 ? "成功" : "失败"); } diff --git a/main/manager-api/src/main/resources/db/changelog/202511131016.sql b/main/manager-api/src/main/resources/db/changelog/202511131016.sql new file mode 100644 index 00000000..b56a6763 --- /dev/null +++ b/main/manager-api/src/main/resources/db/changelog/202511131016.sql @@ -0,0 +1,13 @@ +-- 当删除知识库记录时,自动删除相关的插件映射记录 + +-- 先删除可能存在的同名触发器(如果存在) +DROP TRIGGER IF EXISTS trigger_delete_plugin_mapping_on_knowledgebase_delete; + +-- 创建新的触发器 +CREATE TRIGGER trigger_delete_plugin_mapping_on_knowledgebase_delete +AFTER DELETE ON ai_rag_dataset +FOR EACH ROW +BEGIN + -- 删除与该知识库ID相关的插件映射记录 + DELETE FROM ai_agent_plugin_mapping WHERE plugin_id = OLD.id; +END; diff --git a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml index 326d6f57..0aee00a1 100755 --- a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml @@ -415,4 +415,11 @@ databaseChangeLog: changes: - sqlFile: encoding: utf8 - path: classpath:db/changelog/202510251150.sql \ No newline at end of file + path: classpath:db/changelog/202510251150.sql + - changeSet: + id: 202511131016 + author: rainv123 + changes: + - sqlFile: + encoding: utf8 + path: classpath:db/changelog/202511131016.sql