account-service http://jira.mfd.msk:8088/browse/CLS-271 TCR правки
This commit is contained in:
parent
9a1a878513
commit
af2c9fac0e
1 changed files with 10 additions and 71 deletions
|
|
@ -24,7 +24,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRe
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.reports.NotificationRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
||||||
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;
|
||||||
|
|
@ -35,8 +35,6 @@ import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -65,6 +63,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
private final Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator;
|
private final Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator;
|
||||||
private final RequestHelper requestHelper;
|
private final RequestHelper requestHelper;
|
||||||
private final Function<TradingClearingRegistryNewRequest, IValidator> tradingClearingRegistryNewRequestValidator;
|
private final Function<TradingClearingRegistryNewRequest, IValidator> tradingClearingRegistryNewRequestValidator;
|
||||||
|
private final Function<TradingClearingRegistryNewRequest, IValidator> tradingClearingRegistryAutoNewRequestValidator;
|
||||||
private final Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator;
|
private final Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator;
|
||||||
|
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
|
|
@ -91,7 +90,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.requestHelper = requestHelper;
|
this.requestHelper = requestHelper;
|
||||||
this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator;
|
|
||||||
this.tradingClearingRegistryImdg = imdgProvider.getImdg(
|
this.tradingClearingRegistryImdg = imdgProvider.getImdg(
|
||||||
IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class
|
IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class
|
||||||
);
|
);
|
||||||
|
|
@ -101,6 +99,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
||||||
|
this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator;
|
||||||
|
this.tradingClearingRegistryAutoNewRequestValidator = tradingClearingRegistryNewRequestValidator; // без relation.
|
||||||
this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator;
|
this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator;
|
||||||
this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator;
|
this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator;
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
|
|
@ -128,7 +128,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryAutoNewRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
TradingClearingRegistryNewRequest req = userRequest.getRequestPayload();
|
TradingClearingRegistryNewRequest req = userRequest.getRequestPayload();
|
||||||
|
|
@ -163,64 +163,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
req.getCompanyId());
|
req.getCompanyId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of("consumerId", req.getCompanyId()));
|
|
||||||
if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) {
|
|
||||||
TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId()));
|
|
||||||
if (registry != null) {
|
|
||||||
return requestHelper.makeErrorResponse(userRequest,
|
|
||||||
AccountError.TradingClearingRegistryAlreadyExist,
|
|
||||||
req.getCompanyId(),
|
|
||||||
registry.getId());
|
|
||||||
}
|
|
||||||
DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId()));
|
|
||||||
if (depoAccountForCheck == null)
|
|
||||||
return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId());
|
|
||||||
} else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(relation.getService())) {
|
|
||||||
if (AccountType.Info.equalsByKey(accountMain.getStatus())) {
|
|
||||||
TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of(
|
|
||||||
"companyId", req.getCompanyId(),
|
|
||||||
"tradingClearingRegistryType", TradingClearingRegistryPurpose.M.getKey()
|
|
||||||
));
|
|
||||||
if (registry != null) {
|
|
||||||
return requestHelper.makeErrorResponse(userRequest,
|
|
||||||
AccountError.TradingClearingRegistryAlreadyExist,
|
|
||||||
req.getCompanyId(),
|
|
||||||
registry.getId());
|
|
||||||
}
|
|
||||||
DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId()));
|
|
||||||
if (depoAccountForCheck == null)
|
|
||||||
return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId());
|
|
||||||
} else if (AccountType.Clrn.equalsByKey(accountMain.getStatus())) {
|
|
||||||
ImdgPredicateBuilder imdgPredicateBuilder = tradingClearingRegistryImdg.predicateBuilder();
|
|
||||||
ImdgPredicate predicate = imdgPredicateBuilder.and(
|
|
||||||
imdgPredicateBuilder.equals("companyId", req.getCompanyId()),
|
|
||||||
imdgPredicateBuilder.or(
|
|
||||||
imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.M.getKey()),
|
|
||||||
imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.C.getKey())
|
|
||||||
)
|
|
||||||
);
|
|
||||||
Collection<TradingClearingRegistry> registry = tradingClearingRegistryImdg.getCollectionObjectsByPredicate(predicate);
|
|
||||||
if (!registry.isEmpty()) {
|
|
||||||
return requestHelper.makeErrorResponse(userRequest,
|
|
||||||
AccountError.TradingClearingRegistryAlreadyExist,
|
|
||||||
req.getCompanyId(),
|
|
||||||
registry.iterator().next().getId());
|
|
||||||
}
|
|
||||||
DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId()));
|
|
||||||
if (depoAccountForCheck == null) {
|
|
||||||
return requestHelper.makeErrorResponse(userRequest, AccountError.DepoAccountNotFound, req.getCompanyId());
|
|
||||||
}
|
|
||||||
} else if (AccountType.Depo.equalsByKey(accountMain.getStatus())) {
|
|
||||||
InformationAccount infoAccountForCheck = informationAccountImdg.getSingleObjectByFieldValues(
|
|
||||||
Map.of("companyId", req.getCompanyId())
|
|
||||||
);
|
|
||||||
ClearingAccount clearingAccountForCheck = clearingAccountImdg.getSingleObjectByFieldValues(
|
|
||||||
Map.of("companyId", req.getCompanyId())
|
|
||||||
);
|
|
||||||
if (infoAccountForCheck == null && clearingAccountForCheck == null)
|
|
||||||
return requestHelper.makeErrorResponse(userRequest, AccountError.MoneyAccountNotFound, req.getCompanyId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<String> activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey());
|
List<String> activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey());
|
||||||
String status = null;
|
String status = null;
|
||||||
|
|
@ -428,19 +370,16 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
|
||||||
protected void sendNotificationToClearingSvc(TradingClearingRegistry tradingClearingRegistry) {
|
protected void sendNotificationToClearingSvc(TradingClearingRegistry tradingClearingRegistry) {
|
||||||
CreateRegistryRequest request = new CreateRegistryRequest();
|
CreateRegistryRequest request = new CreateRegistryRequest();
|
||||||
request.setCompanyId(tradingClearingRegistry.getCompanyId());
|
request.setCompanyId(tradingClearingRegistry.getCompanyId());
|
||||||
//todo Надо ли проверять существование регистров?
|
|
||||||
log.debug("Send message to kafka \"{}\": {}", Consts.REGISTRY_NEW, LogFormatter.toStringWrapper(request));
|
log.debug("Send message to kafka \"{}\": {}", Consts.REGISTRY_NEW, LogFormatter.toStringWrapper(request));
|
||||||
kafkaSender.sendRequestToQueue(Consts.REGISTRY_NEW, request);
|
kafkaSender.sendRequestToQueue(Consts.REGISTRY_NEW, request);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* todo report-service сообщение на формирование уведомления о создании нового ТКР
|
* report-service сообщение на формирование уведомления о создании нового ТКР
|
||||||
*/
|
*/
|
||||||
protected void sendNotificationToReportSvc(TradingClearingRegistry tradingClearingRegistry) {
|
protected void sendNotificationToReportSvc(TradingClearingRegistry tradingClearingRegistry) {
|
||||||
log.debug("Todo report destination: new TCR (не реализовано)");
|
NotificationRequest request = new NotificationRequest();
|
||||||
// ReportRequest request = new ReportRequest();
|
request.setConsumerId(tradingClearingRegistry.getCompanyId());
|
||||||
// request.setReportId(ReportType.NEW_TRADING_CLEARING_REGISTRY);
|
log.debug("Send message to kafka \"{}\": {}", Consts.CREATE_NOTIFICATION_NTCR, LogFormatter.toStringWrapper(request));
|
||||||
// request.setTradingClearingRegistryId(tradingClearingRegistry.getId());
|
kafkaSender.sendRequestToQueue(Consts.CREATE_NOTIFICATION_NTCR, request);
|
||||||
// log.debug("Send message to kafka \"{}\": {}", Consts.CREATE_REPORT_FOR_TCR, LogFormatter.toStringWrapper(request));
|
|
||||||
// kafkaSender.sendRequestToQueue(Consts.CREATE_REPORT_FOR_TCR, request);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue