diff --git a/src/main/java/ru/soune/nocopy/repository/ImageSimilarityRepository.java b/src/main/java/ru/soune/nocopy/repository/ImageSimilarityRepository.java index 0a68a2a..e934173 100644 --- a/src/main/java/ru/soune/nocopy/repository/ImageSimilarityRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/ImageSimilarityRepository.java @@ -56,7 +56,7 @@ public interface ImageSimilarityRepository JOIN file_entities f ON f.id = h.file_id WHERE ref.file_id = :fileId AND f.user_id = :userId - AND f.status = 'ACTIVE' + AND (f.status = 'ACTIVE' OR f.status = 'MODERATION') """, nativeQuery = true) List findCandidatesFromUserFiles( @@ -82,7 +82,7 @@ public interface ImageSimilarityRepository JOIN file_entities f ON f.id = h.file_id WHERE ref.file_id = :fileId AND f.user_id IN :userIds - AND f.status = 'ACTIVE' + AND (f.status = 'ACTIVE' OR f.status = 'MODERATION') """, nativeQuery = true) List findCandidatesFromUserFiles( @@ -108,7 +108,7 @@ public interface ImageSimilarityRepository JOIN file_entities f ON f.id = h.file_id WHERE h.hash64_hi = :hash64Hi AND h.hash64_lo = :hash64Lo - AND f.status = 'ACTIVE' + AND (f.status = 'ACTIVE' OR f.status = 'MODERATION') """, nativeQuery = true) List findExactDuplicates( 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 1207971..7c489f4 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 @@ -5,7 +5,6 @@ import com.vrt.fileprotection.FileProtector; import com.vrt.fileprotection.NoCopyCheckResult; import com.vrt.fileprotection.audio.AudioCheckResult; import com.vrt.fileprotection.documents.DocumentCheckResult; -import com.vrt.fileprotection.image.ImageCheckResult; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -192,7 +191,7 @@ public class FileUploadServiceImpl implements FileUploadService { @Override @Transactional public UploadProgressResponse uploadChunk(String uploadId, Integer chunkNumber, - MultipartFile chunkFile, Integer findSimilar) { + MultipartFile chunkFile, Integer findSimilar) { FileUploadSession session = sessionRepository.findById(uploadId) .orElseThrow(() -> new UploadSessionNotFoundException(uploadId)); @@ -403,6 +402,7 @@ public class FileUploadServiceImpl implements FileUploadService { FileProtector.Type type = "document".equals(session.getFileType()) ? FileProtector.Type.DOC : FileProtector.Type.valueOf(session.getFileType().toUpperCase()); + NoCopyCheckResult checkResult = noCopyFileService.checkFile(file, type); switch (checkResult) { @@ -411,13 +411,11 @@ public class FileUploadServiceImpl implements FileUploadService { throw new DuplicateImageException("Duplicate", info.getId(), Long.valueOf(info.getOwnerId())); } - case AudioCheckResult.Success success -> { FileProtector.FileInfo info = success.getInfo(); throw new DuplicateImageException("Duplicate", info.getId(), Long.valueOf(info.getOwnerId())); } - case DocumentCheckResult.Failed failed -> log.warn("Document check failed: {}", failed.getMessage()); case AudioCheckResult.Failed failed -> @@ -580,8 +578,8 @@ public class FileUploadServiceImpl implements FileUploadService { Path path = Paths.get(filePath); Map hash = imageHashService.calculateHash(path); - List duplicates = fileSimilarityService.findDuplicatedByHash(hash.get("hi"), - hash.get("low")); + List duplicates = fileSimilarityService.findDuplicatedByHash( + hash.get("hi"), hash.get("low")); if (!duplicates.isEmpty()) { throw new DuplicateImageException("Duplicate", duplicates.getFirst().getId(),