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;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
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.IssuerCompanyInfo;
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.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.platform.utils.log.ExceptionUtils;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
public class IssueCompanyService {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -32,25 +31,27 @@ public class IssueCompanyService {
this.kafkaSender = kafkaSender;
}
public void sendRequest(FondListingsRequest request) {
List<IssuerCompany> issuerCompanyList = request.getIssuerCompanyList();
public void sendRequest(List<IssuerCompany> issuerCompanyList,
List<IssuerCompanySymbols> issuerCompanySymbolsList,
List<IssuerContact> issuerContactList,
List<IssuerCompanyInfo> issuerCompanyInfoList) {
for (IssuerCompany issuerCompany : issuerCompanyList) {
try {
UUID companyId = issuerCompany.getId();
log.debug("Grouping by companyId: {}", companyId);
List<IssuerCompanySymbols> issuerCompanySymbolsList = groupByCompanyId(request.getIssuerCompanySymbolsList(), companyId);
List<IssuerContact> issuerContactList = groupByCompanyId(request.getIssuerContactList(), companyId);
List<IssuerCompanySymbols> gpoupingSymbolsList = groupByCompanyId(issuerCompanySymbolsList, companyId);
List<IssuerContact> gpoupingContactList = groupByCompanyId(issuerContactList, companyId);
List<CompanySymbolNewRequest> companySymbolNewRequests = issuerCompanySymbolsList.stream().
List<CompanySymbolNewRequest> companySymbolNewRequests = gpoupingSymbolsList.stream().
map(issuerCompanyRequestAdapter::toCompanySymbolRequest).toList();
List<ContactNewRequest> contactNewRequests = issuerContactList.stream().
List<ContactNewRequest> contactNewRequests = gpoupingContactList.stream().
map(issuerCompanyRequestAdapter::toContactRequest).toList();
SecurityMkrGatewayRequest securityMkrGatewayRequest = new SecurityMkrGatewayRequest();
securityMkrGatewayRequest.setCompanyNewRequest(issuerCompanyRequestAdapter.toCompanyRequest(issuerCompany));
securityMkrGatewayRequest.setCompanySymbolNewRequests(companySymbolNewRequests);
securityMkrGatewayRequest.setContactNewRequests(contactNewRequests);
request.getIssuerCompanyInfoList()
issuerCompanyInfoList
.stream()
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
.map(issuerCompanyRequestAdapter::toCompanyInfoRequest)

View file

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

View file

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