account-service http://jira.mfd.msk:8088/browse/CLS-553 account с типом INFO
This commit is contained in:
parent
4f2daf06d8
commit
f36286e14b
14 changed files with 159 additions and 77 deletions
|
|
@ -59,10 +59,14 @@ public class AccountValidationConfig {
|
||||||
),
|
),
|
||||||
FieldRequiredSpecificRule.instance("account",
|
FieldRequiredSpecificRule.instance("account",
|
||||||
CorrespondentAccountNewRequest::getAccount,
|
CorrespondentAccountNewRequest::getAccount,
|
||||||
AccountError.RequiredFieldEmpty,
|
AccountError.AccountFieldNotSet,
|
||||||
|
false,
|
||||||
accountValue -> {
|
accountValue -> {
|
||||||
if (accountValue.isBlank())
|
if ((accountValue == null || accountValue.isBlank()) && AccountType.Info.equalsByKey(context.getValidatedObject().getAccountType())) {
|
||||||
return new EnumMessage(AccountError.RequiredFieldEmpty, "account");
|
return null;
|
||||||
|
}
|
||||||
|
if (accountValue == null || accountValue.isBlank())
|
||||||
|
return new EnumMessage(AccountError.AccountFieldNotSet, "account");
|
||||||
Imdg<Account> accountImdg = context.obtainMap(
|
Imdg<Account> accountImdg = context.obtainMap(
|
||||||
IMDGDistributedNames.Map_Account, Account.class
|
IMDGDistributedNames.Map_Account, Account.class
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ public enum AccountError implements IErrorEnumId {
|
||||||
ClearingCategoryNotFound(5019L),
|
ClearingCategoryNotFound(5019L),
|
||||||
ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код».
|
ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код».
|
||||||
AccountForTradingClearingRegistryAlreadyUsed(5023L),
|
AccountForTradingClearingRegistryAlreadyUsed(5023L),
|
||||||
|
AccountFieldNotSet(5024L),
|
||||||
TradingClearingRegistryNotFound(3022L),
|
TradingClearingRegistryNotFound(3022L),
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
package ru.spcex.clearing.account.service;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
|
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||||
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
|
import ru.spcex.clearing.account.errors.AccountError;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
|
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||||
|
import ru.spcex.platform.enumeration.*;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class AccountHelper {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
private final Imdg<ClearingMemberCategory> clearingMemberCategoryMap;
|
||||||
|
private final Imdg<Relation> relationMap;
|
||||||
|
private final IMessageResolver messageResolver;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public AccountHelper(ImdgProvider imdgProvider,
|
||||||
|
IMessageResolver messageResolver) {
|
||||||
|
this.clearingMemberCategoryMap = imdgProvider.getImdg(
|
||||||
|
IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class
|
||||||
|
);
|
||||||
|
this.relationMap = imdgProvider.getImdg(
|
||||||
|
IMDGDistributedNames.Map_Relation, Relation.class
|
||||||
|
);
|
||||||
|
this.messageResolver = messageResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Заполняет поля relationId и companyId из соответствующей записи Relation
|
||||||
|
*
|
||||||
|
* @param requestId Идентификатор запроса для вывода лога
|
||||||
|
*/
|
||||||
|
public RequestInfoUpdate fillAccountFromRelation(Account account, Long requestId, boolean checkClearingMemberCategory) {
|
||||||
|
Long companyId = account.getCompanyId();
|
||||||
|
Collection<Relation> relations;
|
||||||
|
ImdgPredicateBuilder relationPredicateBuilder = relationMap.predicateBuilder();
|
||||||
|
ImdgPredicate finalRelationPredicate;
|
||||||
|
if (checkClearingMemberCategory) {
|
||||||
|
ImdgPredicateBuilder clearingMemberCategoryPredicateBuilder = clearingMemberCategoryMap.predicateBuilder();
|
||||||
|
ImdgPredicate companyIdEquals = clearingMemberCategoryPredicateBuilder.equals("companyId", companyId);
|
||||||
|
Collection<ClearingMemberCategory> clearingMemberCategories = clearingMemberCategoryMap.getCollectionObjectsByPredicate(companyIdEquals);
|
||||||
|
|
||||||
|
if (clearingMemberCategories.isEmpty())
|
||||||
|
return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, "(any)");
|
||||||
|
if (clearingMemberCategories.size() > 1)
|
||||||
|
log.warn("ClearingMemberCategory for companyId {} contains multiply elements, use first", companyId);
|
||||||
|
ClearingMemberCategory clearingMemberCategory = clearingMemberCategories.iterator().next();
|
||||||
|
|
||||||
|
ImdgPredicate consumerIdPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
||||||
|
ImdgPredicate servicePredicate;
|
||||||
|
String clearingCategoryValue = clearingMemberCategory.getClearingMemberCategory();
|
||||||
|
if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.B, ClearingCategory.I, ClearingCategory.V)) {
|
||||||
|
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.MKR.getKey());
|
||||||
|
} else if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.F, ClearingCategory.C)) {
|
||||||
|
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.FOND.getKey());
|
||||||
|
} else {
|
||||||
|
log.info("ClearingCategoryNotFound with clearingCategoryValue={} not implemented. Do not search Relation.", clearingCategoryValue);
|
||||||
|
return null;
|
||||||
|
//return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, clearingCategoryValue + " (case not implemented)");
|
||||||
|
}
|
||||||
|
finalRelationPredicate = relationPredicateBuilder.and(consumerIdPredicate, servicePredicate);
|
||||||
|
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
||||||
|
} else {
|
||||||
|
finalRelationPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
||||||
|
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (relations.isEmpty()) {
|
||||||
|
//return makeError(requestId, AccountError.WrongFieldValue, "companyId", finalRelationPredicate.toString());
|
||||||
|
log.info("Relation not found: {}", finalRelationPredicate.toString());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (relations.size() > 1)
|
||||||
|
log.warn("Relation for consumerId {} contains multiply elements, use first", companyId);
|
||||||
|
Relation relation = relations.iterator().next();
|
||||||
|
account.setRelationId(relation.getId());
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RequestInfoUpdate makeError(Long reqId, AccountError accountError, Object... args) {
|
||||||
|
String errMsg = messageResolver.resolve(new EnumMessage(accountError, args));
|
||||||
|
return new RequestInfoUpdate()
|
||||||
|
.setId(reqId)
|
||||||
|
.setStatus(Status.Error)
|
||||||
|
.setMessage(errMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -55,6 +55,8 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
|
private final AccountHelper accountHelper;
|
||||||
|
private final InformationAccountService informationAccountService;
|
||||||
private final Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator;
|
private final Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator;
|
||||||
private final Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator;
|
private final Function<CorrespondentAccountUpdateRequest, IValidator> accountUpdateRequestValidator;
|
||||||
private final Function<CommonIdRequest, IValidator> accountBlockRequestValidator;
|
private final Function<CommonIdRequest, IValidator> accountBlockRequestValidator;
|
||||||
|
|
@ -67,6 +69,8 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
IMessageResolver messageResolver,
|
IMessageResolver messageResolver,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
|
AccountHelper accountHelper,
|
||||||
|
InformationAccountService informationAccountService,
|
||||||
@Qualifier("correspondentAccountNewRequestValidator")
|
@Qualifier("correspondentAccountNewRequestValidator")
|
||||||
Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator,
|
Function<CorrespondentAccountNewRequest, IValidator> accountNewRequestValidator,
|
||||||
@Qualifier("correspondentAccountUpdateRequestValidator")
|
@Qualifier("correspondentAccountUpdateRequestValidator")
|
||||||
|
|
@ -74,6 +78,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
@Qualifier("correspondentAccountBlockRequestValidator")
|
@Qualifier("correspondentAccountBlockRequestValidator")
|
||||||
Function<CommonIdRequest, IValidator> accountBlockRequestValidator) {
|
Function<CommonIdRequest, IValidator> accountBlockRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
|
this.accountHelper = accountHelper;
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.accountMap = imdgProvider.getImdg(
|
this.accountMap = imdgProvider.getImdg(
|
||||||
IMDGDistributedNames.Map_Account, Account.class
|
IMDGDistributedNames.Map_Account, Account.class
|
||||||
|
|
@ -88,6 +93,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
|
this.informationAccountService = informationAccountService;
|
||||||
this.accountNewRequestValidator = accountNewRequestValidator;
|
this.accountNewRequestValidator = accountNewRequestValidator;
|
||||||
this.accountUpdateRequestValidator = accountUpdateRequestValidator;
|
this.accountUpdateRequestValidator = accountUpdateRequestValidator;
|
||||||
this.accountBlockRequestValidator = accountBlockRequestValidator;
|
this.accountBlockRequestValidator = accountBlockRequestValidator;
|
||||||
|
|
@ -128,6 +134,12 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
account.setCompanyId(req.getCompanyId());
|
account.setCompanyId(req.getCompanyId());
|
||||||
account.setAccount(req.getAccount());
|
account.setAccount(req.getAccount());
|
||||||
|
if (AccountType.Info.equalsByKey(req.getAccountType())) {
|
||||||
|
Long infoSequenceId = informationAccountService.accountNextId();
|
||||||
|
String accountValue = informationAccountService.generateInfoAccount(infoSequenceId);
|
||||||
|
log.trace("New info-account SequenceId={} account={}", infoSequenceId, accountValue);
|
||||||
|
account.setAccount(accountValue);
|
||||||
|
}
|
||||||
account.setAccountType(req.getAccountType());
|
account.setAccountType(req.getAccountType());
|
||||||
if (req.getStatus() == null) {
|
if (req.getStatus() == null) {
|
||||||
account.setStatus(WorkflowStatus.Active.getKey());
|
account.setStatus(WorkflowStatus.Active.getKey());
|
||||||
|
|
@ -138,7 +150,7 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
|
|
||||||
requestInfoUpdate = fillAccountFromRelation(account, userRequest.getId(), false);
|
requestInfoUpdate = accountHelper.fillAccountFromRelation(account, userRequest.getId(), false);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
Long newId = null;
|
Long newId = null;
|
||||||
|
|
@ -306,60 +318,6 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Заполняет поля relationId и companyId из соответствующей записи Relation
|
|
||||||
*
|
|
||||||
* @param requestId Идентификатор запроса для вывода лога
|
|
||||||
*/
|
|
||||||
public RequestInfoUpdate fillAccountFromRelation(Account account, Long requestId, boolean checkClearingMemberCategory) {
|
|
||||||
Long companyId = account.getCompanyId();
|
|
||||||
Collection<Relation> relations;
|
|
||||||
ImdgPredicateBuilder relationPredicateBuilder = relationMap.predicateBuilder();
|
|
||||||
ImdgPredicate finalRelationPredicate;
|
|
||||||
if (checkClearingMemberCategory) {
|
|
||||||
ImdgPredicateBuilder clearingMemberCategoryPredicateBuilder = clearingMemberCategoryMap.predicateBuilder();
|
|
||||||
ImdgPredicate companyIdEquals = clearingMemberCategoryPredicateBuilder.equals("companyId", companyId);
|
|
||||||
Collection<ClearingMemberCategory> clearingMemberCategories = clearingMemberCategoryMap.getCollectionObjectsByPredicate(companyIdEquals);
|
|
||||||
|
|
||||||
if (clearingMemberCategories.isEmpty())
|
|
||||||
return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, "(any)");
|
|
||||||
if (clearingMemberCategories.size() > 1)
|
|
||||||
log.warn("ClearingMemberCategory for companyId {} contains multiply elements, use first", companyId);
|
|
||||||
ClearingMemberCategory clearingMemberCategory = clearingMemberCategories.iterator().next();
|
|
||||||
|
|
||||||
ImdgPredicate consumerIdPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
|
||||||
ImdgPredicate servicePredicate;
|
|
||||||
String clearingCategoryValue = clearingMemberCategory.getClearingMemberCategory();
|
|
||||||
if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.B, ClearingCategory.I, ClearingCategory.V)) {
|
|
||||||
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.MKR.getKey());
|
|
||||||
} else if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.F, ClearingCategory.C)) {
|
|
||||||
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.FOND.getKey());
|
|
||||||
} else {
|
|
||||||
log.info("ClearingCategoryNotFound with clearingCategoryValue={} not implemented. Do not search Relation.", clearingCategoryValue);
|
|
||||||
return null;
|
|
||||||
//return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, clearingCategoryValue + " (case not implemented)");
|
|
||||||
}
|
|
||||||
finalRelationPredicate = relationPredicateBuilder.and(consumerIdPredicate, servicePredicate);
|
|
||||||
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
|
||||||
} else {
|
|
||||||
finalRelationPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
|
||||||
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (relations.isEmpty()) {
|
|
||||||
//return makeError(requestId, AccountError.WrongFieldValue, "companyId", finalRelationPredicate.toString());
|
|
||||||
log.info("Relation not found: {}", finalRelationPredicate.toString());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (relations.size() > 1)
|
|
||||||
log.warn("Relation for consumerId {} contains multiply elements, use first", companyId);
|
|
||||||
Relation relation = relations.iterator().next();
|
|
||||||
account.setRelationId(relation.getId());
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private RequestInfoUpdate makeError(Long reqId, AccountError accountError, Object... args) {
|
private RequestInfoUpdate makeError(Long reqId, AccountError accountError, Object... args) {
|
||||||
String errMsg = messageResolver.resolve(new EnumMessage(accountError, args));
|
String errMsg = messageResolver.resolve(new EnumMessage(accountError, args));
|
||||||
return new RequestInfoUpdate()
|
return new RequestInfoUpdate()
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
|
|
||||||
private final AccountService accountService;
|
private final AccountHelper accountService;
|
||||||
|
|
||||||
private final Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator;
|
private final Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator;
|
||||||
private final Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator;
|
private final Function<BankAccountUpdateRequest, IValidator> bankAccountUpdateRequestValidator;
|
||||||
|
|
@ -53,7 +53,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
AccountService accountService,
|
AccountHelper accountService,
|
||||||
@Qualifier("bankAccountNewRequestValidator")
|
@Qualifier("bankAccountNewRequestValidator")
|
||||||
Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator,
|
Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator,
|
||||||
@Qualifier("bankAccountUpdateRequestValidator")
|
@Qualifier("bankAccountUpdateRequestValidator")
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ import java.util.function.Function;
|
||||||
public class ClearingAccountService extends QueueConsumer implements InitializingBean {
|
public class ClearingAccountService extends QueueConsumer implements InitializingBean {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final KafkaSender kafkaSender;
|
private final KafkaSender kafkaSender;
|
||||||
private final AccountService accountService;
|
private final AccountHelper accountService;
|
||||||
private final SDFProcessService sdfProcessService;
|
private final SDFProcessService sdfProcessService;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
|
|
@ -81,7 +81,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
|
||||||
public ClearingAccountService(Consumer<String, Object> kafkaQueue,
|
public ClearingAccountService(Consumer<String, Object> kafkaQueue,
|
||||||
Producer<String, Object> kafkaResponseQueue,
|
Producer<String, Object> kafkaResponseQueue,
|
||||||
KafkaSender kafkaSender,
|
KafkaSender kafkaSender,
|
||||||
AccountService accountService,
|
AccountHelper accountService,
|
||||||
SDFProcessService sdfProcessService,
|
SDFProcessService sdfProcessService,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea
|
||||||
private final KafkaSender kafkaSender;
|
private final KafkaSender kafkaSender;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private final AccountService accountService;
|
private final AccountHelper accountService;
|
||||||
private final Function<DepoAccountNewRequest, IValidator> depoAccountNewRequestValidator;
|
private final Function<DepoAccountNewRequest, IValidator> depoAccountNewRequestValidator;
|
||||||
|
|
||||||
public DepoAccountService(Consumer<String, Object> kafkaQueue,
|
public DepoAccountService(Consumer<String, Object> kafkaQueue,
|
||||||
|
|
@ -52,7 +52,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea
|
||||||
KafkaSender kafkaSender,
|
KafkaSender kafkaSender,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
AccountService accountService,
|
AccountHelper accountService,
|
||||||
@Qualifier("depoAccountNewRequestValidator")
|
@Qualifier("depoAccountNewRequestValidator")
|
||||||
Function<DepoAccountNewRequest, IValidator> depoAccountNewRequestValidator) {
|
Function<DepoAccountNewRequest, IValidator> depoAccountNewRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final AccountService accountService;
|
private final AccountHelper accountHelper;
|
||||||
private final RequestHelper requestHelper;
|
private final RequestHelper requestHelper;
|
||||||
private final Function<InformationAccountNewRequest, IValidator> infoAccountNewRequestValidator;
|
private final Function<InformationAccountNewRequest, IValidator> infoAccountNewRequestValidator;
|
||||||
private final Imdg<InformationAccount> informationAccountImdg;
|
private final Imdg<InformationAccount> informationAccountImdg;
|
||||||
|
|
@ -73,7 +73,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
AccountService accountService,
|
AccountHelper accountHelper,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
@Qualifier("informationAccountNewRequestValidator")
|
@Qualifier("informationAccountNewRequestValidator")
|
||||||
Function<InformationAccountNewRequest, IValidator> infoAccountNewRequestValidator) {
|
Function<InformationAccountNewRequest, IValidator> infoAccountNewRequestValidator) {
|
||||||
|
|
@ -83,7 +83,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.accountService = accountService;
|
this.accountHelper = accountHelper;
|
||||||
this.requestHelper = requestHelper;
|
this.requestHelper = requestHelper;
|
||||||
this.infoAccountNewRequestValidator = infoAccountNewRequestValidator;
|
this.infoAccountNewRequestValidator = infoAccountNewRequestValidator;
|
||||||
this.informationAccountImdg = imdgProvider.getImdg(
|
this.informationAccountImdg = imdgProvider.getImdg(
|
||||||
|
|
@ -147,7 +147,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
|
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true);
|
requestInfoUpdate = accountHelper.fillAccountFromRelation(account, userRequest.getId(), true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
||||||
|
|
@ -239,7 +239,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
account.setCompanyId(forCompanyId);
|
account.setCompanyId(forCompanyId);
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), false);
|
requestInfoUpdate = accountHelper.fillAccountFromRelation(account, userRequest.getId(), false);
|
||||||
if (requestInfoUpdate != null) {
|
if (requestInfoUpdate != null) {
|
||||||
log.debug("Stop make new account, cause error: {}", requestInfoUpdate.getMessage());
|
log.debug("Stop make new account, cause error: {}", requestInfoUpdate.getMessage());
|
||||||
return requestInfoUpdate;
|
return requestInfoUpdate;
|
||||||
|
|
@ -304,7 +304,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
*
|
*
|
||||||
* @return infoCounter++
|
* @return infoCounter++
|
||||||
*/
|
*/
|
||||||
protected Long accountNextId() {
|
public synchronized Long accountNextId() {
|
||||||
if (infoCounter == null) synchronized (this) {
|
if (infoCounter == null) synchronized (this) {
|
||||||
if (infoCounter == null) {
|
if (infoCounter == null) {
|
||||||
log.debug("Init account-information counter.");
|
log.debug("Init account-information counter.");
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import ru.clearing.platform.dictionary.AccountTypeDictionary;
|
||||||
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
|
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
|
||||||
import ru.spcex.clearing.account.config.BeanConfiguration;
|
import ru.spcex.clearing.account.config.BeanConfiguration;
|
||||||
import ru.spcex.clearing.account.config.validation.AccountValidationConfig;
|
import ru.spcex.clearing.account.config.validation.AccountValidationConfig;
|
||||||
|
import ru.spcex.clearing.account.config.validation.InformationAccountValidationConfig;
|
||||||
import ru.spcex.clearing.account.config.validation.ValidationConfig;
|
import ru.spcex.clearing.account.config.validation.ValidationConfig;
|
||||||
import ru.spcex.clearing.account.utils.MatcherFactory;
|
import ru.spcex.clearing.account.utils.MatcherFactory;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -64,6 +65,9 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID;
|
||||||
ValidationConfig.class,
|
ValidationConfig.class,
|
||||||
AccountValidationConfig.class,
|
AccountValidationConfig.class,
|
||||||
AccountService.class,
|
AccountService.class,
|
||||||
|
AccountHelper.class,
|
||||||
|
InformationAccountService.class,
|
||||||
|
InformationAccountValidationConfig.class,
|
||||||
ImdgTestConfig.class,
|
ImdgTestConfig.class,
|
||||||
KafkaTestConfig.class})
|
KafkaTestConfig.class})
|
||||||
class AccountServiceTest {
|
class AccountServiceTest {
|
||||||
|
|
@ -209,8 +213,16 @@ class AccountServiceTest {
|
||||||
waitingSendAndCheckRecord(0L, mockProducer);
|
waitingSendAndCheckRecord(0L, mockProducer);
|
||||||
|
|
||||||
Account resultUpdating = accountImdg.getSingleObjectByID(accountId);
|
Account resultUpdating = accountImdg.getSingleObjectByID(accountId);
|
||||||
existAccount.setUpdated(resultUpdating.getUpdated());
|
Account expectAccount = new Account();
|
||||||
ACCOUNT_MATCHER.assertMatch(resultUpdating, existAccount);
|
expectAccount.setId(existAccount.getId());
|
||||||
|
expectAccount.setAccount(account);
|
||||||
|
expectAccount.setAccountType(AccountType.Corr.getKey());
|
||||||
|
expectAccount.setStatus(ServiceStatus.Closed.getKey());
|
||||||
|
expectAccount.setCompanyId(companyId);
|
||||||
|
expectAccount.setCreated(existAccount.getCreated());
|
||||||
|
expectAccount.setUpdated(resultUpdating.getUpdated());
|
||||||
|
expectAccount.setStatus(ServiceStatus.Active.getKey());
|
||||||
|
ACCOUNT_MATCHER.assertMatch(resultUpdating, expectAccount);
|
||||||
accountImdg.delete(resultUpdating);
|
accountImdg.delete(resultUpdating);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ import static ru.spcex.clearing.test.TestUtils.*;
|
||||||
|
|
||||||
@ExtendWith(SpringExtension.class)
|
@ExtendWith(SpringExtension.class)
|
||||||
@ContextConfiguration(classes = {
|
@ContextConfiguration(classes = {
|
||||||
AccountService.class,
|
AccountHelper.class,
|
||||||
BankAccountService.class,
|
BankAccountService.class,
|
||||||
ValidationConfig.class,
|
ValidationConfig.class,
|
||||||
BankAccountValidationConfig.class,
|
BankAccountValidationConfig.class,
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ import static ru.spcex.clearing.test.TestUtils.*;
|
||||||
ValidationConfig.class,
|
ValidationConfig.class,
|
||||||
ClearingAccountValidationConfig.class,
|
ClearingAccountValidationConfig.class,
|
||||||
AccountValidationConfig.class,
|
AccountValidationConfig.class,
|
||||||
AccountService.class,
|
AccountHelper.class,
|
||||||
ClearingAccountService.class,
|
ClearingAccountService.class,
|
||||||
SDFProcessService.class,
|
SDFProcessService.class,
|
||||||
ImdgTestConfig.class,
|
ImdgTestConfig.class,
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.TestUtils.getJsonStringForNew;
|
||||||
ValidationConfig.class,
|
ValidationConfig.class,
|
||||||
DepoAccountValidationConfig.class,
|
DepoAccountValidationConfig.class,
|
||||||
AccountValidationConfig.class,
|
AccountValidationConfig.class,
|
||||||
AccountService.class,
|
AccountHelper.class,
|
||||||
DepoAccountService.class,
|
DepoAccountService.class,
|
||||||
ImdgTestConfig.class,
|
ImdgTestConfig.class,
|
||||||
KafkaTestConfig.class})
|
KafkaTestConfig.class})
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ import static ru.spcex.clearing.test.TestUtils.getJsonStringForNew;
|
||||||
ValidationConfig.class,
|
ValidationConfig.class,
|
||||||
InformationAccountValidationConfig.class,
|
InformationAccountValidationConfig.class,
|
||||||
AccountValidationConfig.class,
|
AccountValidationConfig.class,
|
||||||
AccountService.class,
|
AccountHelper.class,
|
||||||
InformationAccountService.class,
|
InformationAccountService.class,
|
||||||
ImdgTestConfig.class,
|
ImdgTestConfig.class,
|
||||||
KafkaTestConfig.class})
|
KafkaTestConfig.class})
|
||||||
|
|
|
||||||
|
|
@ -103,8 +103,9 @@ class SDFProcessServiceTest {
|
||||||
void parseSdf52Status() {
|
void parseSdf52Status() {
|
||||||
Assertions.assertEquals(AccountStatus.BLOCKED, sdfProcessService.parseSdf52Status(0L));
|
Assertions.assertEquals(AccountStatus.BLOCKED, sdfProcessService.parseSdf52Status(0L));
|
||||||
Assertions.assertEquals(AccountStatus.ACTIVE, sdfProcessService.parseSdf52Status(1L));
|
Assertions.assertEquals(AccountStatus.ACTIVE, sdfProcessService.parseSdf52Status(1L));
|
||||||
|
Assertions.assertEquals(AccountStatus.ACTIVE, sdfProcessService.parseSdf52Status(3L));
|
||||||
Assertions.assertEquals(AccountStatus.CLOSE, sdfProcessService.parseSdf52Status(2L));
|
Assertions.assertEquals(AccountStatus.CLOSE, sdfProcessService.parseSdf52Status(2L));
|
||||||
Assertions.assertEquals(null, sdfProcessService.parseSdf52Status(3L));
|
Assertions.assertEquals(null, sdfProcessService.parseSdf52Status(4705211956118233163L));
|
||||||
Assertions.assertEquals(null, sdfProcessService.parseSdf52Status(null));
|
Assertions.assertEquals(null, sdfProcessService.parseSdf52Status(null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue