diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileDao.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileDao.java index badfa26..3fe45a8 100644 --- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileDao.java +++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileDao.java @@ -28,4 +28,6 @@ public interface FileDao extends IService { List getByFileUuids(List fileKey); List getByUrlMd5s(List urlMd5List); + + File getByUrlMd5(String urlMd5); } diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileDaoImpl.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileDaoImpl.java index e7c5efe..b2a43ad 100644 --- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileDaoImpl.java +++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileDaoImpl.java @@ -53,4 +53,13 @@ public class FileDaoImpl extends ServiceImpl implements FileDa .eq(File::getIsDelete, TableDelete.UN_DELETED) .list(); } + + @Override + public File getByUrlMd5(String urlMd5) { + return lambdaQuery().eq(File::getUrlMd5, urlMd5) + .eq(File::getStatus, FileStatus.SUCCESS) + .eq(File::getIsDelete, TableDelete.UN_DELETED) + .last("limit 1") + .one(); + } } diff --git a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java index 8ce72c3..d35afbd 100644 --- a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java +++ b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java @@ -157,8 +157,14 @@ public class FileServiceImpl implements FileService { @Override public ServerFileDownloadResponse download(ServerFileDownloadDto dto) { log.info("file download dto = {}", JsonUtil.obj2Str(dto)); + File file = null; String fileKey = dto.getFileKey(); - File file = fileDao.getByFileUuid(fileKey); + if (fileKey.contains(IS_URL)) { + String urlMd5 = Utility.getMd5(fileKey); + file = fileDao.getByUrlMd5(urlMd5); + } else { + file = fileDao.getByFileUuid(fileKey); + } if (Utility.objIsNull(file)) { log.warn("file download is null, fileKey = {}", fileKey); BizException.error(Utility.objIsNotNull(file), CodeEnum.FILE_NOT_FOUND);