account-service fillAccountFromRelation для AccountService убрал проверку категорий
This commit is contained in:
parent
dc5c8d766f
commit
1775ababa1
5 changed files with 34 additions and 27 deletions
|
|
@ -131,7 +131,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());
|
requestInfoUpdate = fillAccountFromRelation(account, userRequest.getId(), false);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
Long newId = accountMap.insert(account);
|
Long newId = accountMap.insert(account);
|
||||||
|
|
@ -230,31 +230,38 @@ public class AccountService extends QueueConsumer implements InitializingBean {
|
||||||
*
|
*
|
||||||
* @param requestId Идентификатор запроса для вывода лога
|
* @param requestId Идентификатор запроса для вывода лога
|
||||||
*/
|
*/
|
||||||
public RequestInfoUpdate fillAccountFromRelation(Account account, Long requestId) {
|
public RequestInfoUpdate fillAccountFromRelation(Account account, Long requestId, boolean checkClearingMemberCategory) {
|
||||||
Long companyId = account.getCompanyId();
|
Long companyId = account.getCompanyId();
|
||||||
ImdgPredicateBuilder clearingMemberCategoryPredicateBuilder = clearingMemberCategoryMap.predicateBuilder();
|
Collection<Relation> relations;
|
||||||
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();
|
|
||||||
|
|
||||||
ImdgPredicateBuilder relationPredicateBuilder = relationMap.predicateBuilder();
|
ImdgPredicateBuilder relationPredicateBuilder = relationMap.predicateBuilder();
|
||||||
ImdgPredicate consumerIdPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
ImdgPredicate finalRelationPredicate;
|
||||||
ImdgPredicate servicePredicate;
|
if (checkClearingMemberCategory) {
|
||||||
String clearingCategoryValue = clearingMemberCategory.getClearingMemberCategory();
|
ImdgPredicateBuilder clearingMemberCategoryPredicateBuilder = clearingMemberCategoryMap.predicateBuilder();
|
||||||
if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.B, ClearingCategory.I, ClearingCategory.V)) {
|
ImdgPredicate companyIdEquals = clearingMemberCategoryPredicateBuilder.equals("companyId", companyId);
|
||||||
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.MKR.getKey());
|
Collection<ClearingMemberCategory> clearingMemberCategories = clearingMemberCategoryMap.getCollectionObjectsByPredicate(companyIdEquals);
|
||||||
} else if (IEnumKey.contains(clearingCategoryValue, ClearingCategory.F, ClearingCategory.C)) {
|
|
||||||
servicePredicate = relationPredicateBuilder.equals("service", ru.spcex.platform.enumeration.Service.FOND.getKey());
|
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 {
|
||||||
|
return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, clearingCategoryValue + " (case not implemented)");
|
||||||
|
}
|
||||||
|
finalRelationPredicate = relationPredicateBuilder.and(consumerIdPredicate, servicePredicate);
|
||||||
|
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
||||||
} else {
|
} else {
|
||||||
return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, clearingCategoryValue + " (case not implemented)");
|
finalRelationPredicate = relationPredicateBuilder.equals("consumerId", companyId);
|
||||||
|
relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
||||||
}
|
}
|
||||||
ImdgPredicate finalRelationPredicate = relationPredicateBuilder.and(consumerIdPredicate, servicePredicate);
|
|
||||||
Collection<Relation> relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate);
|
|
||||||
|
|
||||||
if (relations.isEmpty()) return makeError(requestId, AccountError.WrongFieldValue, "companyId", finalRelationPredicate.toString());
|
if (relations.isEmpty()) return makeError(requestId, AccountError.WrongFieldValue, "companyId", finalRelationPredicate.toString());
|
||||||
if (relations.size() > 1)
|
if (relations.size() > 1)
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
||||||
account.setCompanyId(req.getCompanyId());
|
account.setCompanyId(req.getCompanyId());
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId());
|
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), false);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
Long bankAccountId = -1L;
|
Long bankAccountId = -1L;
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
|
||||||
account.setCompanyId(req.getCompanyId());
|
account.setCompanyId(req.getCompanyId());
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId());
|
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
Long clearingAccountId = -1L;
|
Long clearingAccountId = -1L;
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea
|
||||||
account.setCompanyId(req.getCompanyId());
|
account.setCompanyId(req.getCompanyId());
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId());
|
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
Long depoAccountId = -1L;
|
Long depoAccountId = -1L;
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali
|
||||||
account.setCompanyId(userRequest.getRequestPayload().getCompanyId());
|
account.setCompanyId(userRequest.getRequestPayload().getCompanyId());
|
||||||
account.setCreated(now);
|
account.setCreated(now);
|
||||||
account.setUpdated(now);
|
account.setUpdated(now);
|
||||||
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId());
|
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
||||||
|
|
@ -220,7 +220,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());
|
requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
ImdgTransaction imdgTransaction = imdgProvider.newTransaction();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue