@@ -1,6 +1,7 @@
|
||||
package ru.soune.nocopy.service.search;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.vrt.fileprotection.image.ImageCheckResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@@ -11,10 +12,13 @@ import ru.soune.nocopy.entity.file.FileEntity;
|
||||
import ru.soune.nocopy.entity.search.GlobalSearchResult;
|
||||
import ru.soune.nocopy.entity.search.GlobalSearchTask;
|
||||
import ru.soune.nocopy.entity.search.SearchStatus;
|
||||
import ru.soune.nocopy.entity.violation.Violation;
|
||||
import ru.soune.nocopy.repository.GlobalSearchResultRepository;
|
||||
import ru.soune.nocopy.repository.GlobalSearchTaskRepository;
|
||||
import ru.soune.nocopy.repository.ViolationRepository;
|
||||
import ru.soune.nocopy.service.tariff.TariffConstants;
|
||||
import ru.soune.nocopy.service.tariff.TariffInfoService;
|
||||
import ru.soune.nocopy.service.violation.ViolationService;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -38,6 +42,10 @@ public class GlobalSearchAsyncProcessor {
|
||||
|
||||
private final GlobalSearchTaskRepository globalSearchTaskRepository;
|
||||
|
||||
private final ViolationRepository violationRepository;
|
||||
|
||||
private final ViolationService violationService;
|
||||
|
||||
@Async
|
||||
@Transactional
|
||||
public void processFilesAsync(String taskId, List<FileEntity> filesToProcess, Long userId) {
|
||||
@@ -74,7 +82,6 @@ public class GlobalSearchAsyncProcessor {
|
||||
result.setTaskId(taskId);
|
||||
result.setFileId(file.getId());
|
||||
result.setFileName(file.getOriginalFileName());
|
||||
result.setThumbnail(file.getThumbnailPath());
|
||||
|
||||
List<YandexSearchResponse.ImageResult> allUniqueImages = new ArrayList<>();
|
||||
boolean hasTimeout = false;
|
||||
@@ -117,21 +124,10 @@ public class GlobalSearchAsyncProcessor {
|
||||
allUniqueImages.stream()
|
||||
.filter(img -> img.getUrl() != null)
|
||||
.collect(Collectors.toList()),
|
||||
new ArrayList<>()
|
||||
);
|
||||
new ArrayList<>());
|
||||
|
||||
YandexSearchResponse searchResponse = new YandexSearchResponse();
|
||||
searchResponse.setImages(allUniqueImages);
|
||||
searchResponse.setPage(1);
|
||||
searchResponse.setPageSize(allUniqueImages.size());
|
||||
searchResponse.setTotalResults(allUniqueImages.size());
|
||||
searchResponse.setTotalPages(1);
|
||||
|
||||
try {
|
||||
result.setSearchResults(objectMapper.writeValueAsString(searchResponse));
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to serialize search results", e);
|
||||
result.setSearchResults("{}");
|
||||
for (YandexSearchResponse.ImageResult imageResult : allUniqueImages) {
|
||||
violationService.processViolation(imageResult, file, result);
|
||||
}
|
||||
|
||||
if (allUniqueImages.isEmpty() && hasTimeout) {
|
||||
|
||||
Reference in New Issue
Block a user