dev add check similar
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-04-29 17:16:34 +07:00
parent f032caf0a3
commit 9a27b56f05
2 changed files with 9 additions and 4 deletions
@@ -11,9 +11,11 @@ import ru.soune.nocopy.dto.MessageCode;
import ru.soune.nocopy.dto.file.ImageSearchRequest;
import ru.soune.nocopy.dto.file.YandexSearchResponse;
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.exception.NotValidFieldException;
import ru.soune.nocopy.repository.FileEntityRepository;
import ru.soune.nocopy.repository.ImageHashRepository;
import ru.soune.nocopy.repository.SimilarImageProjection;
import ru.soune.nocopy.service.FileSimilarityService;
import ru.soune.nocopy.service.ImageHashService;
@@ -51,6 +53,8 @@ public class ImageFoundRequestHandler implements RequestHandler {
private final ImageHashService imageHashService;
private final ImageHashRepository imageHashRepository;
private final FileSimilarityService fileSimilarityService;
@Override
@@ -137,6 +141,7 @@ public class ImageFoundRequestHandler implements RequestHandler {
int page = imageSearchRequest.getPage() != null ? imageSearchRequest.getPage() : 1;
int pageSize = 5;
boolean checkSimilar = imageSearchRequest.getCheckSimilarFirst() == null ? true:
imageSearchRequest.getCheckSimilarFirst();
@@ -151,10 +156,10 @@ public class ImageFoundRequestHandler implements RequestHandler {
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"))
&& hashSearchApiFile.get("low").equals(hashCheckFile.get("low"));
boolean hashesAreEqual = hashSearchApiFile.get("hi").equals(checkFileHash.getHash64Hi())
&& hashSearchApiFile.get("low").equals(checkFileHash.getHash64Lo());
if (!hashesAreEqual) {
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
@@ -13,7 +13,7 @@ import java.util.List;
@Repository
public interface ImageHashRepository extends JpaRepository<ImageHashEntity, String> {
void deleteByFileId(String fileId);
List<ImageHashEntity> findByFileId(String fileId);
ImageHashEntity findByFileId(String fileId);
ImageHashEntity findByHash64HiAndHash64Lo(Long hash64Hi, Long hash64Lo);
@Modifying
@Transactional