Merge branch 'NCBACK-25' into dev
# Conflicts: # src/main/java/ru/soune/nocopy/repository/SimilarImageProjection.java # src/main/java/ru/soune/nocopy/service/FileSimilarityService.java
This commit is contained in:
@@ -6,14 +6,15 @@ import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import ru.soune.nocopy.entity.file.FileEntity;
|
||||
import ru.soune.nocopy.entity.file.FileStatus;
|
||||
import ru.soune.nocopy.entity.file.ProtectionStatus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface FileEntityRepository extends JpaRepository<FileEntity, String> {
|
||||
|
||||
List<FileEntity> findByUserId(Long userId);
|
||||
|
||||
Optional<FileEntity> findByUserIdAndChecksum(Long userId, String imageHash);
|
||||
|
||||
List<FileEntity> findByUserIdAndStatus(Long userId, FileStatus status);
|
||||
@@ -22,16 +23,28 @@ public interface FileEntityRepository extends JpaRepository<FileEntity, String>
|
||||
|
||||
Optional<FileEntity> findByUploadSessionId(String uploadSessionId);
|
||||
|
||||
List<FileEntity> findByProtectionStatus(ProtectionStatus protectionStatus);
|
||||
|
||||
boolean existsByFilePath(String filePath);
|
||||
|
||||
@Query("SELECT SUM(f.fileSize) FROM FileEntity f WHERE f.userId = :userId AND f.status = 'ACTIVE'")
|
||||
Long getTotalSizeByUserId(@Param("userId") Long userId);
|
||||
|
||||
@Query("SELECT f FROM FileEntity f WHERE f.protectionStatus = null AND f.status = 'ACTIVE' OR " +
|
||||
"f.protectionStatus = 'NOT_PROTECTED' AND f.status = 'ACTIVE'")
|
||||
List<FileEntity> findAllActiveFilesAndNotProtected();
|
||||
|
||||
@Query("SELECT f FROM FileEntity f WHERE f.userId = :userId AND f.originalFileName LIKE %:keyword%")
|
||||
List<FileEntity> searchByFileName(@Param("userId") Long userId, @Param("keyword") String keyword);
|
||||
|
||||
@Query("SELECT f FROM FileEntity f WHERE f.status = :status")
|
||||
List<FileEntity> searchFileEntityByStatus(@Param("status") FileStatus status);
|
||||
|
||||
@Query("SELECT f FROM FileEntity f WHERE f.id = :fileId")
|
||||
FileEntity findByFileId(@Param("fileId") String fileId);
|
||||
|
||||
@Query("SELECT f FROM FileEntity f WHERE f.signature = :signature")
|
||||
FileEntity findBySignature(@Param("signature") String signature);
|
||||
|
||||
long countByUserId(Long userId);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,11 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import ru.soune.nocopy.entity.file.ImageHashEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface ImageHashRepository extends JpaRepository<ImageHashEntity, String> {
|
||||
void deleteByFileId(String fileId);
|
||||
List<ImageHashEntity> findByFileId(String fileId);
|
||||
ImageHashEntity findByHash64HiAndHash64Lo(Long hash64Hi, Long hash64Lo);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public interface ImageSimilarityRepository
|
||||
""",
|
||||
nativeQuery = true)
|
||||
List<SimilarImageProjection> findExactDuplicates(
|
||||
@Param("hash64Hi") Integer hash64_hi,
|
||||
@Param("hash64Lo") Integer hash64_lo);
|
||||
@Param("hash64Hi") Long hash64_hi,
|
||||
@Param("hash64Lo") Long hash64_lo);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package ru.soune.nocopy.repository;
|
||||
|
||||
public interface SimilarImageProjection {
|
||||
Integer getHash64Hi();
|
||||
Integer getHash64Lo();
|
||||
Long getHash64Hi();
|
||||
Long getHash64Lo();
|
||||
String getId();
|
||||
Long getUserId();
|
||||
String getOriginalFileName();
|
||||
|
||||
Reference in New Issue
Block a user