etreschenkov 2025-05-27 11:52:17 +03:00
parent 210ca99bfc
commit 522f91a8f9
3 changed files with 26 additions and 14 deletions

View file

@ -1,11 +1,14 @@
package ru.spcex.clearing.gatewayapi.service; package ru.spcex.clearing.gatewayapi.service;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithCompanyId; import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithCompanyId;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.FondListingsRequest;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerCompany; import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerCompany;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerCompanyInfo;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerCompanySymbols; import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerCompanySymbols;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerContact; import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IssuerContact;
import ru.spcex.clearing.gatewayapi.service.adapter.IssuerCompanyRequestAdapter; import ru.spcex.clearing.gatewayapi.service.adapter.IssuerCompanyRequestAdapter;
@ -15,10 +18,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityMkrGatewa
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.log.ExceptionUtils;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Service @Service
public class IssueCompanyService { public class IssueCompanyService {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
@ -32,25 +31,27 @@ public class IssueCompanyService {
this.kafkaSender = kafkaSender; this.kafkaSender = kafkaSender;
} }
public void sendRequest(FondListingsRequest request) { public void sendRequest(List<IssuerCompany> issuerCompanyList,
List<IssuerCompany> issuerCompanyList = request.getIssuerCompanyList(); List<IssuerCompanySymbols> issuerCompanySymbolsList,
List<IssuerContact> issuerContactList,
List<IssuerCompanyInfo> issuerCompanyInfoList) {
for (IssuerCompany issuerCompany : issuerCompanyList) { for (IssuerCompany issuerCompany : issuerCompanyList) {
try { try {
UUID companyId = issuerCompany.getId(); UUID companyId = issuerCompany.getId();
log.debug("Grouping by companyId: {}", companyId); log.debug("Grouping by companyId: {}", companyId);
List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId); List<IssuerCompanySymbols> gpoupingSymbolsList = groupByCompanyId(issuerCompanySymbolsList, companyId);
List<IssuerContact> issuerContactList = groupByCompanyId(request.getIssuerContactList(), companyId); List<IssuerContact> gpoupingContactList = groupByCompanyId(issuerContactList, companyId);
List<CompanySymbolNewRequest> companySymbolNewRequests = issuerCompanySymbolsList.stream(). List<CompanySymbolNewRequest> companySymbolNewRequests = gpoupingSymbolsList.stream().
map(issuerCompanyRequestAdapter::toCompanySymbolRequest).toList(); map(issuerCompanyRequestAdapter::toCompanySymbolRequest).toList();
List<ContactNewRequest> contactNewRequests = issuerContactList.stream(). List<ContactNewRequest> contactNewRequests = gpoupingContactList.stream().
map(issuerCompanyRequestAdapter::toContactRequest).toList(); map(issuerCompanyRequestAdapter::toContactRequest).toList();
SecurityMkrGatewayRequest securityMkrGatewayRequest = new SecurityMkrGatewayRequest(); SecurityMkrGatewayRequest securityMkrGatewayRequest = new SecurityMkrGatewayRequest();
securityMkrGatewayRequest.setCompanyNewRequest(issuerCompanyRequestAdapter.toCompanyRequest(issuerCompany)); securityMkrGatewayRequest.setCompanyNewRequest(issuerCompanyRequestAdapter.toCompanyRequest(issuerCompany));
securityMkrGatewayRequest.setCompanySymbolNewRequests(companySymbolNewRequests); securityMkrGatewayRequest.setCompanySymbolNewRequests(companySymbolNewRequests);
securityMkrGatewayRequest.setContactNewRequests(contactNewRequests); securityMkrGatewayRequest.setContactNewRequests(contactNewRequests);
request.getIssuerCompanyInfoList() issuerCompanyInfoList
.stream() .stream()
.filter(info -> info.getCompanyId().equals(companyId)).findFirst() .filter(info -> info.getCompanyId().equals(companyId)).findFirst()
.map(issuerCompanyRequestAdapter::toCompanyInfoRequest) .map(issuerCompanyRequestAdapter::toCompanyInfoRequest)

View file

@ -5,17 +5,25 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.FondDigitalListingsRequest; import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.FondDigitalListingsRequest;
import ru.spcex.clearing.gatewayapi.service.DigitalSecurityService; import ru.spcex.clearing.gatewayapi.service.DigitalSecurityService;
import ru.spcex.clearing.gatewayapi.service.IssueCompanyService;
@Service @Service
public class ListingDigitalFondProcessor { public class ListingDigitalFondProcessor {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
private final DigitalSecurityService digitalSecurityService; private final DigitalSecurityService digitalSecurityService;
private final IssueCompanyService issueCompanyProcessor;
public ListingDigitalFondProcessor(DigitalSecurityService digitalSecurityService) { public ListingDigitalFondProcessor(DigitalSecurityService digitalSecurityService,
IssueCompanyService issueCompanyProcessor) {
this.digitalSecurityService = digitalSecurityService; this.digitalSecurityService = digitalSecurityService;
this.issueCompanyProcessor = issueCompanyProcessor;
} }
public void process(FondDigitalListingsRequest request) { public void process(FondDigitalListingsRequest request) {
issueCompanyProcessor.sendRequest(request.getIssuerCompanyList(),
request.getIssuerCompanySymbolsList(),
request.getIssuerContactList(),
request.getIssuerCompanyInfoList());
digitalSecurityService.sendRequest(request); digitalSecurityService.sendRequest(request);
log.debug("process FondListingsRequest done"); log.debug("process FondListingsRequest done");
} }

View file

@ -19,7 +19,10 @@ public class ListingFondProcessor {
} }
public void process(FondListingsRequest request) { public void process(FondListingsRequest request) {
issueCompanyProcessor.sendRequest(request); issueCompanyProcessor.sendRequest(request.getIssuerCompanyList(),
request.getIssuerCompanySymbolsList(),
request.getIssuerContactList(),
request.getIssuerCompanyInfoList());
securityService.sendRequest(request); securityService.sendRequest(request);
log.debug("process FondListingsRequest done"); log.debug("process FondListingsRequest done");
} }