Убрал дубликат EndDtAfterStartDt.
This commit is contained in:
psemenkov 2023-04-06 10:50:34 +03:00
parent 09c0ab342b
commit 21db7fb5bd
4 changed files with 21 additions and 59 deletions

View file

@ -6,6 +6,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
import ru.spcex.clearing.securities.errors.SecuritiesError;
import ru.spcex.clearing.securities.validation.rule.*;
import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -58,7 +59,11 @@ public class ValidationProvider {
context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg);
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
return new ValidatorImpl<>(context,
EndDtAfterStartDt.instance(MoneyMarketSecurityNewRequest.class),
EndDtAfterStartDtRule.instance("startDate", "endDate",
MoneyMarketSecurityNewRequest::getStartDate,
MoneyMarketSecurityNewRequest::getEndDate,
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.WrongFieldValue),
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
MmsNewValidationRule.RequiredFieldIsNotEmpty,
@ -82,7 +87,11 @@ public class ValidationProvider {
context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg);
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
return new ValidatorImpl<>(context,
EndDtAfterStartDt.instance(MoneyMarketSecurityUpdateRequest.class),
EndDtAfterStartDtRule.instance("startDate", "endDate",
MoneyMarketSecurityUpdateRequest::getStartDate,
MoneyMarketSecurityUpdateRequest::getEndDate,
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.WrongFieldValue),
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "RATE"),
new WorkflowStatusActv(),
@ -250,6 +259,11 @@ public class ValidationProvider {
context.setValidatedObject(currencyRequest);
context.addImdg(IMDGDistributedNames.Map_CouponPeriod, couponPeriodImdg);
return new ValidatorImpl<>(context,
EndDtAfterStartDtRule.instance("periodStartDate", "periodEndDate",
CouponPeriodNewRequest::getPeriodStartDate,
CouponPeriodNewRequest::getPeriodEndDate,
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.WrongFieldValue, false),
CouponPeriodNewValidationRule.CouponPeriodNotExists
);
};
@ -261,6 +275,11 @@ public class ValidationProvider {
context.setValidatedObject(currencyRequest);
context.addImdg(IMDGDistributedNames.Map_CouponPeriod, couponPeriodImdg);
return new ValidatorImpl<>(context,
EndDtAfterStartDtRule.instance("periodStartDate", "periodEndDate",
CouponPeriodUpdateRequest::getPeriodStartDate,
CouponPeriodUpdateRequest::getPeriodEndDate,
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.WrongFieldValue, false),
CouponPeriodUpdateValidationRule.CouponPeriodExists
);
};

View file

@ -26,17 +26,6 @@ public enum CouponPeriodNewValidationRule implements IValidationRule<ImdgValidat
if (couponPeriod != null) {
return of(SecuritiesError.CouponPeriodAlreadyExists, "securityId");
}
if (action.getPeriodEndDate() == null && action.getPeriodStartDate() == null) {
return of(SecuritiesError.RequiredFieldIsEmpty, "periodEndDate", "periodStartDate");
}
if (action.getPeriodEndDate() == null || action.getPeriodStartDate() == null) {
if (action.getPeriodStartDate() == null)
return of(SecuritiesError.RequiredFieldIsEmpty, "periodStartDate");
return of(SecuritiesError.RequiredFieldIsEmpty, "periodEndDate");
}
if (action.getPeriodEndDate().isBefore(action.getPeriodStartDate())) {
return of(SecuritiesError.WrongFieldValue, "periodEndDate", "periodStartDate");
}
return empty();
}
};

View file

@ -26,17 +26,6 @@ public enum CouponPeriodUpdateValidationRule implements IValidationRule<ImdgVali
if (currency == null) {
return of(SecuritiesError.CouponPeriodNotFound, "securityId");
}
if (action.getPeriodEndDate() == null && action.getPeriodStartDate() == null) {
return of(SecuritiesError.RequiredFieldIsEmpty, "periodEndDate", "periodStartDate");
}
if (action.getPeriodEndDate() == null || action.getPeriodStartDate() == null) {
if (action.getPeriodStartDate() == null)
return of(SecuritiesError.RequiredFieldIsEmpty, "periodStartDate");
return of(SecuritiesError.RequiredFieldIsEmpty, "periodEndDate");
}
if (action.getPeriodEndDate().isBefore(action.getPeriodStartDate())) {
return of(SecuritiesError.WrongFieldValue, "periodEndDate", "periodStartDate");
}
return empty();
}
};

View file

@ -1,35 +0,0 @@
package ru.spcex.clearing.securities.validation.rule;
import ru.spcex.clearing.securities.errors.SecuritiesError;
import ru.spcex.platform.classes.base.interfaces.WithEndDt;
import ru.spcex.platform.classes.base.interfaces.WithStartDt;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.validation.IValidationRule;
import java.util.Optional;
public class EndDtAfterStartDt<T extends WithStartDt & WithEndDt> implements IValidationRule<ImdgValidationContext<T>> {
public EndDtAfterStartDt() {}
public static <T1 extends WithStartDt & WithEndDt> EndDtAfterStartDt<T1> instance(Class<T1> clazz) {
return new EndDtAfterStartDt<>();
}
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<T> context) {
T validatedObject = context.getValidatedObject();
if(validatedObject.getEndDate() == null && validatedObject.getStartDate() == null) {
return of(SecuritiesError.RequiredFieldIsEmpty, "endDate", "startDate");
}
if(validatedObject.getEndDate() == null || validatedObject.getStartDate() == null){
if(validatedObject.getStartDate() == null) return of(SecuritiesError.RequiredFieldIsEmpty, "startDate");
return of(SecuritiesError.RequiredFieldIsEmpty, "endDate");
}
if (validatedObject.getEndDate().isBefore(validatedObject.getStartDate())) {
return of(SecuritiesError.WrongFieldValue, "endDate");
}
return empty();
}
}