From bf68d50b3e61919d7d5d0a5c6511083a4280a824 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 22 Jun 2023 10:52:16 +0300 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=20=D1=80=D0=B5=D0=BA=D0=B2=D0=B5=D1=81=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20security-service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IssueCompanyService.java | 4 +-- .../gatewayapi/service/SecurityService.java | 25 ++++++++++++------- .../builders/OutboundRequestBuilder.java | 10 +++++--- .../service/cud/GatewaySecurityService.java | 12 ++++++--- .../platform/messaging/domain/Consts.java | 1 - .../company/EquitySecurityGatewayRequest.java | 16 ++++++------ .../company/FixedIncomeGatewayRequest.java | 16 ++++++------ .../company/SecurityFondGatewayRequest.java | 22 +++------------- 8 files changed, 54 insertions(+), 52 deletions(-) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java index 64fd1eebb..462cd0de3 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java @@ -9,7 +9,6 @@ import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.IssuerCompan import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.IssuerCompanySymbols; import ru.spcex.clearing.gatewayapi.controller.request.listing.fond.IssuerContact; import ru.spcex.clearing.gatewayapi.service.adapter.IssuerCompanyRequestAdapter; -import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityMkrGatewayRequest; @@ -55,7 +54,8 @@ public class IssueCompanyService { .map(issuerCompanyRequestAdapter::toCompanyInfoRequest) .ifPresent(securityMkrGatewayRequest::setCompanyInfoUpdateRequest); - kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest); + //todo реализовать на стороне security-service обработку и правильную группировку +// kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest); } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java index 08ca18a35..af6bac1a6 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/SecurityService.java @@ -47,23 +47,30 @@ public class SecurityService { List cashFlowRequests = nominals.stream(). map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList(); - SecurityFondGatewayRequest securityGatewayRequest; + SecurityFondGatewayRequest securityGatewayRequest; if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security); securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest); - } else {EquitySecurityNewRequest - equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security); + } else { + EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security); securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest); } - securityGatewayRequest.setSecurityType(security.getInstrumentType()); - securityGatewayRequest.setListing(listingRequests); - securityGatewayRequest.setCouponPeriods(couponPeriodRequests); - securityGatewayRequest.setFixedIncomesCashFlow(cashFlowRequests); - - kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_MULTIREQUEST, securityGatewayRequest); + fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_GATEWAY, securityGatewayRequest); } } + private void fillRequest(SecurityFondGatewayRequest securityGatewayRequest, + FondSecurity security, + List listingRequests, + List couponPeriodRequests, + List cashFlowRequests) { + securityGatewayRequest.setSecurityType(security.getInstrumentType()); + securityGatewayRequest.setListing(listingRequests); + securityGatewayRequest.setCouponPeriods(couponPeriodRequests); + securityGatewayRequest.setFixedIncomesCashFlow(cashFlowRequests); + } + private List groupByCompanyId(List listToProcess, UUID securityId) { return listToProcess.stream().filter(t -> t.getSecurityId().equals(securityId)).collect(Collectors.toList()); } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/OutboundRequestBuilder.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/OutboundRequestBuilder.java index 1672e2051..8a15a5ac9 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/OutboundRequestBuilder.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/OutboundRequestBuilder.java @@ -26,7 +26,7 @@ public class OutboundRequestBuilder { } public OutboundRequestBuilder type(OutboundRequestType outboundRequestType) { - this.section = section; + this.requestType = outboundRequestType; return this; } @@ -39,8 +39,12 @@ public class OutboundRequestBuilder { OutboundRequest outboundRequest = new OutboundRequest(); outboundRequest.setId(UUID.randomUUID()); outboundRequest.setDatetime(Instant.now()); - outboundRequest.setSection(section); - outboundRequest.setType(requestType != null ? requestType.getKey() : null); + if (section != null) { + outboundRequest.setSection(section); + } + if (requestType != null) { + outboundRequest.setType(requestType.getKey()); + } outboundRequest.setContent(content); return outboundRequest; } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java index 01fcc83e9..ddadbbc3a 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java @@ -20,6 +20,8 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.company.EquitySecurityGatewayRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.FixedIncomeGatewayRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityFondGatewayRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; @@ -176,8 +178,9 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin Security security = null; try { - if (req.getSecurity() != null && InstrumentType.BOND.equalsByKey(req.getSecurityType())) { - FixedIncomeSecurityNewRequest fixedIncomeRequest = (FixedIncomeSecurityNewRequest) req.getSecurity(); + if (InstrumentType.BOND.equalsByKey(req.getSecurityType())) { + FixedIncomeGatewayRequest fixedIncomeGatewayRequest = (FixedIncomeGatewayRequest) req; + FixedIncomeSecurityNewRequest fixedIncomeRequest = fixedIncomeGatewayRequest.getSecurity(); fixedIncomeRequest.setIssuerId(companyId); log.trace("FixedIncomeSecurityNewRequest - BOND"); String securitySymbol = fixedIncomeRequest.getSecuritySymbol(); @@ -190,8 +193,9 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin security = fixedIncomeSecurityService.updateFixedIncome0(updateRequest); } } - if (req.getSecurity() != null && InstrumentType.EQTY.equalsByKey(req.getSecurityType())) { - EquitySecurityNewRequest equityRequest = (EquitySecurityNewRequest) req.getSecurity(); + if (InstrumentType.EQTY.equalsByKey(req.getSecurityType())) { + EquitySecurityGatewayRequest equitySecurityGatewayRequest = (EquitySecurityGatewayRequest) req; + EquitySecurityNewRequest equityRequest = equitySecurityGatewayRequest.getSecurity(); equityRequest.setIssuerId(companyId); log.trace("EquitySecurityNewRequest - FOND"); String securitySymbol = equityRequest.getSecuritySymbol(); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index aed7aac24..3c59d5b5a 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -46,7 +46,6 @@ public interface Consts { String DESTINATION_COMPANY_GATEWAY_REQUEST = "company-gateway-request"; String DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST = "company-issuer-company-gateway-request"; - String DESTINATION_SECURITY_MULTIREQUEST = "company-multirequest-new"; String DESTINATION_COMPANY_NEW = "company-new"; String DESTINATION_COMPANY_DELETE = "company-delete"; String DESTINATION_COMPANY_UPDATE = "company-update"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java index fce6825ba..5b03e0ad0 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/EquitySecurityGatewayRequest.java @@ -1,19 +1,21 @@ package ru.spcex.clearing.platform.messaging.domain.cud.company; +import com.fasterxml.jackson.annotation.JsonProperty; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest; -public class EquitySecurityGatewayRequest extends SecurityFondGatewayRequest { - public EquitySecurityGatewayRequest(EquitySecurityNewRequest request) { - super(request); +public class EquitySecurityGatewayRequest extends SecurityFondGatewayRequest { + @JsonProperty + private EquitySecurityNewRequest security; + + public EquitySecurityGatewayRequest(EquitySecurityNewRequest security) { + this.security = security; } - @Override public EquitySecurityNewRequest getSecurity() { - return super.getSecurity(); + return security; } - @Override public void setSecurity(EquitySecurityNewRequest security) { - super.setSecurity(security); + this.security = security; } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java index f84f41dbf..d0b921ede 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/FixedIncomeGatewayRequest.java @@ -1,19 +1,21 @@ package ru.spcex.clearing.platform.messaging.domain.cud.company; +import com.fasterxml.jackson.annotation.JsonProperty; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest; -public class FixedIncomeGatewayRequest extends SecurityFondGatewayRequest { - public FixedIncomeGatewayRequest(FixedIncomeSecurityNewRequest request) { - super(request); +public class FixedIncomeGatewayRequest extends SecurityFondGatewayRequest { + @JsonProperty + private FixedIncomeSecurityNewRequest security; + + public FixedIncomeGatewayRequest(FixedIncomeSecurityNewRequest security) { + this.security = security; } - @Override public FixedIncomeSecurityNewRequest getSecurity() { - return super.getSecurity(); + return security; } - @Override public void setSecurity(FixedIncomeSecurityNewRequest security) { - super.setSecurity(security); + this.security = security; } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java index 15caf814c..084bd89ac 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/SecurityFondGatewayRequest.java @@ -1,21 +1,18 @@ package ru.spcex.clearing.platform.messaging.domain.cud.company; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonTypeInfo; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeCashFlowNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.ListingNewRequest; -import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; -import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol; import java.util.ArrayList; import java.util.List; -public abstract class SecurityFondGatewayRequest { +@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) +public abstract class SecurityFondGatewayRequest { @JsonProperty private String uuid; - - @JsonProperty - protected T security; @JsonProperty private List listing = new ArrayList<>(); @JsonProperty @@ -23,10 +20,6 @@ public abstract class SecurityFondGatewayRequest fixedIncomesCashFlow = new ArrayList<>(); - public SecurityFondGatewayRequest(T security) { - this.security = security; - } - @JsonProperty private String securityType; @@ -37,15 +30,6 @@ public abstract class SecurityFondGatewayRequest getListing() { return listing; }