From adc978bea867722f894f24655c09302d9bcfe261 Mon Sep 17 00:00:00 2001 From: vladp Date: Thu, 5 Feb 2026 17:25:50 +0700 Subject: [PATCH] dev write off for search --- .../soune/nocopy/handler/ImageFoundRequestHandler.java | 9 ++++++--- .../nocopy/service/file/impl/FileUploadServiceImpl.java | 3 ++- .../ru/soune/nocopy/service/tariff/TariffConstants.java | 1 + .../soune/nocopy/service/tariff/TariffInfoService.java | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java index 2f293b8..b50c19f 100644 --- a/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ImageFoundRequestHandler.java @@ -3,13 +3,11 @@ package ru.soune.nocopy.handler; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import okhttp3.Response; import org.springframework.stereotype.Component; import ru.soune.nocopy.dto.BaseRequest; import ru.soune.nocopy.dto.BaseResponse; 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.exception.NotValidFieldException; import ru.soune.nocopy.repository.FileEntityRepository; @@ -17,8 +15,9 @@ import ru.soune.nocopy.service.file.CheckCounterService; import ru.soune.nocopy.service.search.SearchApiToYandexResponseMapper; import ru.soune.nocopy.service.search.YandexSearchService; import ru.soune.nocopy.service.search.GoogleVisionSearchService; +import ru.soune.nocopy.service.tariff.TariffConstants; +import ru.soune.nocopy.service.tariff.TariffInfoService; -import java.io.IOException; import java.util.Map; @Slf4j @@ -36,6 +35,8 @@ public class ImageFoundRequestHandler implements RequestHandler { private final FileEntityRepository fileEntityRepository; + private final TariffInfoService tariffInfoService; + private final SearchApiToYandexResponseMapper mapper = new SearchApiToYandexResponseMapper(); @Override @@ -61,6 +62,8 @@ public class ImageFoundRequestHandler implements RequestHandler { String yandexReverseSearchResponse = yandexSearchService.searchReverseByPublicUrl(fileEntity); + tariffInfoService.writeOffTokens(fileEntity.getUserId(), TariffConstants.TOKEN_VALUE_FOR_SEARCH); + return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(), MessageCode.SUCCESS.getDescription(), mapper.mapToYandexResponse(yandexReverseSearchResponse)); } diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index 38fdc43..d2b11fa 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -24,6 +24,7 @@ import ru.soune.nocopy.service.FileSimilarityService; import ru.soune.nocopy.service.ImageHashService; import ru.soune.nocopy.service.file.FileEntityService; import ru.soune.nocopy.service.file.FileUploadService; +import ru.soune.nocopy.service.tariff.TariffConstants; import ru.soune.nocopy.service.tariff.TariffInfoService; import ru.soune.nocopy.util.FileUtil; @@ -331,7 +332,7 @@ public class FileUploadServiceImpl implements FileUploadService { completeFileProcessingAsync(session, status); if (status != FileStatus.TEMP) { - tariffInfoService.writeOffTokens(session.getUserId()); + tariffInfoService.writeOffTokens(session.getUserId(), TariffConstants.TOKEN_VALUE); } } else { sessionRepository.save(session); diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffConstants.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffConstants.java index 4f429e7..60e5d89 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffConstants.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffConstants.java @@ -14,4 +14,5 @@ public class TariffConstants { public static final Integer ENTERPRISE_TOKENS = 400; public static final Integer TOKEN_VALUE = 3; + public static final Integer TOKEN_VALUE_FOR_SEARCH = 5; } diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java index 88bcbe4..0433be1 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java @@ -40,7 +40,7 @@ public class TariffInfoService { } @Transactional - public void writeOffTokens(long userId) { + public void writeOffTokens(long userId, Integer value) { User user = userRepository.findById(userId).orElseThrow(); TariffInfo activeTariffInfo; @@ -53,7 +53,7 @@ public class TariffInfoService { Integer tokens = activeTariffInfo.getTokens(); - if (tokens - TariffConstants.TOKEN_VALUE > 0) { + if (tokens - value > 0) { activeTariffInfo.setTokens(activeTariffInfo.getTokens() - TariffConstants.TOKEN_VALUE); tariffInfoRepository.save(activeTariffInfo);