http://jira.mfd.msk:8088/browse/CLS-764 [risk-parameter]
This commit is contained in:
parent
b87f5dbb80
commit
c70874b179
3 changed files with 57 additions and 17 deletions
|
|
@ -5,11 +5,14 @@ import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterUpdateRequest;
|
||||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||||
import ru.spcex.clearing.securities.validation.rule.RiskParameterValidationRule;
|
import ru.spcex.clearing.securities.validation.rule.RiskParameterValidationRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
|
|
@ -19,8 +22,8 @@ import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||||
@Configuration
|
@Configuration
|
||||||
public class RiskParameterValidationConfig {
|
public class RiskParameterValidationConfig {
|
||||||
|
|
||||||
@Bean("riskParameterValidator")
|
@Bean("riskParameterNewValidator")
|
||||||
public Function<RiskParameterNewRequest, IValidator> riskParameterValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
public Function<RiskParameterNewRequest, IValidator> riskParameterNewValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||||
return riskParameter -> {
|
return riskParameter -> {
|
||||||
ImdgValidationContext<RiskParameterNewRequest> context = new ImdgValidationContext<>();
|
ImdgValidationContext<RiskParameterNewRequest> context = new ImdgValidationContext<>();
|
||||||
context.setValidatedObject(riskParameter);
|
context.setValidatedObject(riskParameter);
|
||||||
|
|
@ -34,4 +37,22 @@ public class RiskParameterValidationConfig {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean("riskParameterUpdateValidator")
|
||||||
|
public Function<RiskParameterUpdateRequest, IValidator> riskParameterUpdateValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||||
|
return riskParameter -> {
|
||||||
|
ImdgValidationContext<RiskParameterUpdateRequest> context = new ImdgValidationContext<>();
|
||||||
|
context.setValidatedObject(riskParameter);
|
||||||
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_RiskParameter);
|
||||||
|
return new ValidatorImpl<>(context,
|
||||||
|
IdPresentRule.instance("id",
|
||||||
|
RiskParameterUpdateRequest::getId,
|
||||||
|
IMDGDistributedNames.Map_RiskParameter,
|
||||||
|
RiskParameter.class,
|
||||||
|
SecuritiesError.RequiredFieldIsEmpty,
|
||||||
|
SecuritiesError.RequiredFieldIsEmpty)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterUpdateRequest;
|
||||||
import ru.spcex.platform.classes.base.interfaces.IClearingFacade;
|
import ru.spcex.platform.classes.base.interfaces.IClearingFacade;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
|
|
@ -29,7 +30,7 @@ public class RiskParameterFacade implements IClearingFacade {
|
||||||
* Создает clientCode, TCR и опционально TCRList, если указаны валюты.
|
* Создает clientCode, TCR и опционально TCRList, если указаны валюты.
|
||||||
*/
|
*/
|
||||||
public void createRiskParameter(RiskParameterNewRequest request) {
|
public void createRiskParameter(RiskParameterNewRequest request) {
|
||||||
log.trace("Start process creating new client code");
|
log.trace("Start process creating new risk_parameter");
|
||||||
RiskParameter riskParameter = new RiskParameter();
|
RiskParameter riskParameter = new RiskParameter();
|
||||||
|
|
||||||
riskParameter.setCurrencyPairId(request.getCurrencyPairId());
|
riskParameter.setCurrencyPairId(request.getCurrencyPairId());
|
||||||
|
|
@ -42,6 +43,16 @@ public class RiskParameterFacade implements IClearingFacade {
|
||||||
log.debug("successfully processed, new risk_parameter id {}", riskParameter.getId());
|
log.debug("successfully processed, new risk_parameter id {}", riskParameter.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateRiskParameter(RiskParameterUpdateRequest request) {
|
||||||
|
log.trace("Start process update risk_parameter");
|
||||||
|
RiskParameter riskParameterForUpdate = riskParameterImdg.getSingleObjectByID(request.getId());
|
||||||
|
|
||||||
|
riskParameterForUpdate.setValue(request.getValue());
|
||||||
|
riskParameterForUpdate.setWorkflowStatus(request.getStatus());
|
||||||
|
|
||||||
|
riskParameterImdg.update(riskParameterForUpdate);
|
||||||
|
log.debug("successfully processed, updated risk_parameter id {}", riskParameterForUpdate.getId());
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public void lock() {
|
public void lock() {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private final RiskParameterFacade riskParameterFacade;
|
private final RiskParameterFacade riskParameterFacade;
|
||||||
private final Function<RiskParameterNewRequest, IValidator> riskParameterValidator;
|
private final Function<RiskParameterNewRequest, IValidator> riskParameterNewValidator;
|
||||||
|
private final Function<RiskParameterUpdateRequest, IValidator> riskParameterUpdateValidator;
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
|
|
||||||
|
|
@ -34,13 +35,15 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
||||||
Producer<String, Object> kafkaProducer,
|
Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
RiskParameterFacade riskParameterFacade,
|
RiskParameterFacade riskParameterFacade,
|
||||||
Function<RiskParameterNewRequest, IValidator> riskParameterValidator,
|
Function<RiskParameterNewRequest, IValidator> riskParameterNewValidator,
|
||||||
|
Function<RiskParameterUpdateRequest, IValidator> riskParameterUpdateValidator,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
IMessageResolver messageResolver) {
|
IMessageResolver messageResolver) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.riskParameterFacade = riskParameterFacade;
|
this.riskParameterFacade = riskParameterFacade;
|
||||||
this.riskParameterValidator = riskParameterValidator;
|
this.riskParameterNewValidator = riskParameterNewValidator;
|
||||||
|
this.riskParameterUpdateValidator = riskParameterUpdateValidator;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
}
|
}
|
||||||
|
|
@ -63,7 +66,7 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
RiskParameterNewRequest request = riskParameterRequest.getRequestPayload();
|
RiskParameterNewRequest request = riskParameterRequest.getRequestPayload();
|
||||||
IValidator validator = riskParameterValidator.apply(request);
|
IValidator validator = riskParameterNewValidator.apply(request);
|
||||||
Optional<EnumMessage> error = validator.tillFirstError();
|
Optional<EnumMessage> error = validator.tillFirstError();
|
||||||
if (error.isPresent()) {
|
if (error.isPresent()) {
|
||||||
String errMsg = messageResolver.resolve(error.get());
|
String errMsg = messageResolver.resolve(error.get());
|
||||||
|
|
@ -77,16 +80,21 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestInfoUpdate riskParameterUpdate(BaseRequest<RiskParameterUpdateRequest> clientCodeNewRequest) {
|
private RequestInfoUpdate riskParameterUpdate(BaseRequest<RiskParameterUpdateRequest> riskParameterUpdateRequest) {
|
||||||
// RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(clientCodeNewRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterUpdateRequest);
|
||||||
// if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
// RiskParameterUpdateRequest request = clientCodeNewRequest.getRequestPayload();
|
RiskParameterUpdateRequest request = riskParameterUpdateRequest.getRequestPayload();
|
||||||
// ValidationResult validationResult = clientCodeValidator.checkBackendNewRequest(request);
|
IValidator validator = riskParameterUpdateValidator.apply(request);
|
||||||
// if (!validationResult.isValid()) {
|
Optional<EnumMessage> error = validator.tillFirstError();
|
||||||
// return makeErrorResponse(clientCodeNewRequest, validationResult);
|
if (error.isPresent()) {
|
||||||
// }
|
String errMsg = messageResolver.resolve(error.get());
|
||||||
//
|
return new RequestInfoUpdate()
|
||||||
// clientCodeFacade.createClientCode(request, validationResult.validator());
|
.setId(riskParameterUpdateRequest.getId())
|
||||||
|
.setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error)
|
||||||
|
.setMessage(errMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
riskParameterFacade.updateRiskParameter(request);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue