This commit is contained in:
@@ -12,6 +12,7 @@ import ru.soune.nocopy.entity.notification.NotificationType;
|
|||||||
import ru.soune.nocopy.entity.search.GlobalSearchResult;
|
import ru.soune.nocopy.entity.search.GlobalSearchResult;
|
||||||
import ru.soune.nocopy.entity.search.GlobalSearchTask;
|
import ru.soune.nocopy.entity.search.GlobalSearchTask;
|
||||||
import ru.soune.nocopy.entity.search.SearchStatus;
|
import ru.soune.nocopy.entity.search.SearchStatus;
|
||||||
|
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||||
import ru.soune.nocopy.repository.GlobalSearchResultRepository;
|
import ru.soune.nocopy.repository.GlobalSearchResultRepository;
|
||||||
import ru.soune.nocopy.repository.GlobalSearchTaskRepository;
|
import ru.soune.nocopy.repository.GlobalSearchTaskRepository;
|
||||||
import ru.soune.nocopy.service.notification.NotificationService;
|
import ru.soune.nocopy.service.notification.NotificationService;
|
||||||
@@ -45,14 +46,19 @@ public class GlobalSearchAsyncProcessor {
|
|||||||
|
|
||||||
private final NotificationService notificationService;
|
private final NotificationService notificationService;
|
||||||
|
|
||||||
|
private final FileEntityRepository fileEntityRepository;
|
||||||
|
|
||||||
@Async
|
@Async
|
||||||
@Transactional
|
@Transactional
|
||||||
public void processFilesAsync(String taskId, List<FileEntity> filesToProcess, Long userId) {
|
public void processFilesAsync(String taskId, List<String> filesToProcess, Long userId) {
|
||||||
GlobalSearchTask task = globalSearchTaskRepository.findById(taskId).orElseThrow();
|
GlobalSearchTask task = globalSearchTaskRepository.findById(taskId).orElseThrow();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
for (int i = 0; i < filesToProcess.size(); i++) {
|
for (int i = 0; i < filesToProcess.size(); i++) {
|
||||||
FileEntity file = filesToProcess.get(i);
|
String uuid = filesToProcess.get(i);
|
||||||
|
FileEntity file = fileEntityRepository.findById(uuid)
|
||||||
|
.orElseThrow(() -> new RuntimeException("File not found: " + uuid));
|
||||||
|
|
||||||
tariffInfoService.writeOffTokens(userId, TariffConstants.TOKEN_VALUE_FOR_SEARCH);
|
tariffInfoService.writeOffTokens(userId, TariffConstants.TOKEN_VALUE_FOR_SEARCH);
|
||||||
GlobalSearchResult result = processFile(file, taskId, userId);
|
GlobalSearchResult result = processFile(file, taskId, userId);
|
||||||
globalSearchResultRepository.save(result);
|
globalSearchResultRepository.save(result);
|
||||||
|
|||||||
@@ -46,7 +46,9 @@ public class GlobalSearchService {
|
|||||||
|
|
||||||
globalSearchTaskRepository.save(task);
|
globalSearchTaskRepository.save(task);
|
||||||
|
|
||||||
asyncProcessor.processFilesAsync(task.getTaskId(), filesToProcess, userId);
|
List<String> fileIds = filesToProcess.stream().map(FileEntity::getId).toList();
|
||||||
|
|
||||||
|
asyncProcessor.processFilesAsync(task.getTaskId(), fileIds, userId);
|
||||||
|
|
||||||
return task.getTaskId();
|
return task.getTaskId();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user