Fixed sending package to nbki service

This commit is contained in:
Mikhail Trofimov 2025-06-17 12:48:30 +03:00
parent cf9cba8aad
commit 7a4290ad0b
4 changed files with 18 additions and 14 deletions

View file

@ -28,6 +28,6 @@ ct.scoring-data-source-settings.password=tester
ct.xsd-validation.monitoring-request-path=monitoring-request.xsd ct.xsd-validation.monitoring-request-path=monitoring-request.xsd
ct.xsd-validation.signal-package-path=signal-package.xsd ct.xsd-validation.signal-package-path=signal-package.xsd
ct.signals-root-uri=http://reports.test-alfa.nbki.ru/signalRUalfa/ ct.signals-root-uri=http://10.230.227.102:11094/signalRUalfa/
ct.signals-token=gttcHxwcGojoAvZK ct.signals-token=gttcHxwcGojoAvZK
ct.signals-user=0001ZZ000001 ct.signals-user=0001ZZ000001

View file

@ -229,16 +229,14 @@ public class SignalFacade {
if (!phoneFidsData.isEmpty()) { if (!phoneFidsData.isEmpty()) {
Signals signals = signalService.buildSignals(packageId, phoneFidsData); Signals signals = signalService.buildSignals(packageId, phoneFidsData);
// TODO validate xsd? // TODO validate xsd?
String response = null; if (signalRestService.update(signals)) {
// response = signalRestService.update(signals);
if (response == null) {
signalService.setPackageStatus(packageId, Status.ON_MONITORING); signalService.setPackageStatus(packageId, Status.ON_MONITORING);
} else { } else {
signalService.setPackageStatus(packageId, Status.ERROR); signalService.setPackageStatus(packageId, Status.ERROR);
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("Ошибка при поиске фидов или расчете флагов просрочек", e); log.error("Ошибка при поиске фидов или расчете флагов просрочек. Package_id {}", packageId, e);
} }
}); });
} }

View file

@ -4,6 +4,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
import ru.nbch.credit_tracker.entities.monitoring_request.MonitoringRequest; import ru.nbch.credit_tracker.entities.monitoring_request.MonitoringRequest;
import ru.nbch.credit_tracker.entities.signal_package.Auth; import ru.nbch.credit_tracker.entities.signal_package.Auth;
import ru.nbch.credit_tracker.entities.signal_package.Person; import ru.nbch.credit_tracker.entities.signal_package.Person;
@ -27,14 +28,18 @@ public class SignalService {
private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy"); private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
private final CreditTrackerSettings config;
private final SignalMapper mapper; private final SignalMapper mapper;
private final PhoneService phoneService; private final PhoneService phoneService;
private final FlagsService flagsService; private final FlagsService flagsService;
private final PersonService personService; private final PersonService personService;
public SignalService(SignalMapper mapper, public SignalService(CreditTrackerSettings config,
SignalMapper mapper,
PhoneService phoneService, PhoneService phoneService,
FlagsService flagsService, PersonService personService) { FlagsService flagsService,
PersonService personService) {
this.config = config;
this.mapper = mapper; this.mapper = mapper;
this.phoneService = phoneService; this.phoneService = phoneService;
this.flagsService = flagsService; this.flagsService = flagsService;
@ -77,7 +82,7 @@ public class SignalService {
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы) signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
signals.setId(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName()); // <MEMBERCODE>_<PackageName> signals.setId(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName()); // <MEMBERCODE>_<PackageName>
Auth auth = new Auth(); Auth auth = new Auth();
auth.setUser("test_user"); // TODO from properties // Внутренний логин НБКИ auth.setUser(config.getSignalsuser());
signals.setAuth(auth); signals.setAuth(auth);
for (PhoneService.FidsPhoneData fidData : fids) { for (PhoneService.FidsPhoneData fidData : fids) {
Person person = findPerson(fidData.getFid(), fidData.getSubjectId()); Person person = findPerson(fidData.getFid(), fidData.getSubjectId());

View file

@ -43,28 +43,29 @@ public class SignalRestService {
this.authToken = buildToken(config.getSignalsToken(), config.getSignalsuser()); this.authToken = buildToken(config.getSignalsToken(), config.getSignalsuser());
} }
public String update(Signals signals) throws Exception { public boolean update(Signals signals) throws Exception {
Resource request = compressFile(signals); Resource request = compressFile(signals);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); MultiValueMap<String, Resource> body = new LinkedMultiValueMap<>();
body.add("file", request); body.add("file", request);
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA); headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setBasicAuth(authToken); headers.setBasicAuth(authToken);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers); HttpEntity<MultiValueMap<String, Resource>> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<String> response = restTemplate.postForEntity(UPDATE_URI, requestEntity, String.class); ResponseEntity<String> response = restTemplate.postForEntity(UPDATE_URI, requestEntity, String.class);
if (response.getStatusCode().value() == 302) { if (response.getStatusCode().value() == 302) {
// good response // good response
return null; return true;
} else if (response.getStatusCode().value() == 200 && response.getBody() != null) { } else if (response.getStatusCode().value() == 200 && response.getBody() != null) {
// bad response // bad response
return response.getBody(); log.error("Ошибка при постановке пакета на мониторинг в официальный сервис сигналов: {}", response.getBody());
return false;
} }
return "Непредвиденная ошибка"; return false;
} }
private Resource compressFile(Signals signals) throws Exception { private Resource compressFile(Signals signals) throws Exception {