реформат реквеста для security-service
This commit is contained in:
parent
1d639b5b48
commit
bf68d50b3e
8 changed files with 54 additions and 52 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue