diff --git a/src/main/java/ru/soune/nocopy/service/file/FileProcessingOrchestrator.java b/src/main/java/ru/soune/nocopy/service/file/FileProcessingOrchestrator.java index d16c944..880a043 100644 --- a/src/main/java/ru/soune/nocopy/service/file/FileProcessingOrchestrator.java +++ b/src/main/java/ru/soune/nocopy/service/file/FileProcessingOrchestrator.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.ProtectionStatus; import ru.soune.nocopy.repository.FileEntityRepository; +import ru.soune.nocopy.util.FileUtil; import java.util.List; @@ -21,12 +22,14 @@ public class FileProcessingOrchestrator { private final FileEntityRepository fileRepository; + private final FileUtil fileUtil; + public void initializeProcessingQueue() { List filesToProtect = fileRepository.findByProtectionStatus(ProtectionStatus.NOT_PROTECTED); for (FileEntity fileEntity : filesToProtect) { try { - FileProtector.FileInfo fileInfo = createFileInfo(fileEntity); + FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity); noCopyFileService.addFile(fileInfo); @@ -42,18 +45,12 @@ public class FileProcessingOrchestrator { List newFiles = fileRepository.findAllActiveFilesAndNotProtected(); for (FileEntity fileEntity : newFiles) { - FileProtector.FileInfo fileInfo = createFileInfo(fileEntity); + FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity); noCopyFileService.addFile(fileInfo); } } - private FileProtector.FileInfo createFileInfo(FileEntity fileEntity) { - FileProtector.Type type = determineFileType(fileEntity.getMimeType()); - - return new FileProtector.FileInfo(type, fileEntity.getId(), String.valueOf(fileEntity.getUserId())); - } - private FileProtector.Type determineFileType(String mimeType) { if (mimeType == null) { return FileProtector.Type.IMAGE; diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index ce561b9..cb4fa3b 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -1,5 +1,7 @@ package ru.soune.nocopy.service.file.impl; +import com.vrt.NoCopyFileService; +import com.vrt.fileprotection.FileProtector; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -25,6 +27,7 @@ import ru.soune.nocopy.service.FileSimilarityService; import ru.soune.nocopy.service.ImageHashService; import ru.soune.nocopy.service.file.FileEntityService; import ru.soune.nocopy.service.file.FileUploadService; +import ru.soune.nocopy.util.FileUtil; import java.io.*; import java.nio.file.*; @@ -75,6 +78,10 @@ public class FileUploadServiceImpl implements FileUploadService { @Autowired private FileEntityService fileEntityService; + private final NoCopyFileService noCopyFileService; + + private final FileUtil fileUtil; + @PostConstruct public void init() { try { @@ -277,6 +284,7 @@ public class FileUploadServiceImpl implements FileUploadService { FileEntity saved = fileEntityRepository.save(fileEntity); Map hash = imageHashService.calculateHash(filePath); + imageHashService.create(saved, hash); cleanupSessionFiles(session); @@ -484,11 +492,17 @@ public class FileUploadServiceImpl implements FileUploadService { session.setChecksum(checksum); session.setStatus(UploadStatus.COMPLETED); session.setCompletedAt(LocalDateTime.now()); + sessionRepository.save(session); log.info("Upload session updated to COMPLETED: {}", session.getUploadId()); try { - fileEntityService.createFromUploadSession(session, checksum); + FileEntity fileEntity = fileEntityService.createFromUploadSession(session, checksum); + + FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity); + + noCopyFileService.addFile(fileInfo); + log.info("FileEntity successfully created for session: {}", session.getUploadId()); } catch (DuplicateImageException e) {