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; } }