This commit is contained in:
parent
5e6ce83584
commit
c9f8ea7aa8
5 changed files with 16 additions and 35 deletions
|
|
@ -4,7 +4,8 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponse;
|
||||||
import io.swagger.annotations.ApiResponses;
|
import io.swagger.annotations.ApiResponses;
|
||||||
import java.util.Collections;
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
|
|
@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import ru.clearing.classes.statics.data.misc.OvernightSettings;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||||
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightNewAction;
|
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightNewAction;
|
||||||
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightUpdateAction;
|
import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightUpdateAction;
|
||||||
|
|
@ -22,6 +24,7 @@ import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
|
|
@ -40,8 +43,11 @@ public class OvernightSettingsController extends AbstractQueueController {
|
||||||
@RequestMapping(method = RequestMethod.GET)
|
@RequestMapping(method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonGetAllResponse getAll() {
|
public CommonGetAllResponse getAll() {
|
||||||
|
Collection<Map<String, Object>> all = stateLoader.getAllMetaTransform(
|
||||||
|
IMDGDistributedNames.Map_OvernightSettings, OvernightSettings.class
|
||||||
|
);
|
||||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||||
response.fromEntity(Collections.EMPTY_LIST);
|
response.fromEntity(all);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
package ru.spcex.clearing.dflt.management.component.validation;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
import ru.clearing.classes.statics.data.misc.OrderCurrency;
|
|
||||||
import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors;
|
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdateRequest;
|
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
|
||||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
|
||||||
|
|
||||||
public class OvernightTypeChanged implements IValidationRule<ImdgValidationContext<OrderCurrencyUpdateRequest>> {
|
|
||||||
public static final OvernightTypeChanged INSTANCE = new OvernightTypeChanged();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) {
|
|
||||||
OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject();
|
|
||||||
OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency);
|
|
||||||
if (oc.getOvernightType().equalsIgnoreCase(validatedObject.getOvernightType())) {
|
|
||||||
return of(DefaultManagementErrors.GeneralError); //todo нормальную ошибку
|
|
||||||
}
|
|
||||||
|
|
||||||
return empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String ruleName() {
|
|
||||||
return "OvernightTypeChanged";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -19,7 +19,6 @@ import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyByCom
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyPLBLCheck;
|
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyPLBLCheck;
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyValidationStored;
|
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyValidationStored;
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.OvernightSettingAlreadyPresent;
|
import ru.spcex.clearing.dflt.management.component.validation.OvernightSettingAlreadyPresent;
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.OvernightTypeChanged;
|
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.QuantityLotGreaterThanZero;
|
import ru.spcex.clearing.dflt.management.component.validation.QuantityLotGreaterThanZero;
|
||||||
import ru.spcex.clearing.dflt.management.component.validation.SpotPairPresent;
|
import ru.spcex.clearing.dflt.management.component.validation.SpotPairPresent;
|
||||||
import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors;
|
import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors;
|
||||||
|
|
@ -176,7 +175,6 @@ public class ValidationConfig {
|
||||||
|
|
||||||
return new ValidatorImpl<>(ctx,
|
return new ValidatorImpl<>(ctx,
|
||||||
orderCurrencyPresentById,
|
orderCurrencyPresentById,
|
||||||
OvernightTypeChanged.INSTANCE,
|
|
||||||
DictionaryPresentRule.instance(
|
DictionaryPresentRule.instance(
|
||||||
"overnightType",
|
"overnightType",
|
||||||
OrderCurrencyUpdateRequest::getOvernightType,
|
OrderCurrencyUpdateRequest::getOvernightType,
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ public enum DefaultManagementErrors implements IErrorEnumId {
|
||||||
|
|
||||||
GeneralError(11000L),
|
GeneralError(11000L),
|
||||||
UserVerifyDenial(11001L),
|
UserVerifyDenial(11001L),
|
||||||
RequiredFieldIsEmpty(11002L),
|
RequiredFieldIsEmpty(11007L),
|
||||||
DictionaryNotFound(11003L),
|
DictionaryNotFound(11005L),
|
||||||
RecordNotFound(11006L),
|
RecordNotFound(11006L),
|
||||||
RecordAlreadyPresent(11002L),
|
RecordAlreadyPresent(11002L),
|
||||||
OnlyBalancingOrdersAllowed(11003L),
|
OnlyBalancingOrdersAllowed(11003L),
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,9 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
||||||
Function<OrderCurrencyUpdateRequest, IValidator> overnightTypeUpdateValidator,
|
Function<OrderCurrencyUpdateRequest, IValidator> overnightTypeUpdateValidator,
|
||||||
@Qualifier("orderCurrencyUpdateValidator")
|
@Qualifier("orderCurrencyUpdateValidator")
|
||||||
Function<OrderCurrencyUpdateRequest, IValidator> orderCurrencyUpdateValidator,
|
Function<OrderCurrencyUpdateRequest, IValidator> orderCurrencyUpdateValidator,
|
||||||
|
@Qualifier("orderCurrencyNewCompany")
|
||||||
Function<OrderCompanyNewRequest, IValidator> orderCompanyNewValidator,
|
Function<OrderCompanyNewRequest, IValidator> orderCompanyNewValidator,
|
||||||
|
@Qualifier("orderCurrencyUpdateCompany")
|
||||||
Function<OrderCompanyUpdateRequest, IValidator> orderCompanyUpdateValidator,
|
Function<OrderCompanyUpdateRequest, IValidator> orderCompanyUpdateValidator,
|
||||||
Function<CommonDeleteRequest, IValidator> orderCompanyDeleteValidator,
|
Function<CommonDeleteRequest, IValidator> orderCompanyDeleteValidator,
|
||||||
ImdgQueryService imdgQueryService,
|
ImdgQueryService imdgQueryService,
|
||||||
|
|
@ -152,6 +154,10 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
||||||
return new RequestInfoUpdate(req.getId(), Status.Error, msgResolver.resolve(error.get()));
|
return new RequestInfoUpdate(req.getId(), Status.Error, msgResolver.resolve(error.get()));
|
||||||
}
|
}
|
||||||
OrderCurrency order = validator.getStored(OrderCurrencyValidationStored.OrderCurrency);
|
OrderCurrency order = validator.getStored(OrderCurrencyValidationStored.OrderCurrency);
|
||||||
|
if (payload.getOvernightType().equalsIgnoreCase(order.getOvernightType())) {
|
||||||
|
log.info("overnightType from payload is the same for OrderCurrency.id[{}]: {}; skipping", order.getId(), payload.getOvernightType());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Registry rgs = validator.getStored(OrderCurrencyValidationStored.Registry);
|
Registry rgs = validator.getStored(OrderCurrencyValidationStored.Registry);
|
||||||
if (OvernightType.SWAP.equalsByKey(order.getOvernightType())) {
|
if (OvernightType.SWAP.equalsByKey(order.getOvernightType())) {
|
||||||
Pair<OrderCurrency, OrderCurrency> newSpotPair = swapToSpotSplit(order, rgs);
|
Pair<OrderCurrency, OrderCurrency> newSpotPair = swapToSpotSplit(order, rgs);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue