реформат реквеста для security-service

This commit is contained in:
etreschenkov 2023-06-22 10:52:16 +03:00
parent 1d639b5b48
commit bf68d50b3e
8 changed files with 54 additions and 52 deletions

View file

@ -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);
}
}

View file

@ -47,23 +47,30 @@ public class SecurityService {
List<FixedIncomeCashFlowNewRequest> 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<ListingNewRequest> listingRequests,
List<CouponPeriodNewRequest> couponPeriodRequests,
List<FixedIncomeCashFlowNewRequest> cashFlowRequests) {
securityGatewayRequest.setSecurityType(security.getInstrumentType());
securityGatewayRequest.setListing(listingRequests);
securityGatewayRequest.setCouponPeriods(couponPeriodRequests);
securityGatewayRequest.setFixedIncomesCashFlow(cashFlowRequests);
}
private <T extends WithSecurityId> List<T> groupByCompanyId(List<T> listToProcess, UUID securityId) {
return listToProcess.stream().filter(t -> t.getSecurityId().equals(securityId)).collect(Collectors.toList());
}

View file

@ -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;
}

View file

@ -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();

View file

@ -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";

View file

@ -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<EquitySecurityNewRequest> {
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;
}
}

View file

@ -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<FixedIncomeSecurityNewRequest> {
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;
}
}

View file

@ -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<T extends WithSecuritySymbol & WithInstrumentType> {
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public abstract class SecurityFondGatewayRequest {
@JsonProperty
private String uuid;
@JsonProperty
protected T security;
@JsonProperty
private List<ListingNewRequest> listing = new ArrayList<>();
@JsonProperty
@ -23,10 +20,6 @@ public abstract class SecurityFondGatewayRequest<T extends WithSecuritySymbol &
@JsonProperty
private List<FixedIncomeCashFlowNewRequest> fixedIncomesCashFlow = new ArrayList<>();
public SecurityFondGatewayRequest(T security) {
this.security = security;
}
@JsonProperty
private String securityType;
@ -37,15 +30,6 @@ public abstract class SecurityFondGatewayRequest<T extends WithSecuritySymbol &
public void setUuid(String uuid) {
this.uuid = uuid;
}
public T getSecurity() {
return security;
}
public void setSecurity(T security) {
this.security = security;
}
public List<ListingNewRequest> getListing() {
return listing;
}