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 org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
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.platform.messaging.domain.cud.security.RiskParameterUpdateRequest;
|
||||
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.clearing.validation.common.rules.IdPresentRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
|
|
@ -19,8 +22,8 @@ import ru.spcex.platform.utils.validation.ValidatorImpl;
|
|||
@Configuration
|
||||
public class RiskParameterValidationConfig {
|
||||
|
||||
@Bean("riskParameterValidator")
|
||||
public Function<RiskParameterNewRequest, IValidator> riskParameterValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||
@Bean("riskParameterNewValidator")
|
||||
public Function<RiskParameterNewRequest, IValidator> riskParameterNewValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||
return riskParameter -> {
|
||||
ImdgValidationContext<RiskParameterNewRequest> context = new ImdgValidationContext<>();
|
||||
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.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
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.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
|
|
@ -29,7 +30,7 @@ public class RiskParameterFacade implements IClearingFacade {
|
|||
* Создает clientCode, TCR и опционально TCRList, если указаны валюты.
|
||||
*/
|
||||
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.setCurrencyPairId(request.getCurrencyPairId());
|
||||
|
|
@ -42,6 +43,16 @@ public class RiskParameterFacade implements IClearingFacade {
|
|||
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
|
||||
public void lock() {
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
|||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final ImdgProvider imdgProvider;
|
||||
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 IMessageResolver messageResolver;
|
||||
|
||||
|
|
@ -34,13 +35,15 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
|||
Producer<String, Object> kafkaProducer,
|
||||
ImdgProvider imdgProvider,
|
||||
RiskParameterFacade riskParameterFacade,
|
||||
Function<RiskParameterNewRequest, IValidator> riskParameterValidator,
|
||||
Function<RiskParameterNewRequest, IValidator> riskParameterNewValidator,
|
||||
Function<RiskParameterUpdateRequest, IValidator> riskParameterUpdateValidator,
|
||||
UserRoleVerification userRoleVerification,
|
||||
IMessageResolver messageResolver) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.riskParameterFacade = riskParameterFacade;
|
||||
this.riskParameterValidator = riskParameterValidator;
|
||||
this.riskParameterNewValidator = riskParameterNewValidator;
|
||||
this.riskParameterUpdateValidator = riskParameterUpdateValidator;
|
||||
this.userRoleVerification = userRoleVerification;
|
||||
this.messageResolver = messageResolver;
|
||||
}
|
||||
|
|
@ -63,7 +66,7 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
|||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterRequest);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
RiskParameterNewRequest request = riskParameterRequest.getRequestPayload();
|
||||
IValidator validator = riskParameterValidator.apply(request);
|
||||
IValidator validator = riskParameterNewValidator.apply(request);
|
||||
Optional<EnumMessage> error = validator.tillFirstError();
|
||||
if (error.isPresent()) {
|
||||
String errMsg = messageResolver.resolve(error.get());
|
||||
|
|
@ -77,16 +80,21 @@ public class RiskParameterMessageListener extends QueueConsumer implements Initi
|
|||
return null;
|
||||
}
|
||||
|
||||
private RequestInfoUpdate riskParameterUpdate(BaseRequest<RiskParameterUpdateRequest> 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());
|
||||
private RequestInfoUpdate riskParameterUpdate(BaseRequest<RiskParameterUpdateRequest> riskParameterUpdateRequest) {
|
||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(riskParameterUpdateRequest);
|
||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||
RiskParameterUpdateRequest request = riskParameterUpdateRequest.getRequestPayload();
|
||||
IValidator validator = riskParameterUpdateValidator.apply(request);
|
||||
Optional<EnumMessage> error = validator.tillFirstError();
|
||||
if (error.isPresent()) {
|
||||
String errMsg = messageResolver.resolve(error.get());
|
||||
return new RequestInfoUpdate()
|
||||
.setId(riskParameterUpdateRequest.getId())
|
||||
.setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error)
|
||||
.setMessage(errMsg);
|
||||
}
|
||||
|
||||
riskParameterFacade.updateRiskParameter(request);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue