@@ -75,4 +75,7 @@ public interface FileEntityRepository extends JpaRepository<FileEntity, String>
|
|||||||
Page<FileEntity> findByStatusIn(List<FileStatus> statuses, Pageable pageable);
|
Page<FileEntity> findByStatusIn(List<FileStatus> statuses, Pageable pageable);
|
||||||
|
|
||||||
List<FileEntity> findByUserIdAndStatusIn(Long userId, List<FileStatus> statuses);
|
List<FileEntity> findByUserIdAndStatusIn(Long userId, List<FileStatus> statuses);
|
||||||
|
|
||||||
|
@Query("SELECT f FROM FileEntity f WHERE f.userId = :userId AND f.status IN :statuses")
|
||||||
|
List<FileEntity> findByStatuses(Long userId, @Param("statuses") List<String> statuses);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,19 +9,14 @@ import ru.soune.nocopy.dto.file.FileEntityResponse;
|
|||||||
import ru.soune.nocopy.dto.file.FileResponse;
|
import ru.soune.nocopy.dto.file.FileResponse;
|
||||||
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.FileStatus;
|
||||||
import ru.soune.nocopy.entity.file.FileUploadSession;
|
|
||||||
import ru.soune.nocopy.entity.file.ProtectionStatus;
|
import ru.soune.nocopy.entity.file.ProtectionStatus;
|
||||||
import ru.soune.nocopy.entity.monitoring.FileMonitoringEntity;
|
import ru.soune.nocopy.entity.monitoring.FileMonitoringEntity;
|
||||||
import ru.soune.nocopy.entity.monitoring.MonitoringType;
|
import ru.soune.nocopy.entity.monitoring.MonitoringType;
|
||||||
import ru.soune.nocopy.entity.user.User;
|
import ru.soune.nocopy.entity.user.User;
|
||||||
import ru.soune.nocopy.exception.DuplicateImageException;
|
|
||||||
import ru.soune.nocopy.exception.FileEntityNotFoundException;
|
import ru.soune.nocopy.exception.FileEntityNotFoundException;
|
||||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||||
import ru.soune.nocopy.repository.FileMonitoringRepository;
|
import ru.soune.nocopy.repository.FileMonitoringRepository;
|
||||||
import ru.soune.nocopy.repository.SimilarImageProjection;
|
|
||||||
import ru.soune.nocopy.repository.UserRepository;
|
import ru.soune.nocopy.repository.UserRepository;
|
||||||
import ru.soune.nocopy.service.FileSimilarityService;
|
|
||||||
import ru.soune.nocopy.service.ImageHashService;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -31,7 +26,6 @@ import java.nio.file.Paths;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -42,10 +36,6 @@ public class FileEntityService {
|
|||||||
|
|
||||||
private final FileEntityRepository fileEntityRepository;
|
private final FileEntityRepository fileEntityRepository;
|
||||||
|
|
||||||
private final ImageHashService imageHashService;
|
|
||||||
|
|
||||||
private final FileSimilarityService fileSimilarityService;
|
|
||||||
|
|
||||||
private final UserRepository userRepository;
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
private final ImageResizeService imageResizeService;
|
private final ImageResizeService imageResizeService;
|
||||||
@@ -91,7 +81,7 @@ public class FileEntityService {
|
|||||||
List.of(FileStatus.ACTIVE, FileStatus.BLOCKED, FileStatus.MODERATION)));
|
List.of(FileStatus.ACTIVE, FileStatus.BLOCKED, FileStatus.MODERATION)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fileEntityRepository.findByUserIdAndStatusIn(userId,
|
allFiles = fileEntityRepository.findByUserIdAndStatusIn(userId,
|
||||||
List.of(FileStatus.ACTIVE, FileStatus.BLOCKED, FileStatus.MODERATION));
|
List.of(FileStatus.ACTIVE, FileStatus.BLOCKED, FileStatus.MODERATION));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,19 +140,6 @@ public class FileEntityService {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public FileEntity markAsDeleted(FileEntity fileEntity) throws IOException {
|
|
||||||
fileEntity.setStatus(FileStatus.DELETED);
|
|
||||||
fileEntity.setUpdatedAt(LocalDateTime.now());
|
|
||||||
fileEntity.setProtectionStatus(ProtectionStatus.NOT_PROTECTED);
|
|
||||||
|
|
||||||
Path path = Paths.get(fileEntity.getProtectedFilePath());
|
|
||||||
Files.deleteIfExists(path);
|
|
||||||
fileEntity.setProtectedFilePath("");
|
|
||||||
|
|
||||||
return fileEntityRepository.save(fileEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void softDeleteFileWithHash(FileEntity fileEntity) throws IOException {
|
public void softDeleteFileWithHash(FileEntity fileEntity) throws IOException {
|
||||||
if (fileEntity.getImageHash() != null) {
|
if (fileEntity.getImageHash() != null) {
|
||||||
fileEntity.setImageHash(null);
|
fileEntity.setImageHash(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user