From b87f5dbb802eb9b9a0584abd022581642df4097a Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 2 Oct 2024 13:48:33 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-764 --- .../validation/RatesValidationConfig.java | 37 ++++++++ .../RiskParameterValidationConfig.java | 37 ++++++++ .../securities/errors/SecuritiesError.java | 2 + .../service/facade/RiskParameterFacade.java | 54 +++++++++++ .../RiskParameterMessageListener.java | 92 +++++++++++++++++++ .../validation/rule/RatesValidationRule.java | 41 +++++++++ .../rule/RiskParameterValidationRule.java | 42 +++++++++ .../platform/messaging/domain/Consts.java | 5 + .../domain/cud/security/RatesNewRequest.java | 49 ++++++++++ .../cud/security/RatesUpdateRequest.java | 38 ++++++++ .../cud/security/RiskParameterNewRequest.java | 48 ++++++++++ .../security/RiskParameterUpdateRequest.java | 38 ++++++++ 12 files changed, 483 insertions(+) create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RiskParameterValidationConfig.java create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/listeners/RiskParameterMessageListener.java create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java create mode 100644 clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RiskParameterValidationRule.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesUpdateRequest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterNewRequest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterUpdateRequest.java diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java new file mode 100644 index 000000000..efd5ff273 --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java @@ -0,0 +1,37 @@ +package ru.spcex.clearing.securities.config.validation; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesNewRequest; +import ru.spcex.clearing.securities.errors.SecuritiesError; +import ru.spcex.clearing.securities.validation.rule.RatesValidationRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +@Configuration +public class RatesValidationConfig { + + @Bean("ratesValidator") + public Function ratesValidator(Map> imdgForValidation) { + return ratesRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(ratesRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Rates); + return new ValidatorImpl<>(context, + FieldRequiredRule.instance("currencyPairUd", RatesNewRequest::getCurrencyPairId, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("value", RatesNewRequest::getValue, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("settlementType", RatesNewRequest::getValueDate, SecuritiesError.RequiredFieldIsEmpty), + RatesValidationRule.CHECK_ON_EXIST + ); + }; + } +} diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RiskParameterValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RiskParameterValidationConfig.java new file mode 100644 index 000000000..2f5702744 --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RiskParameterValidationConfig.java @@ -0,0 +1,37 @@ +package ru.spcex.clearing.securities.config.validation; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; +import ru.spcex.clearing.securities.errors.SecuritiesError; +import ru.spcex.clearing.securities.validation.rule.RiskParameterValidationRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +@Configuration +public class RiskParameterValidationConfig { + + @Bean("riskParameterValidator") + public Function riskParameterValidator(Map> imdgForValidation) { + return riskParameter -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(riskParameter); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_RiskParameter); + return new ValidatorImpl<>(context, + FieldRequiredRule.instance("currencyPairUd", RiskParameterNewRequest::getCurrencyPairId, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("value", RiskParameterNewRequest::getValue, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("settlementType", RiskParameterNewRequest::getSettlementType, SecuritiesError.RequiredFieldIsEmpty), + RiskParameterValidationRule.CHECK_ON_EXIST + ); + }; + } +} diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java index 1055707b8..3434d6349 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java @@ -21,6 +21,8 @@ public enum SecuritiesError implements IErrorEnumId { ListingOnMMSCreatedBySystem(1021L), // Информиция об инструментах Денежного рынка на режимах добавляется автоматически. ListingOnMMSUpdatedBySystem(1022L), // Информиция об инструментах Денежного рынка на режимах изменяется автоматически. ListingOnMMSDeletedBySystem(1023L), // Информиция об инструментах Денежного рынка на режимах блокируется автоматически. + RiskParameterAlreadyExist(1024L), + RatesAlreadyExist(1025L) ; private final Long id; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java new file mode 100644 index 000000000..dea2201a8 --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java @@ -0,0 +1,54 @@ +package ru.spcex.clearing.securities.service.facade; + +import java.time.Instant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.security.RiskParameter; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; +import ru.spcex.platform.classes.base.interfaces.IClearingFacade; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgId; +import ru.spcex.platform.imdg.api.ImdgProvider; + +@Service +public class RiskParameterFacade implements IClearingFacade { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final ImdgId idGenerator; + private final ImdgProvider imdgProvider; + private final Imdg riskParameterImdg; + + public RiskParameterFacade(ImdgProvider imdgProvider) { + this.idGenerator = imdgProvider.getImdgIdGenerator(); + this.imdgProvider = imdgProvider; + this.riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); + } + + /** + * Создает clientCode, TCR и опционально TCRList, если указаны валюты. + */ + public void createRiskParameter(RiskParameterNewRequest request) { + log.trace("Start process creating new client code"); + RiskParameter riskParameter = new RiskParameter(); + + riskParameter.setCurrencyPairId(request.getCurrencyPairId()); + riskParameter.setSettlementType(request.getSettlementType()); + riskParameter.setValue(request.getValue()); + riskParameter.setWorkflowStatus(request.getStatus()); + riskParameter.setCreated(Instant.now()); + + riskParameterImdg.insert(riskParameter); + log.debug("successfully processed, new risk_parameter id {}", riskParameter.getId()); + } + + @Override + public void lock() { + + } + + @Override + public void unlock() { + + } +} diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/listeners/RiskParameterMessageListener.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/listeners/RiskParameterMessageListener.java new file mode 100644 index 000000000..1e51fca1d --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/listeners/RiskParameterMessageListener.java @@ -0,0 +1,92 @@ +package ru.spcex.clearing.securities.service.listeners; + +import java.util.Optional; +import java.util.function.Function; +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.stereotype.Service; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.securities.service.facade.RiskParameterFacade; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.IMessageResolver; +import ru.spcex.platform.utils.validation.IValidator; + +@Service +public class RiskParameterMessageListener extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final ImdgProvider imdgProvider; + private final RiskParameterFacade riskParameterFacade; + private final Function riskParameterValidator; + private final UserRoleVerification userRoleVerification; + private final IMessageResolver messageResolver; + + public RiskParameterMessageListener(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + RiskParameterFacade riskParameterFacade, + Function riskParameterValidator, + UserRoleVerification userRoleVerification, + IMessageResolver messageResolver) { + super(kafkaQueue, kafkaProducer); + this.imdgProvider = imdgProvider; + this.riskParameterFacade = riskParameterFacade; + this.riskParameterValidator = riskParameterValidator; + this.userRoleVerification = userRoleVerification; + this.messageResolver = messageResolver; + } + + @Override + public void afterPropertiesSet() { + imdgProvider.waitAvailable(); + + //from backend-api requests + callback(RiskParameterNewRequest.class) + .setFunction(this::riskParameterNew) + .forDestination(Consts.DESTINATION_RISK_PARAMETER_NEW, callbacks::put); + callback(RiskParameterUpdateRequest.class) + .setFunction(this::riskParameterUpdate) + .forDestination(Consts.DESTINATION_RISK_PARAMETER_UPDATE, callbacks::put); + init(); + } + + private RequestInfoUpdate riskParameterNew(BaseRequest riskParameterRequest) { + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + RiskParameterNewRequest request = riskParameterRequest.getRequestPayload(); + IValidator validator = riskParameterValidator.apply(request); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + String errMsg = messageResolver.resolve(error.get()); + return new RequestInfoUpdate() + .setId(riskParameterRequest.getId()) + .setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error) + .setMessage(errMsg); + } + + riskParameterFacade.createRiskParameter(request); + return null; + } + + private RequestInfoUpdate riskParameterUpdate(BaseRequest clientCodeNewRequest) { +// RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(clientCodeNewRequest); +// if (requestInfoUpdate != null) return requestInfoUpdate; +// RiskParameterUpdateRequest request = clientCodeNewRequest.getRequestPayload(); +// ValidationResult validationResult = clientCodeValidator.checkBackendNewRequest(request); +// if (!validationResult.isValid()) { +// return makeErrorResponse(clientCodeNewRequest, validationResult); +// } +// +// clientCodeFacade.createClientCode(request, validationResult.validator()); + return null; + } +} diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java new file mode 100644 index 000000000..e7773f170 --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java @@ -0,0 +1,41 @@ +package ru.spcex.clearing.securities.validation.rule; + +import java.util.Optional; +import ru.clearing.classes.statics.data.security.Rates; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesNewRequest; +import ru.spcex.clearing.securities.errors.SecuritiesError; +import ru.spcex.platform.enumeration.Status; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.validation.IValidationRule; + +public enum RatesValidationRule implements IValidationRule> { + CHECK_ON_EXIST() { + @Override + public Optional validate(ImdgValidationContext context) { + RatesNewRequest action = context.getValidatedObject(); + Imdg imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_Rates, Rates.class); + + ImdgPredicateBuilder predicateBuilder = imdgDictionary.predicateBuilder(); + Rates rates = imdgDictionary.getFirstObjectByPredicate( + predicateBuilder.and( + predicateBuilder.equals("currencyPairId", action.getCurrencyPairId()), + predicateBuilder.equals("valueDate", action.getValueDate()), + predicateBuilder.equals("workflowStatus", Status.Active.getKey()) + ) + ); + if (rates != null) { + return of(SecuritiesError.RatesAlreadyExist, action.getCurrencyPairId()); + } + return empty(); + } + }; + + @Override + public String ruleName() { + return "MmsNewValidationRule." + name(); + } +} diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RiskParameterValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RiskParameterValidationRule.java new file mode 100644 index 000000000..93219170c --- /dev/null +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RiskParameterValidationRule.java @@ -0,0 +1,42 @@ +package ru.spcex.clearing.securities.validation.rule; + +import java.util.Optional; +import ru.clearing.classes.statics.data.security.RiskParameter; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; +import ru.spcex.clearing.securities.errors.SecuritiesError; +import ru.spcex.platform.enumeration.Status; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.validation.IValidationRule; + +public enum RiskParameterValidationRule implements IValidationRule> { + CHECK_ON_EXIST() { + @Override + public Optional validate(ImdgValidationContext context) { + RiskParameterNewRequest action = context.getValidatedObject(); + + Imdg imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); + + ImdgPredicateBuilder predicateBuilder = imdgDictionary.predicateBuilder(); + RiskParameter riskParameter = imdgDictionary.getFirstObjectByPredicate( + predicateBuilder.and( + predicateBuilder.equals("currencyPairId", action.getCurrencyPairId()), + predicateBuilder.equals("settlementType", action.getSettlementType()), + predicateBuilder.equals("workflowStatus", Status.Active.getKey()) + ) + ); + if (riskParameter != null) { + return of(SecuritiesError.RiskParameterAlreadyExist, action.getCurrencyPairId()); + } + return empty(); + } + }; + + @Override + public String ruleName() { + return "RiskParameterValidationRule." + name(); + } +} 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 293950cc9..f8ce20419 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 @@ -120,6 +120,11 @@ public interface Consts { String NOTIFICATION_UPDATE = "notification-update"; String PAIR_SDF = "pair-sdf"; + String DESTINATION_RISK_PARAMETER_NEW = "risk-parameter-new"; + String DESTINATION_RISK_PARAMETER_UPDATE = "risk-parameter-update"; + + String DESTINATION_RATES_NEW = "rates-new"; + String DESTINATION_RATES_UPDATE = "rates-update"; String DESTINATION_SDF08_NEW = "s-df-08-new"; String DESTINATION_SDF02_NEW = "s-df-02-new"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java new file mode 100644 index 000000000..5606d6507 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesNewRequest.java @@ -0,0 +1,49 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.security; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; +import java.time.LocalDate; + +public class RatesNewRequest { + + @JsonProperty + private BigDecimal value; + @JsonProperty + private LocalDate valueDate; + @JsonProperty + private Long currencyPairId; + @JsonProperty + private String status; + + public BigDecimal getValue() { + return value; + } + + public void setValue(BigDecimal value) { + this.value = value; + } + + public LocalDate getValueDate() { + return valueDate; + } + + public void setValueDate(LocalDate valueDate) { + this.valueDate = valueDate; + } + + public Long getCurrencyPairId() { + return currencyPairId; + } + + public void setCurrencyPairId(Long currencyPairId) { + this.currencyPairId = currencyPairId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesUpdateRequest.java new file mode 100644 index 000000000..fabdb2b99 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RatesUpdateRequest.java @@ -0,0 +1,38 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.security; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; + +public class RatesUpdateRequest { + + @JsonProperty + private Long id; + @JsonProperty + private BigDecimal value; + @JsonProperty + private String status; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public BigDecimal getValue() { + return value; + } + + public void setValue(BigDecimal value) { + this.value = value; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterNewRequest.java new file mode 100644 index 000000000..81ba744b8 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterNewRequest.java @@ -0,0 +1,48 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.security; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; + +public class RiskParameterNewRequest { + + @JsonProperty + private BigDecimal value; + @JsonProperty + private String settlementType; + @JsonProperty + private Long currencyPairId; + @JsonProperty + private String status; + + public BigDecimal getValue() { + return value; + } + + public void setValue(BigDecimal value) { + this.value = value; + } + + public String getSettlementType() { + return settlementType; + } + + public void setSettlementType(String settlementType) { + this.settlementType = settlementType; + } + + public Long getCurrencyPairId() { + return currencyPairId; + } + + public void setCurrencyPairId(Long currencyPairId) { + this.currencyPairId = currencyPairId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterUpdateRequest.java new file mode 100644 index 000000000..d814acc4d --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/security/RiskParameterUpdateRequest.java @@ -0,0 +1,38 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.security; + +import com.fasterxml.jackson.annotation.JsonProperty; +import java.math.BigDecimal; + +public class RiskParameterUpdateRequest { + + @JsonProperty + private Long id; + @JsonProperty + private BigDecimal value; + @JsonProperty + private String status; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public BigDecimal getValue() { + return value; + } + + public void setValue(BigDecimal value) { + this.value = value; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +}