Сделал проверку на уникальность security.securitysymbol регистронезависимой.
This commit is contained in:
parent
0ad02d573b
commit
7164442752
6 changed files with 20 additions and 13 deletions
|
|
@ -7,8 +7,8 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||||
import ru.clearing.classes.statics.data.misc.Listing;
|
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
|
@ -93,7 +93,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
||||||
log.debug("EquitySecurityNewRequest received");
|
log.debug("EquitySecurityNewRequest received");
|
||||||
EquitySecurity equity = new EquitySecurity();
|
EquitySecurity equity = new EquitySecurity();
|
||||||
equity.setId(idGenerator.nextId());
|
equity.setId(idGenerator.nextId());
|
||||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
equity.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
equity.setShortName(req.getShortName());
|
equity.setShortName(req.getShortName());
|
||||||
equity.setFullName(req.getFullName());
|
equity.setFullName(req.getFullName());
|
||||||
equity.setIsin(req.getIsin());
|
equity.setIsin(req.getIsin());
|
||||||
|
|
@ -141,7 +141,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
||||||
EquitySecurity equity = equitySecurityImdg.getSingleObjectByID(req.getId());
|
EquitySecurity equity = equitySecurityImdg.getSingleObjectByID(req.getId());
|
||||||
Instant updateTime = Instant.now();
|
Instant updateTime = Instant.now();
|
||||||
equity.setUpdated(updateTime);
|
equity.setUpdated(updateTime);
|
||||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
equity.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
equity.setShortName(req.getShortName());
|
equity.setShortName(req.getShortName());
|
||||||
equity.setFullName(req.getFullName());
|
equity.setFullName(req.getFullName());
|
||||||
equity.setIsin(req.getIsin());
|
equity.setIsin(req.getIsin());
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||||
import ru.clearing.classes.statics.data.misc.Listing;
|
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
|
@ -17,7 +17,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSe
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.securities.component.ListingBuilder;
|
|
||||||
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.util.services.RequestHelper;
|
import ru.spcex.clearing.util.services.RequestHelper;
|
||||||
|
|
@ -102,7 +101,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
||||||
|
|
||||||
FixedIncomeSecurity fixedIncome = new FixedIncomeSecurity();
|
FixedIncomeSecurity fixedIncome = new FixedIncomeSecurity();
|
||||||
fixedIncome.setId(idGenerator.nextId());
|
fixedIncome.setId(idGenerator.nextId());
|
||||||
fixedIncome.setSecuritySymbol(req.getSecuritySymbol());
|
fixedIncome.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
fixedIncome.setShortName(req.getShortName());
|
fixedIncome.setShortName(req.getShortName());
|
||||||
fixedIncome.setFullName(req.getFullName());
|
fixedIncome.setFullName(req.getFullName());
|
||||||
fixedIncome.setIsin(req.getIsin());
|
fixedIncome.setIsin(req.getIsin());
|
||||||
|
|
@ -147,7 +146,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
||||||
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
||||||
Instant updateTime = Instant.now();
|
Instant updateTime = Instant.now();
|
||||||
fixedIncome.setUpdated(updateTime);
|
fixedIncome.setUpdated(updateTime);
|
||||||
fixedIncome.setSecuritySymbol(req.getSecuritySymbol());
|
fixedIncome.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
fixedIncome.setShortName(req.getShortName());
|
fixedIncome.setShortName(req.getShortName());
|
||||||
fixedIncome.setFullName(req.getFullName());
|
fixedIncome.setFullName(req.getFullName());
|
||||||
fixedIncome.setIsin(req.getIsin());
|
fixedIncome.setIsin(req.getIsin());
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
import ru.clearing.classes.statics.data.misc.Listing;
|
import ru.clearing.classes.statics.data.misc.Listing;
|
||||||
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -134,7 +135,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
mms.setShortName(req.getShortName());
|
mms.setShortName(req.getShortName());
|
||||||
mms.setFullNameEng(req.getFullNameEng());
|
mms.setFullNameEng(req.getFullNameEng());
|
||||||
mms.setShortNameEng(req.getShortNameEng());
|
mms.setShortNameEng(req.getShortNameEng());
|
||||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
mms.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
mms.setTermType(req.getTermType());
|
mms.setTermType(req.getTermType());
|
||||||
mms.setIsin(req.getIsin());
|
mms.setIsin(req.getIsin());
|
||||||
mms.setIssuerId(req.getIssuerId());
|
mms.setIssuerId(req.getIssuerId());
|
||||||
|
|
@ -203,7 +204,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
mms.setShortName(req.getShortName());
|
mms.setShortName(req.getShortName());
|
||||||
mms.setFullNameEng(req.getFullNameEng());
|
mms.setFullNameEng(req.getFullNameEng());
|
||||||
mms.setShortNameEng(req.getShortNameEng());
|
mms.setShortNameEng(req.getShortNameEng());
|
||||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
mms.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||||
mms.setTermType(req.getTermType());
|
mms.setTermType(req.getTermType());
|
||||||
mms.setIsin(req.getIsin());
|
mms.setIsin(req.getIsin());
|
||||||
mms.setIssuerId(req.getIssuerId());
|
mms.setIssuerId(req.getIssuerId());
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@ import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
||||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class NotPresentBySecuritySymbol<T extends SpcexObjectBase & WithSecuritySymbol> implements IValidationRule<ImdgValidationContext<WithSecuritySymbol>> {
|
public class NotPresentBySecuritySymbol<T extends SpcexObjectBase & WithSecuritySymbol> implements IValidationRule<ImdgValidationContext<WithSecuritySymbol>> {
|
||||||
|
|
@ -23,15 +23,16 @@ public class NotPresentBySecuritySymbol<T extends SpcexObjectBase & WithSecurity
|
||||||
this.errorEnum = errorEnum;
|
this.errorEnum = errorEnum;
|
||||||
this.clazz = clazz;
|
this.clazz = clazz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithSecuritySymbol> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<WithSecuritySymbol> context) {
|
||||||
WithSecuritySymbol action = context.getValidatedObject();
|
WithSecuritySymbol action = context.getValidatedObject();
|
||||||
Imdg<T> imdg = context.obtainMap(mapName, clazz);
|
Imdg<T> imdg = context.obtainMap(mapName, clazz);
|
||||||
if(!StringUtils.hasText(action.getSecuritySymbol())) {
|
if (!StringUtils.hasText(action.getSecuritySymbol())) {
|
||||||
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbol");
|
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbol");
|
||||||
}
|
}
|
||||||
T object = imdg.getFirstObjectByFieldValues(Map.of("securitySymbol", action.getSecuritySymbol()));
|
ImdgPredicateBuilder pb = imdg.predicateBuilder();
|
||||||
|
T object = imdg.getSingleObjectByPredicate(pb.ilike("securitySymbol", action.getSecuritySymbol()));
|
||||||
if (object != null) {
|
if (object != null) {
|
||||||
return of(errorEnum, action.getSecuritySymbol());
|
return of(errorEnum, action.getSecuritySymbol());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,11 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder {
|
||||||
return new ImdgPredicateHazelcast(Predicates.in(key, values));
|
return new ImdgPredicateHazelcast(Predicates.in(key, values));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ImdgPredicate ilike(String key, String pattern) {
|
||||||
|
return new ImdgPredicateHazelcast(Predicates.ilike(key, pattern));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ImdgPredicate not(ImdgPredicate param) {
|
public ImdgPredicate not(ImdgPredicate param) {
|
||||||
ImdgPredicateHazelcast paramMy = (ImdgPredicateHazelcast) param;
|
ImdgPredicateHazelcast paramMy = (ImdgPredicateHazelcast) param;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ public interface ImdgPredicateBuilder {
|
||||||
|
|
||||||
ImdgPredicate in(String key, Comparable... values);
|
ImdgPredicate in(String key, Comparable... values);
|
||||||
|
|
||||||
|
ImdgPredicate ilike(String key, String pattern);
|
||||||
ImdgPredicate not(ImdgPredicate param);
|
ImdgPredicate not(ImdgPredicate param);
|
||||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB);
|
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB);
|
||||||
ImdgPredicate and(ImdgPredicate... param);
|
ImdgPredicate and(ImdgPredicate... param);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue