dev add config for nginx
Test Workflow / test (push) Successful in 2s

This commit is contained in:
vladp
2026-03-10 22:47:43 +07:00
parent 590d42690b
commit c591ab40df
17 changed files with 495 additions and 306 deletions
@@ -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) {