diff --git a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java index 5f0c2d393..a12d8e2ec 100644 --- a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java +++ b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java @@ -94,6 +94,7 @@ public interface ErrorCodeConstants { ErrorCode DATA_PROCESS_TASK_NAME_NOT_EXISTS = new ErrorCode(10038, "数据处理任务名称已存在"); ErrorCode FINE_TUNING_TASK_NAME_NOT_EXISTS = new ErrorCode(10039, "模型调优任务名称已存在"); ErrorCode LEARNING_RESOURCES_NAME_NOT_EXISTS = new ErrorCode(10040, "学习资源标题名称已存在"); + ErrorCode KNOWLEDGE_BASE_NAME_NOT_EXISTS = new ErrorCode(10040, "知识库名称已存在"); } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java index 15a6ed235..a9ee07f45 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/knowledgebase/KnowledgeBaseServiceImpl.java @@ -9,15 +9,18 @@ import cn.iocoder.yudao.module.llm.controller.admin.knowledgebase.vo.KnowledgeBa import cn.iocoder.yudao.module.llm.controller.admin.knowledgebase.vo.KnowledgeBaseSaveReqVO; import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo.KnowledgeDocumentsRespVO; import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo.KnowledgeDocumentsSaveReqVO; +import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO; import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgebase.KnowledgeBaseDO; import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocuments.KnowledgeDocumentsDO; import cn.iocoder.yudao.module.llm.dal.mysql.knowledgebase.KnowledgeBaseMapper; import cn.iocoder.yudao.module.llm.dal.mysql.knowledgedocuments.KnowledgeDocumentsMapper; import cn.iocoder.yudao.module.llm.service.async.AsyncKnowledgeBase; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.DATASET_NAME_EXISTS; import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.KNOWLEDGE_BASE_NOT_EXISTS; import javax.annotation.Resource; @@ -43,6 +46,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { @Override public Long createKnowledgeBase(KnowledgeBaseSaveReqVO createReqVO) { + validateKnowledgeBaseNameExists(createReqVO); // 插入 KnowledgeBaseDO knowledgeBase = BeanUtils.toBean(createReqVO, KnowledgeBaseDO.class); knowledgeBaseMapper.insert(knowledgeBase); @@ -54,6 +58,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { public void updateKnowledgeBase(KnowledgeBaseSaveReqVO updateReqVO) { // 校验存在 validateKnowledgeBaseExists(updateReqVO.getId()); + validateKnowledgeBaseNameExists(updateReqVO); // 更新 KnowledgeBaseDO updateObj = BeanUtils.toBean(updateReqVO, KnowledgeBaseDO.class); knowledgeBaseMapper.updateById(updateObj); @@ -107,6 +112,19 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { } } + private void validateKnowledgeBaseNameExists(KnowledgeBaseSaveReqVO reqVO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(KnowledgeBaseDO::getKnowledgeBaseName, reqVO.getKnowledgeBaseName()); + + if (reqVO.getId() != null){ + wrapper.ne(KnowledgeBaseDO::getId, reqVO.getId()); + } + List knowledgeBaseDos = knowledgeBaseMapper.selectList(wrapper); + if (com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isNotEmpty(knowledgeBaseDos)){ + throw exception(KNOWLEDGE_BASE_NAME_NOT_EXISTS); + } + } + @Override public KnowledgeBaseDO getKnowledgeBase(Long id) { return knowledgeBaseMapper.selectById(id);