From 3eeab23360c6757dea7cd12169080532f89ecf85 Mon Sep 17 00:00:00 2001 From: aalehin Date: Thu, 26 Jan 2023 14:32:48 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-89 --- UncoveredDealRegisterService --- .../service/UncoveredDealRegisterService.java | 63 +++++ .../platform/messaging/domain/Consts.java | 1 + .../UncoveredDealRegisterNewRequest.java | 219 ++++++++++++++++++ 3 files changed, 283 insertions(+) create mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java new file mode 100644 index 000000000..f9b0d6580 --- /dev/null +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java @@ -0,0 +1,63 @@ +package ru.spcex.clearing.registry.service; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.register.UncoveredDealRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.UncoveredDealRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +@Service +public class UncoveredDealRegisterService extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final Imdg uncoveredDealRegisterMap; + + @Autowired + public UncoveredDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, + ImdgProvider imdgProvider) { + super(kafkaQueue, kafkaProducer); + this.uncoveredDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class); + } + + @Override + public void afterPropertiesSet() { + callback(UncoveredDealRegisterNewRequest.class) + .setConsumer(this::uncoveredDealRegisterNew) + .forDestination(Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, callbacks::put); + init(); + } + + public void uncoveredDealRegisterNew(BaseRequest userRequest) { + UncoveredDealRegisterNewRequest req = userRequest.getRequestPayload(); + log.debug("UncoveredDealRegisterNewRequest received"); + UncoveredDealRegister register = new UncoveredDealRegister(); + register.setExecutionId(req.getExecutionId()); + register.setCompanyFullName(req.getCompanyFullName()); + register.setTradingDate(req.getTradingDate()); + register.setExchangeExecutionId(req.getExchangeExecutionId()); + register.setExchangeExecutionTime(req.getExchangeExecutionTime()); + register.setSecuritySymbol(req.getSecuritySymbol()); + register.setSecurityFullName(req.getSecurityFullName()); + register.setSellerFullName(req.getSellerFullName()); + register.setSellerClearingCode(req.getSellerClearingCode()); + register.setSellerAccount(req.getSellerAccount()); + register.setBuyerFullName(req.getBuyerFullName()); + register.setBuyerClearingCode(req.getBuyerClearingCode()); + register.setBuyerAccount(req.getBuyerAccount()); + register.setAmount(req.getAmount()); + register.setResultStatus(req.getResultStatus()); + register.setClearingDate(req.getClearingDate()); + uncoveredDealRegisterMap.insert(register); + log.debug("successfully processed, id {}", register.getId()); + } +} 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 ef689737a..b5e7b027a 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 @@ -60,4 +60,5 @@ public interface Consts { String REGISTRY_ORDER_REGISTER_NEW = "registry-order-register-new"; String REGISTRY_CONTRACT_REGISTER_NEW = "registry-contract-register-new"; String REGISTRY_BALANCE_REGISTER_NEW = "registry-balance-register-new"; + String REGISTRY_UNCOVERED_DEAL_REGISTER_NEW = "registry-uncovered-deal-register-new"; } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java new file mode 100644 index 000000000..656ae8748 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java @@ -0,0 +1,219 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.registry; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; + +public class UncoveredDealRegisterNewRequest { + + @JsonProperty + private Long executionId; + + @JsonProperty + private String companyFullName; + + @JsonProperty + private LocalDate tradingDate; + + @JsonProperty + private Long exchangeExecutionId; + + @JsonProperty + private Instant exchangeExecutionTime; + + @JsonProperty + private String securitySymbol; + + @JsonProperty + private String securityFullName; + + @JsonProperty + private String sellerFullName; + + @JsonProperty + private String sellerClearingCode; + + @JsonProperty + private String sellerAccount; + + @JsonProperty + private String buyerFullName; + + @JsonProperty + private String buyerClearingCode; + + @JsonProperty + private String buyerAccount; + + @JsonProperty + private BigDecimal amount; + + @JsonProperty + private String resultStatus; + + @JsonProperty + private Long id; + + @JsonProperty + private Instant createdAt; + + @JsonProperty + private Instant updatedAt; + + @JsonProperty + private LocalDate clearingDate; + + public Long getExecutionId() { + return executionId; + } + + public void setExecutionId(Long executionId) { + this.executionId = executionId; + } + + public String getCompanyFullName() { + return companyFullName; + } + + public void setCompanyFullName(String companyFullName) { + this.companyFullName = companyFullName; + } + + public LocalDate getTradingDate() { + return tradingDate; + } + + public void setTradingDate(LocalDate tradingDate) { + this.tradingDate = tradingDate; + } + + public Long getExchangeExecutionId() { + return exchangeExecutionId; + } + + public void setExchangeExecutionId(Long exchangeExecutionId) { + this.exchangeExecutionId = exchangeExecutionId; + } + + public Instant getExchangeExecutionTime() { + return exchangeExecutionTime; + } + + public void setExchangeExecutionTime(Instant exchangeExecutionTime) { + this.exchangeExecutionTime = exchangeExecutionTime; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String securitySymbol) { + this.securitySymbol = securitySymbol; + } + + public String getSecurityFullName() { + return securityFullName; + } + + public void setSecurityFullName(String securityFullName) { + this.securityFullName = securityFullName; + } + + public String getSellerFullName() { + return sellerFullName; + } + + public void setSellerFullName(String sellerFullName) { + this.sellerFullName = sellerFullName; + } + + public String getSellerClearingCode() { + return sellerClearingCode; + } + + public void setSellerClearingCode(String sellerClearingCode) { + this.sellerClearingCode = sellerClearingCode; + } + + public String getSellerAccount() { + return sellerAccount; + } + + public void setSellerAccount(String sellerAccount) { + this.sellerAccount = sellerAccount; + } + + public String getBuyerFullName() { + return buyerFullName; + } + + public void setBuyerFullName(String buyerFullName) { + this.buyerFullName = buyerFullName; + } + + public String getBuyerClearingCode() { + return buyerClearingCode; + } + + public void setBuyerClearingCode(String buyerClearingCode) { + this.buyerClearingCode = buyerClearingCode; + } + + public String getBuyerAccount() { + return buyerAccount; + } + + public void setBuyerAccount(String buyerAccount) { + this.buyerAccount = buyerAccount; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getResultStatus() { + return resultStatus; + } + + public void setResultStatus(String resultStatus) { + this.resultStatus = resultStatus; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Instant getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Instant createdAt) { + this.createdAt = createdAt; + } + + public Instant getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Instant updatedAt) { + this.updatedAt = updatedAt; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate clearingDate) { + this.clearingDate = clearingDate; + } +}