Сделал проверку на уникальность 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.annotation.Autowired;
|
||||
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.misc.Listing;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
|
@ -93,7 +93,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
log.debug("EquitySecurityNewRequest received");
|
||||
EquitySecurity equity = new EquitySecurity();
|
||||
equity.setId(idGenerator.nextId());
|
||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
||||
equity.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
equity.setShortName(req.getShortName());
|
||||
equity.setFullName(req.getFullName());
|
||||
equity.setIsin(req.getIsin());
|
||||
|
|
@ -141,7 +141,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
|||
EquitySecurity equity = equitySecurityImdg.getSingleObjectByID(req.getId());
|
||||
Instant updateTime = Instant.now();
|
||||
equity.setUpdated(updateTime);
|
||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
||||
equity.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
equity.setShortName(req.getShortName());
|
||||
equity.setFullName(req.getFullName());
|
||||
equity.setIsin(req.getIsin());
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.misc.Listing;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
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.service.QueueConsumer;
|
||||
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.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
|
|
@ -102,7 +101,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
|
||||
FixedIncomeSecurity fixedIncome = new FixedIncomeSecurity();
|
||||
fixedIncome.setId(idGenerator.nextId());
|
||||
fixedIncome.setSecuritySymbol(req.getSecuritySymbol());
|
||||
fixedIncome.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
fixedIncome.setShortName(req.getShortName());
|
||||
fixedIncome.setFullName(req.getFullName());
|
||||
fixedIncome.setIsin(req.getIsin());
|
||||
|
|
@ -147,7 +146,7 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
|||
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
||||
Instant updateTime = Instant.now();
|
||||
fixedIncome.setUpdated(updateTime);
|
||||
fixedIncome.setSecuritySymbol(req.getSecuritySymbol());
|
||||
fixedIncome.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
fixedIncome.setShortName(req.getShortName());
|
||||
fixedIncome.setFullName(req.getFullName());
|
||||
fixedIncome.setIsin(req.getIsin());
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -134,7 +135,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setIssuerId(req.getIssuerId());
|
||||
|
|
@ -203,7 +204,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setSecuritySymbol(StringUtils.hasText(req.getSecuritySymbol()) ? req.getSecuritySymbol().trim() : null);
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
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.interfaces.WithSecuritySymbol;
|
||||
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.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
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.clazz = clazz;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithSecuritySymbol> context) {
|
||||
WithSecuritySymbol action = context.getValidatedObject();
|
||||
Imdg<T> imdg = context.obtainMap(mapName, clazz);
|
||||
if(!StringUtils.hasText(action.getSecuritySymbol())) {
|
||||
if (!StringUtils.hasText(action.getSecuritySymbol())) {
|
||||
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) {
|
||||
return of(errorEnum, action.getSecuritySymbol());
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -50,6 +50,11 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder {
|
|||
return new ImdgPredicateHazelcast(Predicates.in(key, values));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate ilike(String key, String pattern) {
|
||||
return new ImdgPredicateHazelcast(Predicates.ilike(key, pattern));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate not(ImdgPredicate param) {
|
||||
ImdgPredicateHazelcast paramMy = (ImdgPredicateHazelcast) param;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ public interface ImdgPredicateBuilder {
|
|||
|
||||
ImdgPredicate in(String key, Comparable... values);
|
||||
|
||||
ImdgPredicate ilike(String key, String pattern);
|
||||
ImdgPredicate not(ImdgPredicate param);
|
||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB);
|
||||
ImdgPredicate and(ImdgPredicate... param);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue