知识库文档上传同时备份至OSS服务器
This commit is contained in:
@@ -6,6 +6,8 @@ import com.gxwebsoft.ai.config.KnowledgeBaseConfig;
|
|||||||
import com.gxwebsoft.ai.factory.KnowledgeBaseClientFactory;
|
import com.gxwebsoft.ai.factory.KnowledgeBaseClientFactory;
|
||||||
import com.gxwebsoft.ai.util.AiCloudDataCenterUtil;
|
import com.gxwebsoft.ai.util.AiCloudDataCenterUtil;
|
||||||
import com.gxwebsoft.ai.util.AiCloudKnowledgeBaseUtil;
|
import com.gxwebsoft.ai.util.AiCloudKnowledgeBaseUtil;
|
||||||
|
import com.gxwebsoft.common.system.controller.FileController;
|
||||||
|
import com.gxwebsoft.common.system.entity.FileRecord;
|
||||||
import com.gxwebsoft.common.system.entity.User;
|
import com.gxwebsoft.common.system.entity.User;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
@@ -56,6 +58,9 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
|||||||
@Resource
|
@Resource
|
||||||
private KnowledgeBaseService knowledgeBaseService;
|
private KnowledgeBaseService knowledgeBaseService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FileController fileController;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<AiCloudFile> pageRel(AiCloudFileParam param) {
|
public PageResult<AiCloudFile> pageRel(AiCloudFileParam param) {
|
||||||
PageParam<AiCloudFile, AiCloudFileParam> page = new PageParam<>(param);
|
PageParam<AiCloudFile, AiCloudFileParam> page = new PageParam<>(param);
|
||||||
@@ -92,6 +97,8 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
|||||||
AddFileResponse addFileResponse = AiCloudDataCenterUtil.uploadFile(client, workspaceId, categoryId, file);
|
AddFileResponse addFileResponse = AiCloudDataCenterUtil.uploadFile(client, workspaceId, categoryId, file);
|
||||||
String fileId = addFileResponse.getBody().getData().getFileId();
|
String fileId = addFileResponse.getBody().getData().getFileId();
|
||||||
|
|
||||||
|
FileRecord fileRecord = fileController.upload(file, loginUser.getTenantId());
|
||||||
|
|
||||||
// 保存文件信息到数据库
|
// 保存文件信息到数据库
|
||||||
AiCloudFile aiCloudFile = new AiCloudFile();
|
AiCloudFile aiCloudFile = new AiCloudFile();
|
||||||
aiCloudFile.setDocId(docId);
|
aiCloudFile.setDocId(docId);
|
||||||
@@ -100,6 +107,7 @@ public class AiCloudFileServiceImpl extends ServiceImpl<AiCloudFileMapper, AiClo
|
|||||||
aiCloudFile.setFileType(getFileExtension(file.getOriginalFilename()));
|
aiCloudFile.setFileType(getFileExtension(file.getOriginalFilename()));
|
||||||
aiCloudFile.setFileExt(getFileExtension(file.getOriginalFilename()));
|
aiCloudFile.setFileExt(getFileExtension(file.getOriginalFilename()));
|
||||||
aiCloudFile.setFileId(fileId);
|
aiCloudFile.setFileId(fileId);
|
||||||
|
aiCloudFile.setFileUrl(fileRecord.getDownloadUrl());
|
||||||
aiCloudFile.setUploadTime(LocalDateTime.now());
|
aiCloudFile.setUploadTime(LocalDateTime.now());
|
||||||
aiCloudFile.setWorkspaceId(workspaceId);
|
aiCloudFile.setWorkspaceId(workspaceId);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.gxwebsoft.common.system.controller;
|
package com.gxwebsoft.common.system.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.gxwebsoft.common.core.annotation.OperationLog;
|
import com.gxwebsoft.common.core.annotation.OperationLog;
|
||||||
import com.gxwebsoft.common.core.config.ConfigProperties;
|
import com.gxwebsoft.common.core.config.ConfigProperties;
|
||||||
@@ -316,4 +319,23 @@ public class FileController extends BaseController {
|
|||||||
return fail("修改失败");
|
return fail("修改失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FileRecord upload(MultipartFile file, Integer tenantId) {
|
||||||
|
FileRecord fileRecord = new FileRecord();
|
||||||
|
if (file == null || file.isEmpty()) {
|
||||||
|
return fileRecord;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
String requestURL = config.getServerUrl() + "/oss/upload";
|
||||||
|
String response = HttpRequest.post(requestURL)
|
||||||
|
.header("Tenantid", tenantId != null ? tenantId.toString() : getTenantId().toString())
|
||||||
|
.form("file", file.getBytes(), file.getOriginalFilename())
|
||||||
|
.execute()
|
||||||
|
.body();
|
||||||
|
JSONObject data = JSONObject.parseObject(response).getJSONObject("data");
|
||||||
|
fileRecord = data != null ? BeanUtil.copyProperties(data, FileRecord.class) : fileRecord;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return fileRecord;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user