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.GlobalSearchTask;
|
||||
import ru.soune.nocopy.entity.search.SearchStatus;
|
||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||
import ru.soune.nocopy.repository.GlobalSearchResultRepository;
|
||||
import ru.soune.nocopy.repository.GlobalSearchTaskRepository;
|
||||
import ru.soune.nocopy.service.notification.NotificationService;
|
||||
@@ -45,14 +46,19 @@ public class GlobalSearchAsyncProcessor {
|
||||
|
||||
private final NotificationService notificationService;
|
||||
|
||||
private final FileEntityRepository fileEntityRepository;
|
||||
|
||||
@Async
|
||||
@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();
|
||||
|
||||
try {
|
||||
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);
|
||||
GlobalSearchResult result = processFile(file, taskId, userId);
|
||||
globalSearchResultRepository.save(result);
|
||||
|
||||
@@ -46,7 +46,9 @@ public class GlobalSearchService {
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user