securities-service http://jira.mfd.msk:8088/browse/CLS-326 часть правок

This commit is contained in:
AKurakin 2023-06-01 18:46:45 +03:00
parent bd8af7fc16
commit f4517b7736

View file

@ -2,12 +2,15 @@ package ru.spcex.clearing.securities.validation;
import org.springframework.stereotype.Component;
import ru.clearing.classes.statics.data.misc.Listing;
import ru.clearing.classes.statics.data.scheduler.PlannerTemplate;
import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerTemplateUpdateRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
import ru.spcex.clearing.util.security.SecuritySelector;
import ru.spcex.clearing.securities.errors.SecuritiesError;
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
import ru.spcex.clearing.validation.common.rules.SpecialIdPresentRule;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.enumeration.InstrumentType;
@ -72,7 +75,7 @@ public class ListingValidationProvider {
context.addImdg(IMDGDistributedNames.Map_Listing, listingImdg);
return new ValidatorImpl<>(context,
new PresentById(IMDGDistributedNames.Map_Listing, SecuritiesError.ListingNotFound, true),
new SecurityIdPresentRule<ListingNewRequest>("securityId", ListingNewRequest::getSecurityId,
new SecurityIdPresentRule<ListingUpdateRequest>("securityId", ListingUpdateRequest::getSecurityId,
(Security security) ->
InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSCreatedBySystem : null
)
@ -86,10 +89,23 @@ public class ListingValidationProvider {
context.setValidatedObject(listingRequest);
context.addImdg(IMDGDistributedNames.Map_Listing, listingImdg);
return new ValidatorImpl<>(context,
new PresentById(IMDGDistributedNames.Map_Listing, SecuritiesError.ListingNotFound, true),
new SecurityIdPresentRule<ListingNewRequest>("securityId", ListingNewRequest::getSecurityId,
(Security security) ->
InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSCreatedBySystem : null
IdPresentRule.instance("id",
CommonDeleteRequest::getId,
IMDGDistributedNames.Map_Listing,
Listing.class,
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.ListingNotFound,
true,
(Listing listing) -> {
if (listing.getSecurityId() == null)
return null;
Security security = securitySelector.selectSecurityById(listing.getSecurityId());
if (security != null) {
if (InstrumentType.RATE.equalsByKey(security.getInstrumentType()))
return SecuritiesError.ListingOnMMSCreatedBySystem;
}
return null;
}
)
);
};