From eeb44a4e295d4086202c33eb4e6ae77c110b7ca4 Mon Sep 17 00:00:00 2001 From: MAC <1162714483@qq.com> Date: Wed, 8 Dec 2021 22:17:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(=E6=96=87=E4=BB=B6):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=96=87=E4=BB=B6=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/controller/FileController.java | 53 +++++++++++++++++++ .../file/dto/file/UpdateFileDTO.java | 19 +++++++ 2 files changed, 72 insertions(+) create mode 100644 src/main/java/com/qiwenshare/file/dto/file/UpdateFileDTO.java diff --git a/src/main/java/com/qiwenshare/file/controller/FileController.java b/src/main/java/com/qiwenshare/file/controller/FileController.java index 35a90da..2607d9d 100644 --- a/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.qiwenshare.common.anno.MyLog; import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.result.RestResult; +import com.qiwenshare.common.result.ResultCodeEnum; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.file.advice.QiwenException; import com.qiwenshare.file.api.IFileService; @@ -13,6 +14,7 @@ import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.component.FileDealComp; import com.qiwenshare.file.config.es.FileSearch; +import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.TreeNode; import com.qiwenshare.file.domain.UserBean; import com.qiwenshare.file.domain.UserFile; @@ -22,6 +24,10 @@ import com.qiwenshare.file.dto.file.MoveFileDTO; import com.qiwenshare.file.dto.file.*; import com.qiwenshare.file.util.SessionUtil; import com.qiwenshare.file.vo.file.FileListVo; +import com.qiwenshare.ufop.factory.UFOPFactory; +import com.qiwenshare.ufop.operation.download.domain.DownloadFile; +import com.qiwenshare.ufop.operation.write.Writer; +import com.qiwenshare.ufop.operation.write.domain.WriteFile; import com.qiwenshare.ufop.util.UFOPUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -42,6 +48,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.*; @Tag(name = "file", description = "该接口为文件接口,主要用来做一些文件的基本操作,如创建目录,删除,移动,复制等。") @@ -61,6 +70,8 @@ public class FileController { private ElasticsearchRestTemplate elasticsearchRestTemplate; @Resource FileDealComp fileDealComp; + @Resource + UFOPFactory ufopFactory; public static final String CURRENT_MODULE = "文件接口"; @@ -469,6 +480,48 @@ public class FileController { } + @Operation(summary = "修改文件", description = "支持普通文本类文件的修改", tags = {"file"}) + @RequestMapping(value = "/update", method = RequestMethod.POST) + @ResponseBody + public RestResult updateFile(@RequestBody UpdateFileDTO updateFileDTO) { + UserBean sessionUserBean = (UserBean) SessionUtil.getSession(); + UserFile userFile = userFileService.getById(updateFileDTO.getUserFileId()); + FileBean fileBean = fileService.getById(userFile.getFileId()); + if (fileBean.getPointCount() > 1) { + return RestResult.fail().message("暂不支持修改"); + } + String content = updateFileDTO.getFileContent(); + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(content.getBytes()); + try { + + Writer writer1 = ufopFactory.getWriter(fileBean.getStorageType()); + WriteFile writeFile = new WriteFile(); + writeFile.setFileUrl(fileBean.getFileUrl()); + int fileSize = byteArrayInputStream.available(); + writeFile.setFileSize(fileSize); + writer1.write(byteArrayInputStream, writeFile); + DownloadFile downloadFile = new DownloadFile(); + downloadFile.setFileUrl(fileBean.getFileUrl()); + InputStream inputStream = ufopFactory.getDownloader(fileBean.getStorageType()).getInputStream(downloadFile); + String md5Str = DigestUtils.md5Hex(inputStream); + fileBean.setIdentifier(md5Str); + fileBean.setModifyTime(DateUtil.getCurrentTime()); + fileBean.setModifyUserId(sessionUserBean.getUserId()); + fileBean.setFileSize((long) fileSize); + fileService.updateById(fileBean); + } catch (Exception e) { + throw new QiwenException(999999, "修改文件异常"); +// log.error(e.getMessage()); + } finally { + try { + byteArrayInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return RestResult.success().message("修改文件成功"); + } + } diff --git a/src/main/java/com/qiwenshare/file/dto/file/UpdateFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/UpdateFileDTO.java new file mode 100644 index 0000000..c7ff8a0 --- /dev/null +++ b/src/main/java/com/qiwenshare/file/dto/file/UpdateFileDTO.java @@ -0,0 +1,19 @@ +package com.qiwenshare.file.dto.file; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author 马超 + * @version 1.0 + * @description: TODO + * @date 2021/12/8 19:23 + */ +@Data +@Schema(name = "修改文件DTO",required = true) +public class UpdateFileDTO { + @Schema(description = "用户文件id") + private Long userFileId; + @Schema(description = "文件内容") + private String fileContent; +} From 77a6212426afe8247bc363a5d6e94110e091333f Mon Sep 17 00:00:00 2001 From: liyating <2435065796@qq.com> Date: Wed, 8 Dec 2021 23:28:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=83=20docs(README):=20=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E6=8B=93=E6=89=91=E5=9B=BE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1620469..83dc51b 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ ## 网络拓扑图 -![网络拓扑图](https://images.gitee.com/uploads/images/2021/0324/225520_d55b109e_947714.png '屏幕截图.png') +![网络拓扑图](https://pan.qiwenshare.com/docs/img/guide/web-expand.png) ## 软件架构