From afafb311b80562002326f5e6f9b246272bf612e7 Mon Sep 17 00:00:00 2001 From: zhaojun1998 Date: Tue, 9 Mar 2021 21:13:48 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E5=90=88=E5=B9=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=97=E8=A1=A8=E5=92=8C=E5=8F=82=E6=95=B0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zfile/controller/home/FileController.java | 47 +++++++------------ .../zhaojun/zfile/model/dto/FileListDTO.java | 18 +++++++ 2 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java diff --git a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java b/src/main/java/im/zhaojun/zfile/controller/home/FileController.java index c4dd131..d7e4b45 100644 --- a/src/main/java/im/zhaojun/zfile/controller/home/FileController.java +++ b/src/main/java/im/zhaojun/zfile/controller/home/FileController.java @@ -7,6 +7,7 @@ import im.zhaojun.zfile.exception.NotExistFileException; import im.zhaojun.zfile.exception.PasswordVerifyException; import im.zhaojun.zfile.model.constant.ZFileConstant; import im.zhaojun.zfile.model.dto.FileItemDTO; +import im.zhaojun.zfile.model.dto.FileListDTO; import im.zhaojun.zfile.model.dto.SystemFrontConfigDTO; import im.zhaojun.zfile.model.entity.DriveConfig; import im.zhaojun.zfile.model.enums.StorageTypeEnum; @@ -32,6 +33,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; /** * 前台文件管理 @@ -105,43 +107,30 @@ public class FileController { // 按照自然排序 copyList.sort(new FileComparator(orderBy, orderDirection)); - return ResultBean.successData(copyList); - } - /** - * 获取系统配置信息和当前页的标题, 页面文档信息 - * - * @param driveId - * 驱动器 ID - * - * @return 返回指定驱动器的系统配置信息 - */ - @GetMapping("/config/{driveId}") - public ResultBean getConfig(@PathVariable(name = "driveId") Integer driveId, String path) { + + + // 开始获取参数信息 SystemFrontConfigDTO systemConfig = systemConfigService.getSystemFrontConfig(driveId); - systemConfig.setDebugMode(debug); - AbstractBaseFileService fileService = driveContext.get(driveId); DriveConfig driveConfig = driveConfigService.findById(driveId); - String fullPath = StringUtils.removeDuplicateSeparator(path + ZFileConstant.PATH_SEPARATOR + ZFileConstant.README_FILE_NAME); - FileItemDTO fileItem = null; - try { - fileItem = fileService.getFileItem(fullPath); + systemConfig.setDebugMode(debug); + systemConfig.setDefaultSwitchToImgMode(driveConfig.getDefaultSwitchToImgMode()); - if (!Objects.equals(driveConfig.getType(), StorageTypeEnum.FTP)) { - String readme = HttpUtil.getTextContent(fileItem.getUrl()); - systemConfig.setReadme(readme); - } - } catch (Exception e) { - if (e instanceof NotExistFileException) { - log.trace("不存在 README 文件, 已跳过, fullPath: {}, fileItem: {}", fullPath, JSON.toJSONString(fileItem)); - } else { - log.trace("获取 README 文件异常, fullPath: {}, fileItem: {}", fullPath, JSON.toJSONString(fileItem), e); - } + // 如果不是 FTP 模式,则尝试获取当前文件夹中的 README 文件,有则读取,没有则停止 + if (!Objects.equals(driveConfig.getType(), StorageTypeEnum.FTP)) { + fileItemList.stream() + .filter(fileItemDTO -> Objects.equals(ZFileConstant.README_FILE_NAME, fileItemDTO.getName())) + .findFirst() + .ifPresent(fileItemDTO -> { + String readme = HttpUtil.getTextContent(fileItemDTO.getUrl()); + systemConfig.setReadme(readme); + }); } - return ResultBean.successData(systemConfig); + return ResultBean.successData(new FileListDTO(copyList, systemConfig)); } + /** * 获取指定路径下的文件信息内容 * diff --git a/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java b/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java new file mode 100644 index 0000000..fae6d81 --- /dev/null +++ b/src/main/java/im/zhaojun/zfile/model/dto/FileListDTO.java @@ -0,0 +1,18 @@ +package im.zhaojun.zfile.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class FileListDTO { + + private List files; + + private SystemFrontConfigDTO config; + +} \ No newline at end of file