Add fix check status for monitoring
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-06-05 21:07:35 +07:00
parent 6e8650c61d
commit aff80c4919
2 changed files with 9 additions and 2 deletions
@@ -20,6 +20,10 @@ public interface FileMonitoringRepository extends JpaRepository<FileMonitoringEn
List<FileMonitoringEntity> findByUserIdAndIsActiveTrue(Long userId); List<FileMonitoringEntity> findByUserIdAndIsActiveTrue(Long userId);
@Query("SELECT fm FROM FileMonitoringEntity fm LEFT JOIN FETCH FileEntity f ON f.id = fm.file.id WHERE f.status IN :statuses " +
"AND f.userId = :userId AND fm.isActive = true AND fm.monitoringType != 'NONE'")
List<FileMonitoringEntity> findByUserIdAndIsActiveTrue(Long userId, @Param("statuses") List<String> statuses);
@Query("SELECT fm FROM FileMonitoringEntity fm WHERE fm.isActive = true AND fm.monitoringType != 'NONE' AND fm.nextRun <= :now") @Query("SELECT fm FROM FileMonitoringEntity fm WHERE fm.isActive = true AND fm.monitoringType != 'NONE' AND fm.nextRun <= :now")
List<FileMonitoringEntity> findReadyForRun(@Param("now") LocalDateTime now); List<FileMonitoringEntity> findReadyForRun(@Param("now") LocalDateTime now);
@@ -6,6 +6,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import ru.soune.nocopy.dto.search.GlobalSearchStartRequest; import ru.soune.nocopy.dto.search.GlobalSearchStartRequest;
import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.FileEntity;
import ru.soune.nocopy.entity.file.FileStatus;
import ru.soune.nocopy.entity.file.FileType; import ru.soune.nocopy.entity.file.FileType;
import ru.soune.nocopy.entity.monitoring.FileMonitoringEntity; import ru.soune.nocopy.entity.monitoring.FileMonitoringEntity;
import ru.soune.nocopy.entity.search.GlobalSearchTask; import ru.soune.nocopy.entity.search.GlobalSearchTask;
@@ -58,13 +59,15 @@ public class GlobalSearchService {
public List<FileEntity> getFilesToProcess(GlobalSearchStartRequest request, Long userId) { public List<FileEntity> getFilesToProcess(GlobalSearchStartRequest request, Long userId) {
if ("monitoring".equals(request.getSearchType())) { if ("monitoring".equals(request.getSearchType())) {
List<FileMonitoringEntity> monitoringFiles = List<FileMonitoringEntity> monitoringFiles =
fileMonitoringRepository.findByUserIdAndIsActiveTrue(userId); fileMonitoringRepository.findByUserIdAndIsActiveTrue(userId, List.of(FileStatus.ACTIVE.name(),
FileStatus.MODERATION.name()));
return monitoringFiles.isEmpty() ? new ArrayList<>(): monitoringFiles.stream() return monitoringFiles.isEmpty() ? new ArrayList<>(): monitoringFiles.stream()
.map(FileMonitoringEntity::getFile) .map(FileMonitoringEntity::getFile)
.toList(); .toList();
} else { } else {
List<String> fileIds = request.getFileIds().isEmpty() ? fileEntityService.getAllUserFiles(userId) List<String> fileIds = request.getFileIds().isEmpty() ?
fileEntityService.getAllUserFilesExcludingBlockedAndRemoved(userId)
.stream() .stream()
.filter(f -> f.getMimeType().equals(FileType.IMAGE.getDisplayName())) .filter(f -> f.getMimeType().equals(FileType.IMAGE.getDisplayName()))
.map(FileEntity::getId) .map(FileEntity::getId)