From baa61228fa21f65bc4345f0cb7e9d47b8c2e07d3 Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 1 Jun 2023 12:35:01 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-301 some fixes --- .../listings_fond/PrepareIncomeSecurities.java | 2 +- ...ageToCompanyServiceWithIssuerCompanies.java | 2 +- .../ValidateIncomeSecurities.java | 2 +- .../PrepareExchangeInstruments.java | 2 +- .../request/objects/FondSecurity.java | 3 ++- .../gatewayapi/service/GatewayService.java | 18 ++++++++++++++++++ .../domain/cud/gateway/GatewayTaskRequest.java | 17 +++++++++++++++++ 7 files changed, 41 insertions(+), 5 deletions(-) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java index 1959d86ab..56e625ec1 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/PrepareIncomeSecurities.java @@ -74,7 +74,7 @@ public class PrepareIncomeSecurities extends Stage { .collect(Collectors.toList()); if (filteredIncomeSecurities.isEmpty()) { - return new ProcessResult(GatewayError.SecurityNotFound); + return new ProcessResult(GatewayError.SecurityNotFound, securities.stream().map(fondSecurity -> fondSecurity.getId().toString()).collect(Collectors.joining(", "))); } param.setSecurities(filteredIncomeSecurities); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/SendMessageToCompanyServiceWithIssuerCompanies.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/SendMessageToCompanyServiceWithIssuerCompanies.java index 3e7b43b46..74b80e63d 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/SendMessageToCompanyServiceWithIssuerCompanies.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_fond/SendMessageToCompanyServiceWithIssuerCompanies.java @@ -77,7 +77,7 @@ public class SendMessageToCompanyServiceWithIssuerCompanies extends Stage { .collect(Collectors.toList()); if (filteredIncomeSecurities.isEmpty()) { - return new ProcessResult(GatewayError.SecurityNotFound); + return new ProcessResult(GatewayError.SecurityNotFound, securities.stream().map(fondSecurity -> fondSecurity.getId().toString()).collect(Collectors.joining(", "))); } param.setSecurities(filteredIncomeSecurities); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java index 62276caf9..b634ce63b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/logic/listings_mm/PrepareExchangeInstruments.java @@ -99,7 +99,7 @@ public class PrepareExchangeInstruments extends Stage { .collect(Collectors.toList()); if (filteredExchangeInstrument.isEmpty()) { - return new ProcessResult(GatewayError.SecurityNotFound); + return new ProcessResult(GatewayError.SecurityNotFound, exchangeInstrumentList.stream().map(fondSecurity -> fondSecurity.getId().toString()).collect(Collectors.joining(", "))); } param.setExchangeInstrumentsList(filteredExchangeInstrument); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/FondSecurity.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/FondSecurity.java index 17e993673..761250e77 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/FondSecurity.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/request/objects/FondSecurity.java @@ -120,7 +120,8 @@ public class FondSecurity extends WithMapId { «E», если Общая информация\\Тип ценной бумаги = «E - Биржевая облигация» «I», если Общая информация\\Тип ценной бумаги = «I - Облигации с индексированным номиналом» «M», если Общая информация\\Тип ценной бумаги = «M - Облигации с амортизацией долга» - """ + """, + example = "Z" ) private String bondType; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java index d75557889..08b3a9cfe 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java @@ -16,6 +16,8 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.Task; +import java.util.Map; + @Service public class GatewayService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -52,6 +54,8 @@ public class GatewayService extends QueueConsumer implements InitializingBean { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; + logUnknownProperties(userRequest); + String url = formingInboundUrl(inboundServerSettings.getPathLOCM()); String response = restTemplate.getForObject(url, String.class); @@ -65,6 +69,8 @@ public class GatewayService extends QueueConsumer implements InitializingBean { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; + logUnknownProperties(userRequest); + String url = formingInboundUrl(inboundServerSettings.getPathLOSC()); String response = restTemplate.getForObject(url, String.class); @@ -80,4 +86,16 @@ public class GatewayService extends QueueConsumer implements InitializingBean { path ); } + + private void logUnknownProperties(BaseRequest request) { + Map unknownProperties = request.getUnknownProperties(); + for (Map.Entry unknownProperty : unknownProperties.entrySet()) { + log.warn("Unknown property in request {} = {}", unknownProperty.getKey(), unknownProperty.getValue()); + } + unknownProperties = request.getRequestPayload().getUnknownProperties(); + for (Map.Entry unknownProperty : unknownProperties.entrySet()) { + log.warn("Unknown property in payload request {} = {}", unknownProperty.getKey(), unknownProperty.getValue()); + } + } + } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/GatewayTaskRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/GatewayTaskRequest.java index 119f9430a..c9abfac7b 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/GatewayTaskRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/GatewayTaskRequest.java @@ -1,11 +1,24 @@ package ru.spcex.clearing.platform.messaging.domain.cud.gateway; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.HashMap; +import java.util.Map; + public class GatewayTaskRequest { @JsonProperty public String task; + @JsonIgnore + private final Map unknownProperties = new HashMap<>(); + + @JsonAnySetter + public void add(String key, Object value) { + unknownProperties.put(key, value); + } + public String getTask() { return task; } @@ -13,4 +26,8 @@ public class GatewayTaskRequest { public void setTask(String task) { this.task = task; } + + public Map getUnknownProperties() { + return unknownProperties; + } }