@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user