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