REQ-3540: 添加匿名数据库

This commit is contained in:
yanglin 2025-03-20 18:08:47 +08:00
parent af021df447
commit dcbf9b1e35
5 changed files with 45 additions and 2 deletions

View File

@ -3,6 +3,7 @@ package cn.axzo.nanopart.doc.api.anonymous;
import javax.validation.Valid;
import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousCreateDirRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -16,6 +17,14 @@ import cn.azxo.framework.common.model.CommonResponse;
@FeignClient(name = "nanopart", url = "${axzo.service.nanopart:http://nanopart:8080}")
public interface DocAnonymousDatabaseApi {
/**
* 创建文件夹
*
* @return 文件夹编码, 需要由业务存储
*/
@PostMapping("/api/anonymous/createDir")
CommonResponse<String> createDir(@RequestBody @Valid AnonymousCreateDirRequest request);
/**
* 创建文件
*

View File

@ -0,0 +1,20 @@
package cn.axzo.nanopart.doc.api.anonymous.request;
import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
/**
* @author yanglin
*/
@Setter
@Getter
public class AnonymousCreateDirRequest extends NodeCreateAnonymous {
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -1,6 +1,7 @@
package cn.axzo.nanopart.doc.api.anonymous.request;
import cn.axzo.nanopart.doc.api.enums.FileFormat;
import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
@ -19,4 +20,8 @@ public class AnonymousCreateFileRequest extends NodeCreateAnonymous {
@NotNull(message = "文件格式不能为空")
private FileFormat format;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -18,7 +18,7 @@ import lombok.Setter;
abstract class NodeCreateAnonymous implements NodeCreate, IndexNodeScope {
/**
* 父节点code
* 父节点code, 创建在根目录时可以不传
*/
private String parentCode;

View File

@ -4,6 +4,7 @@ package cn.axzo.nanopart.doc.file.anonymous;
import org.springframework.web.bind.annotation.RestController;
import cn.axzo.nanopart.doc.api.anonymous.DocAnonymousDatabaseApi;
import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousCreateDirRequest;
import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousCreateFileRequest;
import cn.axzo.nanopart.doc.api.domain.OssFile;
import cn.axzo.nanopart.doc.entity.IndexNode;
@ -22,8 +23,16 @@ public class DocAnonymousDatabaseApiController implements DocAnonymousDatabaseAp
private final IndexManager indexManager;
@Override
public CommonResponse<String> createDir(AnonymousCreateDirRequest request) {
log.info("create dir request:{}", request);
IndexNode dirNode = indexManager.createDir(request);
return CommonResponse.success(dirNode.getCode());
}
@Override
public CommonResponse<String> createFile(AnonymousCreateFileRequest request) {
log.info("create file request:{}", request);
OssFile ossFile = indexManager.prepareEmptyOssFile(request, request.getFormat());
IndexNode fileNode = indexManager.createFile(request, ossFile);
return CommonResponse.success(fileNode.getCode());