From d3069db920bed35649255a55d8c6d94a2d445ad7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 24 May 2023 13:32:24 +0300 Subject: [PATCH] =?UTF-8?q?account-service=20http://jira.mfd.msk:8088/brow?= =?UTF-8?q?se/CLS-272=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20ClientCode,=20TradingClearingRegistry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/service/ClientCodeService.java | 8 +++--- .../TradingClearingRegistryService.java | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java index c3ed92205..b46a83451 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java @@ -229,11 +229,13 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean ClientCode clientCode = clientCodeMap.getSingleObjectByID(req.getId()); if (clientCode.getMoneyAccountId() != null) { - log.debug("Delete clientCode.id = {}: send message to account-service", clientCode.getId()); + log.debug("Blocking clientCode.id = {}: send message to account-service", clientCode.getId()); sendBlockTCR(clientCode.getTradingClearingRegistryId(), clientCode.getMoneyAccountId()); } - log.debug("Delete clientCode.id={}", clientCode.getId()); - clientCodeMap.delete(clientCode); + log.debug("Blocking clientCode.id={}", clientCode.getId()); + clientCode.setUpdated(Instant.now()); + clientCode.setStatus(WorkflowStatus.Blocked.getKey()); + clientCodeMap.update(clientCode); return null; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 3f0a443fe..152894df1 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -153,6 +153,14 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, // её стоит вынести на этап валидации запроса. + if (req.getMoneyAccountId() == null && (req.getMoneyAccountId() == null || req.getDepoAccountId() == null)) { + TradingClearingRegistry registryByCompany = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (registryByCompany == null) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryNotFound, + 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())); @@ -281,6 +289,15 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini } TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + // Дополнительная проверка + if (req.getMoneyAccountId() == null && (req.getMoneyAccountId() == null || req.getDepoAccountId() == null)) { + TradingClearingRegistry registryByCompany = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (registryByCompany == null) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryNotFound, + "companyId=" + req.getCompanyId()); + } + } Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); @@ -335,6 +352,15 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini TradingClearingRegistryUpdateRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + // Дополнительная проверка + if (req.getMoneyAccountId() == null && (req.getMoneyAccountId() == null || req.getDepoAccountId() == null)) { + TradingClearingRegistry registryByCompany = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (registryByCompany == null) { + return requestHelper.makeErrorResponse(userRequest, + AccountError.TradingClearingRegistryNotFound, + "companyId=" + req.getCompanyId()); + } + } if (req.getStatus() != null) tradingClearingRegistry.setStatus(req.getStatus());