@@ -11,9 +11,11 @@ import ru.soune.nocopy.dto.MessageCode;
|
|||||||
import ru.soune.nocopy.dto.file.ImageSearchRequest;
|
import ru.soune.nocopy.dto.file.ImageSearchRequest;
|
||||||
import ru.soune.nocopy.dto.file.YandexSearchResponse;
|
import ru.soune.nocopy.dto.file.YandexSearchResponse;
|
||||||
import ru.soune.nocopy.entity.file.FileEntity;
|
import ru.soune.nocopy.entity.file.FileEntity;
|
||||||
|
import ru.soune.nocopy.entity.file.ImageHashEntity;
|
||||||
import ru.soune.nocopy.entity.tokenoperation.OperationType;
|
import ru.soune.nocopy.entity.tokenoperation.OperationType;
|
||||||
import ru.soune.nocopy.exception.NotValidFieldException;
|
import ru.soune.nocopy.exception.NotValidFieldException;
|
||||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||||
|
import ru.soune.nocopy.repository.ImageHashRepository;
|
||||||
import ru.soune.nocopy.repository.SimilarImageProjection;
|
import ru.soune.nocopy.repository.SimilarImageProjection;
|
||||||
import ru.soune.nocopy.service.FileSimilarityService;
|
import ru.soune.nocopy.service.FileSimilarityService;
|
||||||
import ru.soune.nocopy.service.ImageHashService;
|
import ru.soune.nocopy.service.ImageHashService;
|
||||||
@@ -51,6 +53,8 @@ public class ImageFoundRequestHandler implements RequestHandler {
|
|||||||
|
|
||||||
private final ImageHashService imageHashService;
|
private final ImageHashService imageHashService;
|
||||||
|
|
||||||
|
private final ImageHashRepository imageHashRepository;
|
||||||
|
|
||||||
private final FileSimilarityService fileSimilarityService;
|
private final FileSimilarityService fileSimilarityService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -137,6 +141,7 @@ public class ImageFoundRequestHandler implements RequestHandler {
|
|||||||
|
|
||||||
int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
|
int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
|
||||||
int pageSize = 5;
|
int pageSize = 5;
|
||||||
|
|
||||||
boolean checkSimilar = imageSearchRequest.getCheckSimilarFirst() == null ? true:
|
boolean checkSimilar = imageSearchRequest.getCheckSimilarFirst() == null ? true:
|
||||||
imageSearchRequest.getCheckSimilarFirst();
|
imageSearchRequest.getCheckSimilarFirst();
|
||||||
|
|
||||||
@@ -151,10 +156,10 @@ public class ImageFoundRequestHandler implements RequestHandler {
|
|||||||
|
|
||||||
Map<String, Long> hashSearchApiFile = imageHashService.calculateHash(Paths.get(filePath));
|
Map<String, Long> hashSearchApiFile = imageHashService.calculateHash(Paths.get(filePath));
|
||||||
|
|
||||||
Map<String, Long> hashCheckFile = imageHashService.calculateHash(Paths.get(fileEntity.getFilePath()));
|
ImageHashEntity checkFileHash = imageHashRepository.findByFileId(fileId);
|
||||||
|
|
||||||
boolean hashesAreEqual = hashSearchApiFile.get("hi").equals(hashCheckFile.get("hi"))
|
boolean hashesAreEqual = hashSearchApiFile.get("hi").equals(checkFileHash.getHash64Hi())
|
||||||
&& hashSearchApiFile.get("low").equals(hashCheckFile.get("low"));
|
&& hashSearchApiFile.get("low").equals(checkFileHash.getHash64Lo());
|
||||||
|
|
||||||
if (!hashesAreEqual) {
|
if (!hashesAreEqual) {
|
||||||
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
@Repository
|
@Repository
|
||||||
public interface ImageHashRepository extends JpaRepository<ImageHashEntity, String> {
|
public interface ImageHashRepository extends JpaRepository<ImageHashEntity, String> {
|
||||||
void deleteByFileId(String fileId);
|
void deleteByFileId(String fileId);
|
||||||
List<ImageHashEntity> findByFileId(String fileId);
|
ImageHashEntity findByFileId(String fileId);
|
||||||
ImageHashEntity findByHash64HiAndHash64Lo(Long hash64Hi, Long hash64Lo);
|
ImageHashEntity findByHash64HiAndHash64Lo(Long hash64Hi, Long hash64Lo);
|
||||||
@Modifying
|
@Modifying
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
Reference in New Issue
Block a user