From bc523eba30a500a4af62adbd590446c48a5cb0be Mon Sep 17 00:00:00 2001 From: Charles7c Date: Thu, 20 Jun 2024 22:34:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=A0=E9=99=A4=E5=9B=BE=E7=89=87=E6=97=B6?= =?UTF-8?q?=E6=9C=AA=E5=88=A0=E9=99=A4=E7=BC=A9=E7=95=A5=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #77 --- .../system/config/file/FileRecorderImpl.java | 32 +++++++++---------- .../admin/system/model/entity/FileDO.java | 21 ++++++------ 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/continew-admin-system/src/main/java/top/continew/admin/system/config/file/FileRecorderImpl.java b/continew-admin-system/src/main/java/top/continew/admin/system/config/file/FileRecorderImpl.java index a71cbc60..f8394d84 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/system/config/file/FileRecorderImpl.java +++ b/continew-admin-system/src/main/java/top/continew/admin/system/config/file/FileRecorderImpl.java @@ -57,11 +57,11 @@ public class FileRecorderImpl implements FileRecorder { file.setName(StrUtil.contains(originalFilename, StringConstants.DOT) ? StrUtil.subBefore(originalFilename, StringConstants.DOT, true) : originalFilename); + file.setUrl(fileInfo.getUrl()); file.setSize(fileInfo.getSize()); - file.setUrl(fileInfo.getPath() + fileInfo.getFilename()); file.setExtension(fileInfo.getExt()); file.setType(FileTypeEnum.getByExtension(file.getExtension())); - file.setThumbnailUrl(fileInfo.getPath() + fileInfo.getThFilename()); + file.setThumbnailUrl(fileInfo.getThUrl()); file.setThumbnailSize(fileInfo.getThSize()); StorageDO storage = (StorageDO)fileInfo.getAttr().get(ClassUtil.getClassName(StorageDO.class, false)); file.setStorageId(storage.getId()); @@ -87,20 +87,6 @@ public class FileRecorderImpl implements FileRecorder { return fileMapper.lambdaUpdate().eq(FileDO::getUrl, file.getUrl()).remove(); } - /** - * 根据 URL 查询文件 - * - * @param url URL - * @return 文件信息 - */ - private FileDO getFileByUrl(String url) { - Optional fileOptional = fileMapper.lambdaQuery().eq(FileDO::getUrl, url).oneOpt(); - return fileOptional.orElseGet(() -> fileMapper.lambdaQuery() - .eq(FileDO::getUrl, StrUtil.subAfter(url, StringConstants.SLASH, true)) - .oneOpt() - .orElse(null)); - } - @Override public void update(FileInfo fileInfo) { /* 不使用分片功能则无需重写 */ @@ -115,4 +101,18 @@ public class FileRecorderImpl implements FileRecorder { public void deleteFilePartByUploadId(String s) { /* 不使用分片功能则无需重写 */ } + + /** + * 根据 URL 查询文件 + * + * @param url URL + * @return 文件信息 + */ + private FileDO getFileByUrl(String url) { + Optional fileOptional = fileMapper.lambdaQuery().eq(FileDO::getUrl, url).oneOpt(); + return fileOptional.orElseGet(() -> fileMapper.lambdaQuery() + .likeLeft(FileDO::getUrl, StrUtil.subAfter(url, StringConstants.SLASH, true)) + .oneOpt() + .orElse(null)); + } } \ No newline at end of file diff --git a/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/FileDO.java b/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/FileDO.java index 270b7e86..0ddf9dc4 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/FileDO.java +++ b/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/FileDO.java @@ -23,7 +23,6 @@ import org.dromara.x.file.storage.core.FileInfo; import top.continew.admin.system.enums.FileTypeEnum; import top.continew.starter.core.constant.StringConstants; import top.continew.starter.core.util.StrUtils; -import top.continew.starter.core.util.URLUtils; import top.continew.starter.extension.crud.model.entity.BaseDO; import java.io.Serial; @@ -89,18 +88,22 @@ public class FileDO extends BaseDO { */ public FileInfo toFileInfo(String storageCode) { FileInfo fileInfo = new FileInfo(); - fileInfo.setOriginalFilename(StrUtils - .blankToDefault(this.extension, this.name, ex -> this.name + StringConstants.DOT + ex)); - fileInfo.setSize(this.size); fileInfo.setUrl(this.url); - fileInfo.setExt(this.extension); - fileInfo.setBasePath(StringConstants.EMPTY); - fileInfo.setPath(StringConstants.EMPTY); - fileInfo.setFilename(URLUtils.isHttpUrl(this.url) + fileInfo.setSize(this.size); + fileInfo.setFilename(StrUtil.contains(this.url, StringConstants.SLASH) ? StrUtil.subAfter(this.url, StringConstants.SLASH, true) : this.url); - fileInfo.setThFilename(this.thumbnailUrl); + fileInfo.setOriginalFilename(StrUtils + .blankToDefault(this.extension, this.name, ex -> this.name + StringConstants.DOT + ex)); + fileInfo.setBasePath(StringConstants.EMPTY); + fileInfo.setPath(StrUtil.subBefore(this.url, StringConstants.SLASH, true) + StringConstants.SLASH); + fileInfo.setExt(this.extension); fileInfo.setPlatform(storageCode); + fileInfo.setThUrl(this.thumbnailUrl); + fileInfo.setThFilename(StrUtil.contains(this.thumbnailUrl, StringConstants.SLASH) + ? StrUtil.subAfter(this.thumbnailUrl, StringConstants.SLASH, true) + : this.thumbnailUrl); + fileInfo.setThSize(this.thumbnailSize); return fileInfo; } }