securities-service http://jira.mfd.msk:8088/browse/CLS-258 очередные мелкие баги с валидацией поправил
This commit is contained in:
parent
2acf7a1e24
commit
88fda6d2b9
6 changed files with 12 additions and 6 deletions
|
|
@ -88,8 +88,6 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
}
|
||||
|
||||
protected synchronized EquitySecurity newEquity0(EquitySecurityNewRequest req) throws ValidationException {
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
|
||||
validationHelper.validateTillFirstErrorAndThrow(req, validation.equityNewValidator());
|
||||
|
||||
log.debug("EquitySecurityNewRequest received");
|
||||
|
|
@ -113,6 +111,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
equity.setSecurityId(equity.getId());
|
||||
equity.setCreated(Instant.now());
|
||||
equity.setUpdated(equity.getCreated());
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
try {
|
||||
transaction.beginTransaction();
|
||||
Imdg<EquitySecurity> equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
|
|
|
|||
|
|
@ -142,6 +142,8 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
}
|
||||
|
||||
protected synchronized FixedIncomeSecurity updateFixedIncome0(FixedIncomeSecurityUpdateRequest req) throws ValidationException {
|
||||
validationHelper.validateTillFirstErrorAndThrow(req, validation.fixedIncomeUpdateValidator());
|
||||
|
||||
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
||||
Instant updateTime = Instant.now();
|
||||
fixedIncome.setUpdated(updateTime);
|
||||
|
|
|
|||
|
|
@ -122,6 +122,9 @@ public class ListingValidationProvider {
|
|||
SecuritiesError.ListingNotFound,
|
||||
true,
|
||||
(Listing listing) -> {
|
||||
if (WorkflowStatus.Blocked.equalsByKey(listing.getWorkflowStatus())) {
|
||||
return SecuritiesError.InstrumentNotActive;
|
||||
}
|
||||
if (listing.getSecurityId() == null)
|
||||
return null;
|
||||
Security security = securitySelector.selectSecurityById(listing.getSecurityId());
|
||||
|
|
|
|||
|
|
@ -6,9 +6,11 @@ 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.DictionaryPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule;
|
||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
|
|
@ -130,7 +132,7 @@ public class ValidationProvider {
|
|||
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurityNewRequest.class),
|
||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "EQTY"),
|
||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.WrongFieldValue, InstrumentType.EQTY.getKey()),
|
||||
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
||||
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||
|
|
@ -207,7 +209,7 @@ public class ValidationProvider {
|
|||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
return new ValidatorImpl<>(context,
|
||||
new PresentById(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "BOND"),
|
||||
new IsValidInstrumentTypeById(SecuritiesError.WrongFieldValue, InstrumentType.BOND.getKey()),
|
||||
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId", false),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.util.Map;
|
|||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Deprecated // use common validator
|
||||
@Deprecated // use common validator ru.spcex.clearing.validation.common.rules.DictionaryPresentRule
|
||||
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||
String mapName;
|
||||
String errArg;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class IsValidInstrumentTypeFromRequest implements IValidationRule<ImdgVal
|
|||
if (action.getInstrumentType() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty);
|
||||
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())) {
|
||||
return of(errorEnum);
|
||||
return of(errorEnum, action.getInstrumentType());
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue