diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java index ba36796c..aadbfc2d 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/DocAnonymousDatabaseApi.java @@ -4,6 +4,7 @@ package cn.axzo.nanopart.doc.api.anonymous; import javax.validation.Valid; import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousCreateDirRequest; +import cn.axzo.nanopart.doc.api.anonymous.request.AnonymousUploadFileRequest; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -26,11 +27,19 @@ public interface DocAnonymousDatabaseApi { CommonResponse createDir(@RequestBody @Valid AnonymousCreateDirRequest request); /** - * 创建文件 + * 创建新文件 * * @return 文件编码, 需要由业务存储 */ @PostMapping("/api/anonymous/createFile") CommonResponse createFile(@RequestBody @Valid AnonymousCreateFileRequest request); + /** + * 上传文件 + * + * @return 文件编码, 需要由业务存储 + */ + @PostMapping("/api/anonymous/uploadFile") + CommonResponse uploadFile(@RequestBody @Valid AnonymousUploadFileRequest request); + } diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/AnonymousUploadFileRequest.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/AnonymousUploadFileRequest.java new file mode 100644 index 00000000..5db7f7f2 --- /dev/null +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/anonymous/request/AnonymousUploadFileRequest.java @@ -0,0 +1,24 @@ +package cn.axzo.nanopart.doc.api.anonymous.request; + +import cn.axzo.nanopart.doc.api.domain.OssFile; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + +/** + * @author yanglin + */ +@Setter +@Getter +public class AnonymousUploadFileRequest extends NodeCreateAnonymous { + + /** + * 上传的文件信息 + */ + @Valid + @NotNull(message = "上传的文件信息不能为空") + private OssFile ossFile; + +} diff --git a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/OssFile.java b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/OssFile.java index b368a213..790a51a5 100644 --- a/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/OssFile.java +++ b/doc/doc-api/src/main/java/cn/axzo/nanopart/doc/api/domain/OssFile.java @@ -1,8 +1,10 @@ package cn.axzo.nanopart.doc.api.domain; -import cn.axzo.nanopart.doc.api.enums.FileFormat; import com.alibaba.fastjson.JSON; + +import cn.axzo.nanopart.doc.api.enums.FileFormat; +import cn.axzo.nanopart.doc.api.util.BizAssertions; import lombok.Getter; import lombok.Setter; @@ -39,6 +41,13 @@ public class OssFile { return ossFile; } + public void validate() { + BizAssertions.assertNotNull(format, "format不能为空"); + BizAssertions.assertTrue(size > 0, "size必须大于0"); + BizAssertions.assertNotBlank(ossFileKey, "ossFileKey不能为空"); + BizAssertions.assertNotBlank(extension, "后缀不能为空"); + } + @Override public String toString() { return JSON.toJSONString(this); diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java index 21e74a15..be8ef46a 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/anonymous/DocAnonymousDatabaseApiController.java @@ -6,8 +6,8 @@ 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.anonymous.request.AnonymousUploadFileRequest; import cn.axzo.nanopart.doc.api.domain.OssFile; -import cn.axzo.nanopart.doc.entity.IndexNode; import cn.axzo.nanopart.doc.file.index.IndexManager; import cn.azxo.framework.common.model.CommonResponse; import lombok.RequiredArgsConstructor; @@ -36,4 +36,10 @@ public class DocAnonymousDatabaseApiController implements DocAnonymousDatabaseAp return CommonResponse.success(indexManager.createFile(request, ossFile).getCode()); } + @Override + public CommonResponse uploadFile(AnonymousUploadFileRequest request) { + log.info("upload file request:{}", request); + request.getOssFile().validate(); + return CommonResponse.success(indexManager.uploadFile(request, request.getOssFile()).getCode()); + } } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/filetemplate/FileTemplateApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/filetemplate/FileTemplateApiController.java index 808da5ba..9c024b83 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/filetemplate/FileTemplateApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/filetemplate/FileTemplateApiController.java @@ -67,6 +67,7 @@ public class FileTemplateApiController implements FileTemplateApi { @Override public CommonResponse uploadFile(FileTemplateUploadFileRequest request) { log.info("upload file request:{}", request); + request.getOssFile().validate(); return CommonResponse.success(fileTemplateManager.uploadFile(request)); } diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/templatedb/TemplateDatabaseApiController.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/templatedb/TemplateDatabaseApiController.java index fb172882..e40818fa 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/templatedb/TemplateDatabaseApiController.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/file/templatedb/TemplateDatabaseApiController.java @@ -72,6 +72,7 @@ public class TemplateDatabaseApiController implements TemplateDatabaseApi { @Override public CommonResponse uploadFile(TemplateDatabaseUploadFileRequest request) { log.info("upload file request:{}", request); + request.getOssFile().validate(); return CommonResponse.success(templateDatabaseManager.updateFile(request)); }