feat(llm): 添加知识库信息更新功能

- 新增 KnowledgeBaseController 中的 updateKnowledgeBaseInfo 方法
- 在 KnowledgeBaseService 接口中添加 updateKnowledgeBaseInfo 方法- 实现 KnowledgeBaseServiceImpl 中的 updateKnowledgeBaseInfo 方法
- 添加相关验证方法以确保知识库存在和名称不重复
This commit is contained in:
Liuyang 2025-02-12 13:53:48 +08:00
parent 7bd527e444
commit acfa7524e0
3 changed files with 71 additions and 8 deletions

View File

@ -51,6 +51,14 @@ public class KnowledgeBaseController {
return success(true);
}
@PutMapping("/updateKnowledgeBaseInfo")
@Operation(summary = "更新知识库")
// @PreAuthorize("@ss.hasPermission('llm:knowledge-base:update')")
public CommonResult<Boolean> updateKnowledgeBaseInfo(@Valid @RequestBody KnowledgeBaseSaveReqVO updateReqVO) {
knowledgeBaseService.updateKnowledgeBaseInfo(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除知识库")
@Parameter(name = "id", description = "编号", required = true)

View File

@ -22,21 +22,21 @@ public interface KnowledgeBaseService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createKnowledgeBase(@Valid KnowledgeBaseSaveReqVO createReqVO);
Long createKnowledgeBase (@Valid KnowledgeBaseSaveReqVO createReqVO);
/**
* 更新知识库
*
* @param updateReqVO 更新信息
*/
void updateKnowledgeBase(@Valid KnowledgeBaseSaveReqVO updateReqVO);
void updateKnowledgeBase (@Valid KnowledgeBaseSaveReqVO updateReqVO);
/**
* 删除知识库
*
* @param id 编号
*/
void deleteKnowledgeBase(Long id);
void deleteKnowledgeBase (Long id);
/**
* 获得知识库
@ -44,7 +44,7 @@ public interface KnowledgeBaseService {
* @param id 编号
* @return 知识库
*/
KnowledgeBaseDO getKnowledgeBase(Long id);
KnowledgeBaseDO getKnowledgeBase (Long id);
/**
* 获得知识库分页
@ -52,14 +52,22 @@ public interface KnowledgeBaseService {
* @param pageReqVO 分页查询
* @return 知识库分页
*/
PageResult<KnowledgeBaseDO> getKnowledgeBasePage(KnowledgeBasePageReqVO pageReqVO);
PageResult<KnowledgeBaseDO> getKnowledgeBasePage (KnowledgeBasePageReqVO pageReqVO);
List<KnowledgeBaseDO> getKnowledgeBaseList();
List<KnowledgeBaseDO> getKnowledgeBaseList ();
/**
* 返回知识库详情
*
* @param id
* @return
*/
KnowledgeBaseRespVO getKnowledgeBase1(Long id);
KnowledgeBaseRespVO getKnowledgeBase1 (Long id);
/**
* 更新知识库信息
*
* @param updateReqVO 更新信息
*/
void updateKnowledgeBaseInfo (@Valid KnowledgeBaseSaveReqVO updateReqVO);
}

View File

@ -110,7 +110,7 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
List<Long> deleteIds = knowledgeDocumentsMapper.selectDeleteIds(updateReqVO.getId());
asyncKnowledgeBase.createKnowledgeBase(newDocuments, deleteIds);
// 4.5 异步处理知识库外挂
// asyncKnowledgeBase.knowledgeEmbed(newDocuments,updateReqVO.getId());
// asyncKnowledgeBase.knowledgeEmbed(newDocuments,updateReqVO.getId());
} else {
// 5. 如果传入的文档列表为空则删除所有关联文档
knowledgeDocumentsMapper.delete(new LambdaQueryWrapperX<KnowledgeDocumentsDO>()
@ -211,4 +211,51 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService {
return null;
}
/**
* 更新知识库信息
*
* @param updateReqVO 更新信息
*/
@Override
public void updateKnowledgeBaseInfo (KnowledgeBaseSaveReqVO updateReqVO) {
// 1. 校验知识库是否存在
KnowledgeBaseDO knowledgeBaseDO = validateKnowledgeInfo(updateReqVO.getId());
// 2. 校验知识库名称是否重复
validateKnowledgeBaseNameExists(updateReqVO);
// 3. 更新知识库主表
updateKnowledgeBaseFields(knowledgeBaseDO, updateReqVO);
// 4. 执行更新
knowledgeBaseMapper.updateById(knowledgeBaseDO);
}
/**
* 校验知识库是否存在
*
* @param id 知识库ID
* @return 知识库实体
*/
private KnowledgeBaseDO validateKnowledgeInfo (Long id) {
KnowledgeBaseDO knowledgeBaseDO = knowledgeBaseMapper.selectById(id);
if (knowledgeBaseDO == null) {
throw exception(KNOWLEDGE_BASE_NOT_EXISTS);
}
return knowledgeBaseDO;
}
/**
* 更新知识库字段
*
* @param knowledgeBaseDO 知识库实体
* @param updateReqVO 更新请求VO
*/
private void updateKnowledgeBaseFields (KnowledgeBaseDO knowledgeBaseDO, KnowledgeBaseSaveReqVO updateReqVO) {
// 基础信息只有名称简介logo会修改
knowledgeBaseDO.setKnowledgeBaseName(updateReqVO.getKnowledgeBaseName())
.setKnowledgeBaseIntro(updateReqVO.getKnowledgeBaseIntro())
.setKnowledgeBaseLogo(updateReqVO.getKnowledgeBaseLogo());
}
}