Done ticket GEPAFINBE-215
This commit is contained in:
@@ -3,12 +3,17 @@ package net.gepafin.tendermanagement.dao;
|
||||
import feign.FeignException;
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.entities.CompanyEntity;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.enums.VatCheckVersionTypeEnum;
|
||||
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||
import net.gepafin.tendermanagement.repositories.CompanyRepository;
|
||||
import net.gepafin.tendermanagement.repositories.GlobalConfigRepository;
|
||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckV1Service;
|
||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckV2Service;
|
||||
import net.gepafin.tendermanagement.util.Utils;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -48,6 +53,9 @@ public class VatCheckDao {
|
||||
@Autowired
|
||||
private GlobalConfigRepository globalConfigRepository;
|
||||
|
||||
@Autowired
|
||||
private CompanyRepository companyRepository;
|
||||
|
||||
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
|
||||
|
||||
public VatCheckResponseBean checkVatNumberV1(String vatNumber) {
|
||||
@@ -56,6 +64,7 @@ public class VatCheckDao {
|
||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
|
||||
return vatCheckResponseBean;
|
||||
}
|
||||
try {
|
||||
@@ -96,6 +105,7 @@ public class VatCheckDao {
|
||||
|
||||
public static void processValidResponseV1(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
||||
Object dataObj = responseMap.get("data");
|
||||
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
|
||||
if (dataObj instanceof Map<?, ?> rawDataMap) {
|
||||
Map<String, Object> responseBody = new LinkedHashMap<>();
|
||||
rawDataMap.forEach((k, v) -> {
|
||||
@@ -118,9 +128,20 @@ public class VatCheckDao {
|
||||
|
||||
}
|
||||
|
||||
public VatCheckResponseBean checkVatNumber(String vatNumber) {
|
||||
public VatCheckResponseBean checkVatNumber(String vatNumber, Long hubId) {
|
||||
|
||||
try {
|
||||
CompanyEntity company = companyRepository.findByVatNumberAndHubId(vatNumber, hubId);
|
||||
|
||||
if (company != null && Boolean.FALSE.equals(StringUtils.isEmpty(company.getJson()))) {
|
||||
Map<String, Object> responseMap = Utils.convertJsonStringToMap(company.getJson());
|
||||
|
||||
VatCheckResponseBean jsonResponse = validateJsonFromDb(responseMap);
|
||||
if (jsonResponse != null) {
|
||||
return jsonResponse;
|
||||
}
|
||||
}
|
||||
|
||||
String vatApiVersion = getVatCheckVersion();
|
||||
if(!isVatCheckApiV2(vatApiVersion)){
|
||||
return checkVatNumberV1(vatNumber);
|
||||
@@ -134,6 +155,26 @@ public class VatCheckDao {
|
||||
return vatCheckResponseBean;
|
||||
}
|
||||
}
|
||||
private VatCheckResponseBean validateJsonFromDb(Map<String, Object> responseMap) {
|
||||
if (responseMap == null || !responseMap.containsKey("data")) return null;
|
||||
|
||||
Object data = responseMap.get("data");
|
||||
|
||||
if (data instanceof Map<?, ?> dataMap && !dataMap.isEmpty()) {
|
||||
VatCheckResponseBean response = new VatCheckResponseBean();
|
||||
processValidResponseV1(responseMap, response);
|
||||
return response;
|
||||
}
|
||||
|
||||
if (data instanceof List<?> dataList && !dataList.isEmpty()) {
|
||||
VatCheckResponseBean response = new VatCheckResponseBean();
|
||||
processValidResponse(responseMap, response);
|
||||
return response;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public VatCheckResponseBean checkVatNumberV2(String vatNumber) {
|
||||
|
||||
@@ -142,6 +183,7 @@ public class VatCheckDao {
|
||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
|
||||
return vatCheckResponseBean;
|
||||
}
|
||||
try {
|
||||
@@ -175,6 +217,7 @@ public class VatCheckDao {
|
||||
|
||||
public static void processValidResponse(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
||||
|
||||
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
|
||||
if (responseMap == null || !responseMap.containsKey("data")) {
|
||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user