From 224179a9e1058b7f691577ff61f998ccb7dcfa62 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 31 May 2024 11:45:02 +0300 Subject: [PATCH] add new fields --- .../request/tkr/request/InfoAccount.java | 10 ++++++++ .../request/tkr/request/MoneyAccount.java | 10 ++++++++ .../gatewayapi/enums/TypeOperations.java | 25 +++++++++++++++++++ .../gatewayapi/service/TkrService.java | 15 +++++++---- .../service/adapter/TkrAdapter.java | 16 ++++++++++++ .../domain/cud/account/TkrAccount.java | 2 ++ .../domain/cud/gateway/MoneyAccountMsg.java | 2 ++ 7 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/TypeOperations.java diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/InfoAccount.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/InfoAccount.java index 368f62b01..02d9a6c05 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/InfoAccount.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/InfoAccount.java @@ -4,6 +4,8 @@ import java.util.List; import com.fasterxml.jackson.annotation.JsonProperty; public class InfoAccount { + @JsonProperty("type_operation_client") + private String typeOperationClient; @JsonProperty("company_id") private String companyId; @JsonProperty("trading_code") @@ -19,6 +21,14 @@ public class InfoAccount { @JsonProperty("money_account") private List moneyAccounts; + public String getTypeOperationClient() { + return typeOperationClient; + } + + public void setTypeOperationClient(String typeOperationClient) { + this.typeOperationClient = typeOperationClient; + } + public String getCompanyId() { return companyId; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java index 4e914f121..343e67137 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java @@ -7,6 +7,8 @@ public class MoneyAccount { private String currCode; @JsonProperty("account") private String account; + @JsonProperty("status") + private String status; public String getCurrCode() { return currCode; @@ -23,4 +25,12 @@ public class MoneyAccount { public void setAccount(String account) { this.account = account; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/TypeOperations.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/TypeOperations.java new file mode 100644 index 000000000..45f0c4f3a --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/enums/TypeOperations.java @@ -0,0 +1,25 @@ +package ru.spcex.clearing.gatewayapi.enums; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum TypeOperations implements IEnumKey{ + CHECK("CHECK"), + ADD("ADD"), + UPDATE("UPD"); + + private final String key; + + TypeOperations(String key) { + this.key = key; + } + + @Override + public String getKey() { + return this.key; + } + + @Override + public boolean equalsByKey(String key) { + return IEnumKey.super.equalsByKey(key); + } +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java index fb9253b04..8a9030998 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java @@ -1,9 +1,10 @@ package ru.spcex.clearing.gatewayapi.service; import java.util.List; +import java.util.Objects; import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; import ru.spcex.clearing.gatewayapi.controller.inbound.request.tkr.request.TkrRequest; +import ru.spcex.clearing.gatewayapi.enums.TypeOperations; import ru.spcex.clearing.gatewayapi.service.adapter.TkrAdapter; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.TkrAccount; @@ -23,12 +24,16 @@ public class TkrService { public void processedTkrRequest(TkrRequest tkrRequest) { List tkrAccountsForCheck = tkrRequest.getInfoAccount() - .stream().filter(infoAccount -> !StringUtils.hasText(infoAccount.getClientCode())) - .map(tkrAdapter::toTkrResponse).toList(); + .stream().filter(infoAccount -> TypeOperations.CHECK.equalsByKey(infoAccount.getTypeOperationClient())) + .map(tkrAdapter::toTkrResponse) + .filter(Objects::nonNull) + .toList(); List tkrAccountsForNew = tkrRequest.getInfoAccount() - .stream().filter(infoAccount -> !StringUtils.hasText(infoAccount.getTkrCode())) - .map(tkrAdapter::toTkrResponse).toList(); + .stream().filter(infoAccount -> TypeOperations.ADD.equalsByKey(infoAccount.getTypeOperationClient())) + .map(tkrAdapter::toTkrResponse) + .filter(Objects::nonNull) + .toList(); if (!tkrAccountsForCheck.isEmpty()) { TkrAccountsGatewayRequest tkrAccountsRequest = new TkrAccountsGatewayRequest(); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/TkrAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/TkrAdapter.java index 36be9d6b6..37042a9ac 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/TkrAdapter.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/TkrAdapter.java @@ -1,22 +1,38 @@ package ru.spcex.clearing.gatewayapi.service.adapter; import java.util.List; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import ru.spcex.clearing.gatewayapi.controller.inbound.request.tkr.request.InfoAccount; import ru.spcex.clearing.gatewayapi.controller.inbound.request.tkr.request.MoneyAccount; +import ru.spcex.clearing.gatewayapi.enums.TypeOperations; import ru.spcex.clearing.platform.messaging.domain.cud.gateway.MoneyAccountMsg; import ru.spcex.clearing.platform.messaging.domain.cud.account.TkrAccount; @Service public class TkrAdapter { + private final Logger log = LoggerFactory.getLogger(getClass()); public TkrAccount toTkrResponse(InfoAccount infoAccount) { TkrAccount tkrResponse = new TkrAccount(); tkrResponse.setCompanyId(infoAccount.getCompanyId()); tkrResponse.setTradingCode(infoAccount.getTradingCode()); tkrResponse.setClientCode(infoAccount.getClientCode()); tkrResponse.setEnabled(infoAccount.getEnabled()); + if (TypeOperations.CHECK.equalsByKey(infoAccount.getTypeOperationClient()) && + !StringUtils.hasText(infoAccount.getTkrCode())){ + log.warn("For check action trk_code is required, skip this account.client_code: {}", infoAccount.getClientCode()); + return null; + } + if (TypeOperations.ADD.equalsByKey(infoAccount.getTypeOperationClient()) && + !StringUtils.hasText(infoAccount.getClientCode())){ + log.warn("For check action client_code is required, skip this account.tkr_code: {}", infoAccount.getTkrCode()); + return null; + } tkrResponse.setTkrCode(infoAccount.getTkrCode()); tkrResponse.setDepoAccount(infoAccount.getDepoAccount()); + if (infoAccount.getMoneyAccounts() != null) { List moneyAccountMsgs = infoAccount.getMoneyAccounts().stream() .map(this::toMoneyAccountMsg).toList(); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/TkrAccount.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/TkrAccount.java index a83ad7e13..7693da06f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/TkrAccount.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/TkrAccount.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import ru.spcex.clearing.platform.messaging.domain.cud.gateway.MoneyAccountMsg; public class TkrAccount { + @JsonProperty + private String typeOperationClient; @JsonProperty private String companyId; @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsg.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsg.java index a8991c3bd..0c5dfc341 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsg.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsg.java @@ -7,6 +7,8 @@ public class MoneyAccountMsg { private String currCode; @JsonProperty("account") private String account; + @JsonProperty("status") + private String status; public String getCurrCode() { return currCode;