|
@@ -2,15 +2,15 @@ package com.zjugis.ai.knowledge.service;
|
|
|
|
|
|
import cn.hutool.core.io.IoUtil;
|
|
|
import com.zjugis.ai.knowledge.common.exception.ErrorCode;
|
|
|
-import com.zjugis.ai.knowledge.common.pojo.PageResult;
|
|
|
import com.zjugis.ai.knowledge.controller.vo.KnowledgeFileCreateReqVO;
|
|
|
import com.zjugis.ai.knowledge.controller.vo.KnowledgeFilePageReqVO;
|
|
|
import com.zjugis.ai.knowledge.controller.vo.KnowledgeFileUpdateReqVO;
|
|
|
import com.zjugis.ai.knowledge.dal.dataobject.KnowledgeFileDO;
|
|
|
import com.zjugis.ai.knowledge.dal.mapper.KnowledgeFileMapper;
|
|
|
import com.zjugis.ai.knowledge.retrofit.docs.UploadDocsService;
|
|
|
-import com.zjugis.ai.knowledge.retrofit.docs.params.UploadDocsReqVO;
|
|
|
-import com.zjugis.ai.knowledge.retrofit.docs.vo.UploadDocsRespVO;
|
|
|
+import com.zjugis.ai.knowledge.retrofit.docs.UploadDocsService2;
|
|
|
+import com.zjugis.ai.knowledge.retrofit.docs.params.DeleteDocsReqVO;
|
|
|
+import com.zjugis.ai.knowledge.retrofit.docs.vo.DocsRespVO;
|
|
|
import com.zjugis.ai.knowledge.util.files.FileTypeUtils;
|
|
|
import com.zjugis.ai.knowledge.util.object.BeanUtils;
|
|
|
import lombok.SneakyThrows;
|
|
@@ -21,10 +21,9 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.zjugis.ai.knowledge.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
|
|
@@ -34,33 +33,36 @@ import static com.zjugis.ai.knowledge.common.exception.util.ServiceExceptionUtil
|
|
|
* @Version 1.0
|
|
|
*/
|
|
|
@Service
|
|
|
-public class KnowledgeFileServiceImpl implements KnowledgeFileService{
|
|
|
+public class KnowledgeFileServiceImpl implements KnowledgeFileService {
|
|
|
|
|
|
+ private final String BASE_NAME = "policy";
|
|
|
@Resource
|
|
|
private KnowledgeFileMapper knowledgeFileMapper;
|
|
|
@Resource
|
|
|
private UploadDocsService uploadDocsService;
|
|
|
+ @Resource
|
|
|
+ private UploadDocsService2 uploadDocsService2;
|
|
|
|
|
|
@Override
|
|
|
@SneakyThrows
|
|
|
- public Long createKnowledgeDocument(KnowledgeFileCreateReqVO createReqVO){
|
|
|
+ public Long createKnowledgeDocument(KnowledgeFileCreateReqVO createReqVO) {
|
|
|
KnowledgeFileDO fileDO = BeanUtils.toBean(createReqVO, KnowledgeFileDO.class);
|
|
|
MultipartFile file = createReqVO.getFile();
|
|
|
- if (file !=null){
|
|
|
+ if (file != null) {
|
|
|
byte[] content = IoUtil.readBytes(file.getInputStream());
|
|
|
fileDO.setSize(content.length);
|
|
|
String type = FileTypeUtils.getMineType(content, file.getOriginalFilename());
|
|
|
fileDO.setType(type);
|
|
|
// 准备文本参数
|
|
|
RequestBody knowledgeBaseName =
|
|
|
- RequestBody.create(MediaType.parse("text/plain"), "temp");
|
|
|
+ RequestBody.create(MediaType.parse("text/plain"), BASE_NAME);
|
|
|
// 准备文件列表
|
|
|
RequestBody fileRQ = RequestBody.create(MediaType.parse(type), content);
|
|
|
MultipartBody.Part part = MultipartBody.Part.createFormData("picture", file.getName(), fileRQ);
|
|
|
- List<MultipartBody.Part> parts=new ArrayList<>();
|
|
|
+ List<MultipartBody.Part> parts = new ArrayList<>();
|
|
|
parts.add(part);
|
|
|
- UploadDocsRespVO respVO = uploadDocsService.upload(knowledgeBaseName, parts);
|
|
|
- if(respVO.getCode()!=200){
|
|
|
+ DocsRespVO respVO = uploadDocsService.upload(knowledgeBaseName, parts);
|
|
|
+ if (respVO.getCode() != 200) {
|
|
|
throw exception(new ErrorCode(respVO.getCode(), respVO.getMsg()));
|
|
|
}
|
|
|
}
|
|
@@ -78,4 +80,26 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService{
|
|
|
KnowledgeFileDO fileDO = BeanUtils.toBean(reqVO, KnowledgeFileDO.class);
|
|
|
knowledgeFileMapper.updateById(fileDO);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void deleteKnowledgeDocument(Long id) {
|
|
|
+ // 校验是否还有子知识库
|
|
|
+ if (knowledgeFileMapper.selectCountByParentId(id) > 0) {
|
|
|
+ throw exception(new ErrorCode(10011, "存在子文件或文件目录,无法删除"));
|
|
|
+ }
|
|
|
+ KnowledgeFileDO knowledgeFileDO = knowledgeFileMapper.selectById(id);
|
|
|
+ if(knowledgeFileDO.getType()!=null){
|
|
|
+ DeleteDocsReqVO reqVO = new DeleteDocsReqVO();
|
|
|
+ reqVO.setKnowledge_base_name(BASE_NAME);
|
|
|
+ reqVO.setFile_names(Arrays.asList(knowledgeFileDO.getName()));
|
|
|
+ DocsRespVO respVO = uploadDocsService2.delete(reqVO);
|
|
|
+ if (respVO.getCode() != 200) {
|
|
|
+ throw exception(new ErrorCode(respVO.getCode(), respVO.getMsg()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 标记删除
|
|
|
+ knowledgeFileMapper.deleteById(id);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|