company-service CompanySymbolValidationConfig добавлено правило валидации
This commit is contained in:
parent
83a513f629
commit
e821423e68
3 changed files with 48 additions and 10 deletions
|
|
@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
import ru.clearing.platform.dictionary.*;
|
import ru.clearing.platform.dictionary.*;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
import ru.spcex.clearing.company.validation.CompanySymbolNotExistRule;
|
import ru.spcex.clearing.company.validation.CompanySymbolNotExistRule;
|
||||||
|
import ru.spcex.clearing.company.validation.CompanySymbolOfSymbolNewRequestNotExistRule;
|
||||||
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.company.CompanyInfoUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest;
|
||||||
|
|
@ -56,8 +57,8 @@ public class CompanySymbolValidationConfig {
|
||||||
CompanySymbolDictionary.class,
|
CompanySymbolDictionary.class,
|
||||||
CompanyErrors.RequiredFieldEmpty,
|
CompanyErrors.RequiredFieldEmpty,
|
||||||
CompanyErrors.WrongFieldValue,
|
CompanyErrors.WrongFieldValue,
|
||||||
false)
|
false),
|
||||||
// , new CompanySymbolNotExistRule() чтобы применить это правило, необходимо сделать дополнительный тип в его методе
|
new CompanySymbolOfSymbolNewRequestNotExistRule()
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ import java.util.function.Function;
|
||||||
public class CompanySymbolService extends QueueConsumer implements InitializingBean {
|
public class CompanySymbolService extends QueueConsumer implements InitializingBean {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
// private final Imdg<CompanySymbols> companySymbolsMap;
|
|
||||||
private final ImdgId idSequence;
|
private final ImdgId idSequence;
|
||||||
protected CompanyService companyService;
|
protected CompanyService companyService;
|
||||||
|
|
||||||
|
|
@ -105,8 +104,8 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
|
||||||
transaction.beginTransaction();
|
transaction.beginTransaction();
|
||||||
boolean txOk = false;
|
boolean txOk = false;
|
||||||
try {
|
try {
|
||||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
Imdg<CompanySymbols> companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
companySymbolsMap.update(companySymbols);
|
companySymbolsTMap.update(companySymbols);
|
||||||
try {
|
try {
|
||||||
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
||||||
} catch (ClearingBaseException e) {
|
} catch (ClearingBaseException e) {
|
||||||
|
|
@ -140,11 +139,11 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
|
||||||
transaction.beginTransaction();
|
transaction.beginTransaction();
|
||||||
boolean txOk = false;
|
boolean txOk = false;
|
||||||
try {
|
try {
|
||||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
Imdg<CompanySymbols> companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
companySymbols = companySymbolsMap.getSingleObjectByID(req.getId());
|
companySymbols = companySymbolsTMap.getSingleObjectByID(req.getId());
|
||||||
// companySymbols.setCompanySymbol(req.getCompanySymbol()); по ТЗ не должен менятся при обновлении
|
// companySymbols.setCompanySymbol(req.getCompanySymbol()); по ТЗ не должен менятся при обновлении
|
||||||
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
|
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
|
||||||
companySymbolsMap.update(companySymbols);
|
companySymbolsTMap.update(companySymbols);
|
||||||
try {
|
try {
|
||||||
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
companyService.updateCompanyBySymbol(transaction, companySymbols);
|
||||||
} catch (ClearingBaseException e) {
|
} catch (ClearingBaseException e) {
|
||||||
|
|
@ -172,8 +171,8 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
|
||||||
newSymbol.setCompanySymbolValue(companySymbolValue);
|
newSymbol.setCompanySymbolValue(companySymbolValue);
|
||||||
log.debug("Created new companySymbols.id={} for company {}", newSymbol.getId(), companyId);
|
log.debug("Created new companySymbols.id={} for company {}", newSymbol.getId(), companyId);
|
||||||
if (transaction == null) {
|
if (transaction == null) {
|
||||||
Imdg<CompanySymbols> companySymbolsMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
Imdg<CompanySymbols> companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
companySymbolsMap.insert(newSymbol);
|
companySymbolsTMap.insert(newSymbol);
|
||||||
} else {
|
} else {
|
||||||
Imdg<CompanySymbols> tMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
Imdg<CompanySymbols> tMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
tMap.insert(newSymbol);
|
tMap.insert(newSymbol);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package ru.spcex.clearing.company.validation;
|
||||||
|
|
||||||
|
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest;
|
||||||
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
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.validation.IValidationRule;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Проверка наличия CompanySymbols с переданными в запросе companySymbol и companyId
|
||||||
|
*/
|
||||||
|
public class CompanySymbolOfSymbolNewRequestNotExistRule implements IValidationRule<ImdgValidationContext<CompanySymbolUpdateRequest>> {
|
||||||
|
@Override
|
||||||
|
public Optional<EnumMessage> validate(ImdgValidationContext<CompanySymbolUpdateRequest> context) {
|
||||||
|
CompanySymbolUpdateRequest request = context.getValidatedObject();
|
||||||
|
|
||||||
|
Imdg<CompanySymbols> companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
|
|
||||||
|
Collection<CompanySymbols> companySymbols = companySymbolsImdg.getCollectionObjectsByFieldValues(Map.of(
|
||||||
|
"companyId", request.getCompanyId(),
|
||||||
|
"companySymbol", request.getCompanySymbol()
|
||||||
|
));
|
||||||
|
if (companySymbols.isEmpty()) return Optional.empty();
|
||||||
|
return of(CompanyErrors.RecordAlreadyExist, request.getCompanyId(), request.getCompanySymbol());
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue