diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java index c219ed4c1..05af1c9d3 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/BeanConfiguration.java @@ -6,10 +6,11 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.clearing.util.services.IMDGMessageResolver; @Configuration public class BeanConfiguration { @@ -18,6 +19,12 @@ public class BeanConfiguration { return new IMDGMessageResolver(imdgProvider); } + @Bean + @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public RequestHelper requestHelper(IMessageResolver messageResolver) { + return new RequestHelper(messageResolver, AccountError.GeneralError); + } + @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) { diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java index 58a707200..c57a09d19 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java @@ -7,10 +7,13 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.kafka.core.ProducerFactory; import ru.spcex.clearing.account.config.settings.AccountServiceSettings; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory; import ru.spcex.clearing.platform.messaging.config.KafkaProducerFactory; +import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.clearing.platform.messaging.service.RequestInfo; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.imdg.api.Imdg; @@ -33,13 +36,24 @@ public class KafkaConfig { return KafkaProducerFactory.producer(settings.getKafkaProducer()); } + @Bean + public ProducerFactory pf(AccountServiceSettings settings) { + KafkaProducerSettings kafkaSettings = settings.getKafkaProducer(); + return KafkaProducerFactory.producerFactory(kafkaSettings); + } + + @Bean + public KafkaTemplate kafkaTemplate(ProducerFactory pf) { + return new KafkaTemplate<>(pf); + } + @Autowired @Bean - public KafkaSender kafkaSender(Producer kafkaProducer, ImdgProvider imdgProvider) { + public KafkaSender kafkaSender(KafkaTemplate kafkaTemplate, ImdgProvider imdgProvider) { ImdgId imdgIdGenerator = imdgProvider.getImdgIdGenerator(); return KafkaSender .setup() - .producer(kafkaProducer) + .setKafkaTemplate(kafkaTemplate) .idGenerator(imdgIdGenerator::nextId) .imdgProvider(s -> { Imdg imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RequestInfo, RequestInfo.class); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index cb654bc0e..ef68fd75a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -5,18 +5,19 @@ import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -import ru.spcex.clearing.validation.common.rules.EnumPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -45,6 +46,7 @@ public class AccountValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_AccountTypeDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -69,12 +71,15 @@ public class AccountValidationConfig { if (accounts.isEmpty()) return null; return AccountError.AccountAlreadyExist; }), - FieldRequiredRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, false, statusValue -> { - if (statusValue == null || AccountStatus.ACTIVE.equalsByKey(statusValue)) return null; + if (ServiceStatus.Active.equalsByKey(statusValue.getCode())) return null; return AccountError.WrongFieldValue; }), DictionaryPresentRule.instance("accountType", @@ -127,16 +132,16 @@ public class AccountValidationConfig { error = Objects.equals(company.getId(), correspondentAccountUpdateRequest.getCompanyId()) ? error : AccountError.WrongFieldValue; return error; }), - EnumPresentRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountUpdateRequest::getStatus, - AccountStatus.values(), - false, - AccountError.WrongFieldValue, - AccountError.RequiredFieldEmpty), + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue), DictionaryPresentRule.instance("accountType", CorrespondentAccountUpdateRequest::getAccountType, IMDGDistributedNames.Map_AccountTypeDictionary, - AccountTypeDictionary.class, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, accountType -> { @@ -148,23 +153,23 @@ public class AccountValidationConfig { } @Bean("correspondentAccountBlockRequestValidator") - public Function correspondentAccountBlockRequestValidator( + public Function correspondentAccountBlockRequestValidator( Map> imdgForValidation ) { return correspondentAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(correspondentAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_Account, Account.class, AccountError.RequiredFieldEmpty, AccountError.AccountNotFound, account -> { - if (AccountStatus.ACTIVE.equalsByKey(account.getStatus())) return null; + if (WorkflowStatus.Active.equalsByKey(account.getStatus())) return null; return AccountError.AccountNotActive; }) ); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java index 1c2ca6ab6..3c6b00d6e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java @@ -10,13 +10,14 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -62,7 +63,7 @@ public class BankAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Bank.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -131,18 +132,18 @@ public class BankAccountValidationConfig { } @Bean("bankAccountBlockRequestValidator") - public Function bankAccountBlockRequestValidator( + public Function bankAccountBlockRequestValidator( Map> imdgForValidation ) { return bankAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(bankAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_BankAccount); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_BankAccount, BankAccount.class, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java index cb3c2368e..9c9cb0ba6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java @@ -13,8 +13,8 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -60,7 +60,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -102,7 +102,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java index 10277912b..c3bbca5ff 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java @@ -10,8 +10,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewReq import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -56,7 +56,7 @@ public class DepoAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java new file mode 100644 index 000000000..f936a6925 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -0,0 +1,144 @@ +package ru.spcex.clearing.account.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +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.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class TradingClearingRegistryValidationConfig { + + @Bean("tradingClearingRegistryNewRequest") + public Function tradingClearingRegistryNewRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount); + addImdg.accept(IMDGDistributedNames.Map_InformationAccount); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + TradingClearingRegistryNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), + FieldRequiredRule.instance("moneyAccountId", + TradingClearingRegistryNewRequest::getMoneyAccountId, + AccountError.RequiredFieldEmpty, + moneyAccountId -> { + Imdg clearingAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); + if (clearingAccount == null) { + Imdg informationAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); + InformationAccount infoAccount = informationAccountImdg.getSingleObjectByID(moneyAccountId); + if (infoAccount == null) return AccountError.AccountNotFound; + } + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + if (depoAccountId == null) return null; + Imdg depoAccountImdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(depoAccountId); + if (depoAccount == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + String statusCode = statusValue.getCode(); + if (ServiceStatus.Active.equalsByKey(statusCode)) return null; + return AccountError.WrongFieldValue; + }) + ); + }; + } + + @Bean("tradingClearingRegistryUpdateRequest") + public Function tradingClearingRegistryUpdateRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + TradingClearingRegistryUpdateRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound), + DictionaryPresentRule.instance("status", + TradingClearingRegistryUpdateRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) + ); + }; + } + + @Bean("tradingClearingRegistryBlockRequest") + public Function tradingClearingRegistryBlockRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryBlockRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryBlockRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonIdRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound) + ); + }; + } +} diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index d6189008f..6fedb6269 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -3,15 +3,14 @@ package ru.spcex.clearing.account.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.BankAccount; -import ru.clearing.classes.statics.data.account.ClearingAccount; -import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.account.*; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.AccountTypeDictionary; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -40,6 +39,9 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); return imdg; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 82789613d..f3c8f8362 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.account.errors; import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum AccountError implements IErrorEnumId { + GeneralError(5000L), UserVerifyDenial(5001L), RequiredFieldEmpty(5002L), WrongFieldValue(5004L), @@ -12,7 +13,11 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), - ClearingCategoryNotFound(5019L) + TradingClearingRegistryAlreadyExist(5016L), + DepoAccountNotFound(5017L), + MoneyAccountNotFound(5018L), + ClearingCategoryNotFound(5019L), + TradingClearingRegistryNotFound(5022L), ; private final Long id; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index 81df09673..6186be468 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -21,15 +21,15 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdf0 import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.AccountSdfToStatementRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -57,7 +57,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { private final ValidationHelper validationHelper; private final Function accountNewRequestValidator; private final Function accountUpdateRequestValidator; - private final Function accountBlockRequestValidator; + private final Function accountBlockRequestValidator; @Autowired public AccountService(Consumer kafkaQueue, @@ -72,7 +72,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { @Qualifier("correspondentAccountUpdateRequestValidator") Function accountUpdateRequestValidator, @Qualifier("correspondentAccountBlockRequestValidator") - Function accountBlockRequestValidator) { + Function accountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.accountMap = imdgProvider.getImdg( IMDGDistributedNames.Map_Account, Account.class @@ -95,16 +95,16 @@ public class AccountService extends QueueConsumer implements InitializingBean { @Override public void afterPropertiesSet() { callback(AccountSdf01Request.class) - .setConsumer(this::accountNewSdf01) + .setFunction(this::accountNewSdf01) .forDestination(Consts.ACCOUNT_NEW_SDF01, callbacks::put); callback(CorrespondentAccountNewRequest.class) - .setConsumer(this::accountCorrespondentNew) + .setFunction(this::accountCorrespondentNew) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_NEW, callbacks::put); callback(CorrespondentAccountUpdateRequest.class) - .setConsumer(this::correspondentAccountUpdate) + .setFunction(this::correspondentAccountUpdate) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) - .setConsumer(this::correspondentAccountBlock) + callback(CommonIdRequest.class) + .setFunction(this::correspondentAccountBlock) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, callbacks::put); init(); } @@ -161,7 +161,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { return null; } - public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { + public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { log.debug("AccountBlockRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); @@ -170,10 +170,10 @@ public class AccountService extends QueueConsumer implements InitializingBean { requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, accountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest request = userRequest.getRequestPayload(); + CommonIdRequest request = userRequest.getRequestPayload(); Account account = accountMap.getSingleObjectByID(request.getId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); accountMap.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index 1940cc5a9..1069939db 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -15,13 +15,13 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -44,7 +44,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea private final Function bankAccountNewRequestValidator; private final Function bankAccountUpdateRequestValidator; - private final Function bankAccountBlockRequestValidator; + private final Function bankAccountBlockRequestValidator; @Autowired public BankAccountService(Consumer kafkaQueue, @@ -58,7 +58,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea @Qualifier("bankAccountUpdateRequestValidator") Function bankAccountUpdateRequestValidator, @Qualifier("bankAccountBlockRequestValidator") - Function bankAccountBlockRequestValidator) { + Function bankAccountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class); this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); @@ -79,7 +79,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea callback(BankAccountUpdateRequest.class) .setFunction(this::bankAccountUpdate) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setFunction(this::bankAccountBlock) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, callbacks::put); init(); @@ -101,7 +101,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Bank.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -194,8 +194,8 @@ public class BankAccountService extends QueueConsumer implements InitializingBea return null; } - private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { - CommonDeleteRequest req = userRequest.getRequestPayload(); + private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { + CommonIdRequest req = userRequest.getRequestPayload(); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -203,11 +203,11 @@ public class BankAccountService extends QueueConsumer implements InitializingBea requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, bankAccountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - log.debug("CommonDeleteRequest received id = {}", req.getId()); + log.debug("CommonIdRequest received id = {}", req.getId()); BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId()); Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); @@ -224,7 +224,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea bankAccount.getId(), account.getId()); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed block, bank account id {}, new account id {}", bankAccount.getId(), account.getId()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index 03f148353..c17f62e64 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -16,18 +16,19 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountUpdateRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; 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.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -38,33 +39,39 @@ import java.util.function.Function; @Service public class ClearingAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final AccountService accountService; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; private final Imdg accountImdg; private final Imdg clearingAccountImdg; private final IMessageResolver messageResolver; + private final RequestHelper requestHelper; private final Function clearingAccountNewRequestValidator; private final Function clearingAccountUpdateRequestValidator; @Autowired public ClearingAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, AccountService accountService, ValidationHelper validationHelper, ImdgProvider imdgProvider, IMessageResolver messageResolver, + RequestHelper requestHelper, @Qualifier("clearingAccountNewRequestValidator") Function clearingAccountNewRequestValidator, @Qualifier("clearingAccountUpdateRequestValidator") Function clearingAccountUpdateRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.accountService = accountService; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.messageResolver = messageResolver; + this.requestHelper = requestHelper; this.clearingAccountNewRequestValidator = clearingAccountNewRequestValidator; this.clearingAccountUpdateRequestValidator = clearingAccountUpdateRequestValidator; } @@ -92,7 +99,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -104,10 +111,11 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + ClearingAccount clearingAccount = null; try { accountId = accountImdg.insert(account); - ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount = new ClearingAccount(); clearingAccount.setCompanyId(req.getCompanyId()); clearingAccount.setAccountId(accountId); clearingAccount.setClearingAccountType(req.getClearingAccountType()); @@ -116,9 +124,12 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(accountId); + request.setCompanyId(clearingAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new clearing account id {}, account id {}", clearingAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new clearing account id {}, new account id {} (if id = -1 then insert is failed)", clearingAccountId, accountId); @@ -137,7 +148,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ClearingAccountUpdateRequest req = userRequest.getRequestPayload(); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", req.getAccount()); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -147,18 +158,13 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Long accountId = account.getId(); ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByFieldValues(Map.of("accountId", accountId)); - if (clearingAccount == null) { - String errMsg = messageResolver.resolve(new EnumMessage(AccountError.AccountNotFound, account.getAccount())); - return new RequestInfoUpdate() - .setId(userRequest.getId()) - .setStatus(Status.Error) - .setMessage(errMsg); - } + if (clearingAccount == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.AccountNotFound, account.getAccount()); Integer statusValue = req.getStatus(); - if (statusValue == 0) account.setStatus(AccountStatus.BLOCKED.getKey()); - else if (statusValue == 1) account.setStatus(AccountStatus.ACTIVE.getKey()); - else if (statusValue == 2) account.setStatus(AccountStatus.CLOSE.getKey()); + if (statusValue == 0) account.setStatus(ServiceStatus.Blocked.getKey()); + else if (statusValue == 1) account.setStatus(ServiceStatus.Active.getKey()); + else if (statusValue == 2) account.setStatus(ServiceStatus.Closed.getKey()); account.setUpdated(Instant.now()); accountImdg.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index 625e909f5..66342e3e6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -13,11 +13,13 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -30,6 +32,7 @@ import java.util.function.Function; public class DepoAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; private final AccountService accountService; @@ -39,12 +42,14 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea public DepoAccountService(Consumer kafkaQueue, Producer kafkaProducer, + KafkaSender kafkaSender, ValidationHelper validationHelper, ImdgProvider imdgProvider, AccountService accountService, @Qualifier("depoAccountNewRequestValidator") Function depoAccountNewRequestValidator) { super(kafkaQueue, kafkaProducer); + this.kafkaSender = kafkaSender; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; this.accountService = accountService; @@ -56,7 +61,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea @Override public void afterPropertiesSet() throws Exception { callback(DepoAccountNewRequest.class) - .setConsumer(this::depoAccountNew) + .setFunction(this::depoAccountNew) .forDestination(Consts.DESTINATION_DEPO_ACCOUNT_NEW, callbacks::put); init(); } @@ -74,7 +79,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Depo.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -86,10 +91,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + DepoAccount depoAccount = null; try { accountId = accountImdg.insert(account); - DepoAccount depoAccount = new DepoAccount(); + depoAccount = new DepoAccount(); depoAccount.setCompanyId(req.getCompanyId()); depoAccount.setAccountId(accountId); depoAccount.setDepoAccountType(req.getDepoAccountType()); @@ -98,9 +104,12 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setDepoAccountId(accountId); + request.setCompanyId(depoAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new depo account id {}, account id {}", depoAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new depo account id {}, new account id {} (if id = -1 then insert is failed)", depoAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 2c74b2086..842c57325 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -15,18 +15,19 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.InformationAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; 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.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -37,10 +38,12 @@ import java.util.function.Function; @Service public class InformationAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final IMessageResolver messageResolver; private final ImdgProvider imdgProvider; private final ValidationHelper validationHelper; private final AccountService accountService; + private final RequestHelper requestHelper; private final Function infoAccountNewRequestValidator; private final Imdg informationAccountImdg; private final Imdg accountImdg; @@ -48,17 +51,21 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Autowired public InformationAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, IMessageResolver messageResolver, ImdgProvider imdgProvider, ValidationHelper validationHelper, AccountService accountService, + RequestHelper requestHelper, @Qualifier("informationAccountNewRequestValidator") Function infoAccountNewRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.messageResolver = messageResolver; this.imdgProvider = imdgProvider; this.validationHelper = validationHelper; this.accountService = accountService; + this.requestHelper = requestHelper; this.infoAccountNewRequestValidator = infoAccountNewRequestValidator; this.informationAccountImdg = imdgProvider.getImdg( IMDGDistributedNames.Map_InformationAccount, InformationAccount.class @@ -71,7 +78,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Override public void afterPropertiesSet() throws Exception { callback(InformationAccountNewRequest.class) - .setConsumer(this::informationAccountNew) + .setFunction(this::informationAccountNew) .forDestination(Consts.DESTINATION_INFORMATION_ACCOUNT_NEW, callbacks::put); init(); } @@ -91,11 +98,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali ImdgPredicate andPredicate = accountPredicateBuilder.and(companyIdPredicate, accountTypePredicate); Collection accountsAnlt = accountImdg.getCollectionObjectsByPredicate(andPredicate); if (accountsAnlt.isEmpty()) { - String errMsg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, "clearingAccountId")); - return new RequestInfoUpdate() - .setId(userRequest.getId()) - .setStatus(Status.Error) - .setMessage(errMsg); + return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "clearingAccountId"); } else if (accountsAnlt.size() > 1) { log.warn("Account for companyId 1 and accountType=ANLT contains multiply elements, use first"); } @@ -105,7 +108,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali Account account = new Account(); account.setAccount(accountValue); account.setAccountType(AccountType.Info.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(userRequest.getRequestPayload().getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -117,10 +120,11 @@ public class InformationAccountService extends QueueConsumer implements Initiali boolean txOk = false; Long informationAccountId = -1L; Long accountId = -1L; + InformationAccount informationAccount = null; try { accountId = accountImdg.insert(account); - InformationAccount informationAccount = new InformationAccount(); + informationAccount = new InformationAccount(); informationAccount.setId(newId); informationAccount.setAccountId(accountId); informationAccount.setClearingAccountId(anltAccount.getId()); @@ -130,11 +134,14 @@ public class InformationAccountService extends QueueConsumer implements Initiali } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(informationAccountId); + request.setCompanyId(informationAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new information account id {}, new account id {}", informationAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new information account id {}, new account id {} (if id = -1 then insert is failed)", informationAccountId, accountId); 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 new file mode 100644 index 000000000..fa6ceb421 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -0,0 +1,405 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.apache.kafka.common.header.Header; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +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.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.ActionType; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +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.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.Status; +import ru.spcex.clearing.platform.messaging.service.sender.CorrelationHeader; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.util.services.RequestHelper; +import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; +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.IMessageResolver; +import ru.spcex.platform.utils.log.ExceptionUtils; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Future; +import java.util.function.Function; + +@Service +public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final ValidationHelper validationHelper; + private final UserRoleVerification userRoleVerification; + + private final Imdg tradingClearingRegistryImdg; + private final Imdg depoAccountImdg; + private final Imdg clearingAccountImdg; + private final Imdg informationAccountImdg; + private final Imdg accountImdg; + private final Imdg companyImdg; + private final Imdg relationImdg; + + private final Function tradingClearingRegistryUpdateRequestValidator; + private final RequestHelper requestHelper; + private final Function tradingClearingRegistryNewRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; + + private final IMessageResolver messageResolver; + private final Producer kafkaProducer; + + public TradingClearingRegistryService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, + IMessageResolver messageResolver, + RequestHelper requestHelper, + @Qualifier("tradingClearingRegistryNewRequest") + Function tradingClearingRegistryNewRequestValidator, + @Qualifier("tradingClearingRegistryUpdateRequest") + Function tradingClearingRegistryUpdateRequestValidator, + @Qualifier("tradingClearingRegistryBlockRequest") + Function tradingClearingRegistryBlockRequestValidator) { + super(kafkaQueue, kafkaProducer); + this.kafkaProducer = kafkaProducer; + this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; + this.requestHelper = requestHelper; + this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator; + this.tradingClearingRegistryImdg = imdgProvider.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class); + this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; + this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; + this.messageResolver = messageResolver; + } + + @Override + public void afterPropertiesSet() throws Exception { + init(); + callback(TradingClearingRegistryNewRequest.class) + .setFunction(this::tradingClearingRegistryAutoNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); + callback(TradingClearingRegistryNewRequest.class) + .setFunction(this::tradingClearingRegistryNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); + callback(TradingClearingRegistryUpdateRequest.class) + .setFunction(this::tradingClearingRegistryUpdate) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put); + callback(CommonIdRequest.class) + .setFunction(this::tradingClearingRegistryBlock) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); + } + + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAccountId(req.getDepoAccountId()); + + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + Account depoAccountMain = depoAccount != null ? accountImdg.getSingleObjectByID(depoAccount.getAccountId()) : null; + + InformationAccount infoAccount = null; + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Long accountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account accountMain = accountImdg.getSingleObjectByID(accountId); + + + // TODO + // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. + // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и + // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, + // её стоит вынести на этап валидации запроса. + 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 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 activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); + String status = null; + if (depoAccountMain != null && depoAccountMain.getStatus() != null) { + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(accountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); + } else if (accountMain.getStatus() != null) { + if (activeStatuses.contains(accountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); + } + if (status == null) + return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, req.getMoneyAccountId()); + tradingClearingRegistry.setStatus(status); + + String tradingRegistryType; + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) { + sendResponse(userRequest, requestInfoUpdate, null); + return requestInfoUpdate; + } + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) { + sendResponse(userRequest, requestInfoUpdate, null); + return requestInfoUpdate; + } + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAccountId(req.getDepoAccountId()); + + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + + tradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String tradingRegistryType; + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + + sendResponse(userRequest, null, null); // to DESTINATION_TRADING_CLEARING_REGISTRY_REPLY + + return null; + } + + + private void sendResponse(BaseRequest o, Object response, Header correlationId) { + try { + Future send; + BaseRequest req = new BaseRequest<>(); + req.setId(o.getId()); + req.setActionType(ActionType.SYSTEM); + if (response != null) { + req.setRequestPayload(response); + } else { + //default response + RequestInfoUpdate success = new RequestInfoUpdate(); + success.setId(o.getId()); + success.setStatus(Status.Success); + req.setRequestPayload(success); + } + ProducerRecord respRec = new ProducerRecord<>(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_REPLY, req); + if (correlationId != null) { + respRec.headers().add(new CorrelationHeader(correlationId.value().clone())); + } + send = kafkaProducer.send(respRec); + send.get(); + } catch (Exception e) { + log.error(ExceptionUtils.getStackTrace(e)); + } + } + + public RequestInfoUpdate tradingClearingRegistryUpdate(BaseRequest userRequest) { + log.debug("TradingClearingRegistryUpdateRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryUpdateRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryUpdateRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + if (req.getStatus() != null) tradingClearingRegistry.setStatus(req.getStatus()); + + Instant now = Instant.now(); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { + log.debug("TradingClearingRegistryBlockRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + CommonIdRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + tradingClearingRegistry.setUpdated(Instant.now()); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } +} diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java index b2d53c3dc..e0e7383b0 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java @@ -19,6 +19,7 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.config.BeanConfiguration; import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; import ru.spcex.clearing.account.config.KafkaConfigTest; @@ -87,6 +88,7 @@ class AccountServiceTest { private Imdg accountTypeDictionaryImdg; private Imdg clearingMemberCategoryImdg; private Imdg relationImdg; + private Imdg serviceStatusDictionaryImdg; @PostConstruct private void init() { @@ -106,6 +108,13 @@ class AccountServiceTest { relationImdg = hazelcastServiceTest.getImdg( IMDGDistributedNames.Map_Relation, Relation.class ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); Company company = new Company(); company.setId(companyId); @@ -137,13 +146,13 @@ class AccountServiceTest { correspondentAccountNewRequest.setAccount(uniqueAccount); correspondentAccountNewRequest.setAccountType(AccountType.Corr.getKey()); correspondentAccountNewRequest.setCompanyId(companyId); - correspondentAccountNewRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountNewRequest.setStatus(ServiceStatus.Active.getKey()); Account predictableAccount = new Account(); predictableAccount.setAccount(uniqueAccount); predictableAccount.setAccountType(AccountType.Corr.getKey()); predictableAccount.setCompanyId(companyId); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); String jsonString = getJsonStringForNew(correspondentAccountNewRequest, 0L); @@ -169,14 +178,14 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.CLOSE.getKey()); + existAccount.setStatus(ServiceStatus.Closed.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); CorrespondentAccountUpdateRequest correspondentAccountUpdateRequest = new CorrespondentAccountUpdateRequest(); correspondentAccountUpdateRequest.setAccount(account); correspondentAccountUpdateRequest.setAccountType(AccountType.Corr.getKey()); - correspondentAccountUpdateRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountUpdateRequest.setStatus(ServiceStatus.Active.getKey()); correspondentAccountUpdateRequest.setCompanyId(companyId); correspondentAccountUpdateRequest.setId(accountId); @@ -204,7 +213,7 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); @@ -224,7 +233,7 @@ class AccountServiceTest { waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); Account resultBlock = accountImdg.getSingleObjectByID(accountId); - existAccount.setStatus(AccountStatus.BLOCKED.getKey()); + existAccount.setStatus(ServiceStatus.Blocked.getKey()); existAccount.setUpdated(resultBlock.getUpdated()); ACCOUNT_MATCHER.assertMatch(existAccount, resultBlock); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java index da67ac384..6644c2c85 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java @@ -37,6 +37,8 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; import static ru.spcex.clearing.account.utils.TestUtils.*; @@ -151,12 +153,13 @@ class ClearingAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Clrn.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); @@ -182,7 +185,7 @@ class ClearingAccountServiceTest { void clearingAccountUpdate() { Account existAccount = new Account(); existAccount.setAccount(ACCOUNT_VALUE); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setAccountType(AccountType.Clrn.getKey()); Long accountId = accountImdg.insert(existAccount); @@ -193,7 +196,7 @@ class ClearingAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); - predictableAccount.setStatus(AccountStatus.BLOCKED.getKey()); + predictableAccount.setStatus(ServiceStatus.Blocked.getKey()); predictableAccount.setAccountType(AccountType.Clrn.getKey()); clearingAccountImdg.insert(existClearingAccount); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java index 0d6ea0bcb..52276ea0c 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java @@ -36,8 +36,11 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.account.utils.TestUtils.*; +import static ru.spcex.clearing.account.utils.TestUtils.addRecordToKafka; +import static ru.spcex.clearing.account.utils.TestUtils.getJsonStringForNew; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { @@ -150,12 +153,13 @@ class DepoAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Depo.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java index 176245ab5..d03708acc 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java @@ -35,8 +35,11 @@ import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import javax.annotation.PostConstruct; import java.util.Map; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.account.utils.TestUtils.*; +import static ru.spcex.clearing.account.utils.TestUtils.addRecordToKafka; +import static ru.spcex.clearing.account.utils.TestUtils.getJsonStringForNew; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = { @@ -140,11 +143,13 @@ class InformationAccountServiceTest { 0, jsonString); - waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + //waiting for kafka producer send message (finale event) + verify(producer, timeout(30_000L).times(2)) + .send(producerRecord.capture()); Account predictableAccount = new Account(); predictableAccount.setAccountType(AccountType.Info.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java new file mode 100644 index 000000000..2961ebb7f --- /dev/null +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -0,0 +1,314 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.producer.MockProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; +import ru.spcex.clearing.account.config.BeanConfiguration; +import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; +import ru.spcex.clearing.account.config.KafkaConfigTest; +import ru.spcex.clearing.account.config.validation.TradingClearingRegistryValidationConfig; +import ru.spcex.clearing.account.config.validation.ValidationConfig; +import ru.spcex.clearing.account.utils.MatcherFactory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +import javax.annotation.PostConstruct; + +import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.account.utils.TestUtils.*; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, + TradingClearingRegistryValidationConfig.class, + TradingClearingRegistryService.class, + HazelcastServiceTestConfiguration.class, + KafkaConfigTest.class}) +class TradingClearingRegistryServiceTest { + public static final MatcherFactory.Matcher TRADING_CLEARING_REGISTRY_MATCHER = usingIgnoringFieldsComparator(); + private static final int PARTITION = 0; + private static final String TOPIC_ACCOUNT_NEW = Consts.ACCOUNT_NEW_SDF01; + private static final String account = "123456789123"; + private static final Long companyId = 0L; + private static final Long relationId = 0L; + @Autowired + TradingClearingRegistryService tradingClearingRegistryService; + @Autowired + @Qualifier("hazelcastServiceTest") + private HazelcastService hazelcastServiceTest; + + @Captor + private ArgumentCaptor producerRecord; + @SpyBean + private MockProducer producer; + + private Imdg tradingClearingRegistryImdg; + private Imdg companyImdg; + private Imdg serviceStatusDictionaryImdg; + + private Imdg clearingAccountImdg; + private Long clearingAccountId; + + private Imdg depoAccountImdg; + private Long depoAccountId; + + private Imdg informationAccountImdg; + private Long infoAccountId; + + private Imdg accountImdg; + private Long accountId; + + private Long account2Id; + + static int newRequestCnt = 0; + + @PostConstruct + private void init() { + hazelcastServiceTest.waitAvailable(); + tradingClearingRegistryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + companyImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Company, Company.class + ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + accountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Account, Account.class + ); + clearingAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + depoAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_DepoAccount, DepoAccount.class + ); + informationAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); + + Company company = new Company(); + company.setId(companyId); + company.setWorkflowStatus(WorkflowStatus.Active.getKey()); + company.setClearingCode("77"); + companyImdg.insert(company); + + Account account = new Account(); + account.setStatus(ServiceStatus.Active.getKey()); + accountId = accountImdg.insert(account); + + account2Id = accountImdg.insert(account); + + DepoAccount depoAccount = new DepoAccount(); + depoAccount.setAccountId(accountId); + depoAccount.setDepoAccountType("DAT"); + depoAccountId = depoAccountImdg.insert(depoAccount); + + ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount.setAccountId(accountId); + clearingAccount.setClearingAccountType("CAT"); + clearingAccountId = clearingAccountImdg.insert(clearingAccount); + + InformationAccount informationAccount = new InformationAccount(); + informationAccount.setAccountId(account2Id); + infoAccountId = informationAccountImdg.insert(informationAccount); + } + + @Test + void tradingClearingRegistryNew_moneyAccount_clearingAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("CAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + @Test + void tradingClearingRegistryNew_moneyAccount_informationAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(infoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(infoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType(TradingClearingRegistryType.Owner_A.getKey()); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + + @Test + void tradingClearingRegistryNew_depoAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + tradingClearingRegistryNewRequest.setDepoAccountId(depoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077CDAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setDepoAccountId(depoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("DAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.C.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + @Test + void tradingClearingRegistryUpdate() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + TradingClearingRegistryUpdateRequest tradingClearingRegistryUpdateRequest = new TradingClearingRegistryUpdateRequest(); + tradingClearingRegistryUpdateRequest.setStatus(ServiceStatus.Active.getKey()); + tradingClearingRegistryUpdateRequest.setId(registryId); + + String jsonString = getJsonStringForUPDATE(tradingClearingRegistryUpdateRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } + + @Test + void tradingClearingRegistryBlock() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest(); + tradingClearingRegistryDeleteRequest.setId(registryId); + + String jsonString = getJsonStringForDELETE(tradingClearingRegistryDeleteRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } +} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java index a1c437ad4..7c4452737 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java @@ -7,7 +7,7 @@ import ru.spcex.clearing.backendapi.service.IOperator; import java.util.Objects; import java.util.concurrent.ExecutionException; -public class AbstractQueueController { +public abstract class AbstractQueueController { private final IOperator operator; public AbstractQueueController(IOperator operator) { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java deleted file mode 100644 index cfc8b71a0..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java +++ /dev/null @@ -1,40 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.account; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Deprecated -@Controller -@RequestMapping("/account-balances") -public class AccountBalanceController { - private final IStateLoader stateLoader; - - @Autowired - public AccountBalanceController(IStateLoader stateLoader) { - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all account balances.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountController.java index fd927a33b..4e9297dff 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountController.java @@ -16,7 +16,8 @@ import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAc import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.controller.response.entity.account.BankAccountBackendGetById; +import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetByIdResponse; +import ru.spcex.clearing.backendapi.meta.GetResponseFactory; import ru.spcex.clearing.backendapi.service.IOperator; import ru.spcex.clearing.backendapi.service.IStateLoader; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -31,11 +32,13 @@ import java.util.concurrent.ExecutionException; @RequestMapping("/accounting/bank-accounts") public class BankAccountController extends AbstractQueueController { private final IStateLoader stateLoader; + private final GetResponseFactory responseMetaFactory; @Autowired - public BankAccountController(IOperator operator, IStateLoader stateLoader) { + public BankAccountController(GetResponseFactory responseMetaFactory, IOperator operator, IStateLoader stateLoader) { super(operator); this.stateLoader = stateLoader; + this.responseMetaFactory = responseMetaFactory; } @ApiOperation(value = "create bank account.") @@ -73,14 +76,17 @@ public class BankAccountController extends AbstractQueueController { } @ApiOperation(value = "get bank account.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = BankAccountBackendGetById.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetByIdResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - public BankAccountBackendGetById getById(@ApiParam(value = "Идентификатор объекта", required = true, example = "1234") + public CommonGetByIdResponse getById(@ApiParam(value = "Идентификатор объекта", required = true, example = "1234") @PathVariable("id") Long id) { Optional bankAccount = stateLoader.getById(id, IMDGDistributedNames.Map_BankAccount, BankAccount.class); - BankAccountBackendGetById response = new BankAccountBackendGetById(); - bankAccount.ifPresentOrElse(response::fromEntity, () -> response.setCode(404)); + CommonGetByIdResponse response = new CommonGetByIdResponse(); + bankAccount.ifPresentOrElse( r -> { + Map extractedByMeta = responseMetaFactory.responseFromObject(r); + response.fromEntity(extractedByMeta); + }, () -> response.setCode(404)); return response; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolController.java index b14070c55..6814c19e2 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolController.java @@ -10,7 +10,10 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; +import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanySymbolNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanySymbolUpdateAction; +import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactNewAction; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; @@ -35,6 +38,17 @@ public class CompanySymbolController extends AbstractQueueController { this.stateLoader = stateLoader; } + + @ApiOperation(value = "create company symbol.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) + @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) + @ResponseBody + public CudResponse create( + @ApiParam(value = "Значения полей нового объекта.", required = true) + @RequestBody CompanySymbolNewAction companySymbolNewAction) throws ExecutionException, InterruptedException { + return processRequest(Consts.DESTINATION_COMPANY_SYMBOL_NEW, companySymbolNewAction); + } + @ApiOperation(value = "update company symbol.") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) @@ -58,4 +72,15 @@ public class CompanySymbolController extends AbstractQueueController { response.fromEntity(all); return response; } + + @ApiOperation(value = "delete company symbol.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)}) + @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) + @ResponseBody + public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234") + @PathVariable("id") Long id) throws ExecutionException, InterruptedException { + CommonDeleteAction deleteAction = new CommonDeleteAction(); + deleteAction.setId(id); + return processRequest(Consts.DESTINATION_COMPANY_SYMBOL_DELETE, deleteAction); + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactController.java index aaeba5b88..82a85bddf 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactController.java @@ -10,6 +10,8 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import ru.clearing.classes.statics.data.profile.Contact; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; +import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactUpdateAction; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; @@ -47,6 +49,27 @@ public class ContactController extends AbstractQueueController { return processRequest(Consts.DESTINATION_CONTACT_UPDATE, contactUpdateAction); } + @ApiOperation(value = "create company contact.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) + @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) + @ResponseBody + public CudResponse create( + @ApiParam(value = "Значения полей нового объекта.", required = true) + @RequestBody ContactNewAction contactNewAction) throws ExecutionException, InterruptedException { + return processRequest(Consts.DESTINATION_CONTACT_NEW, contactNewAction); + } + + @ApiOperation(value = "delete contact.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)}) + @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) + @ResponseBody + public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234") + @PathVariable("id") Long id) throws ExecutionException, InterruptedException { + CommonDeleteAction deleteAction = new CommonDeleteAction(); + deleteAction.setId(id); + return processRequest(Consts.DESTINATION_CONTACT_DELETE, deleteAction); + } + @ApiOperation(value = "get all Contacts.") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) @RequestMapping(method = RequestMethod.GET) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java deleted file mode 100644 index 625b82d90..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-assets") -public class LiabilitiesClaimsAssetController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsAssetController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsAssets.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsAssets, - LiabilitiesClaimsAssets.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java deleted file mode 100644 index fc5cc1a72..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-money") -public class LiabilitiesClaimsMoneyController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsMoneyController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsMoney.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsMoney, - LiabilitiesClaimsMoney.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java deleted file mode 100644 index ba837d2b3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/admitted-deal-registers") -public class AdmittedDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public AdmittedDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all admitted deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_AdmittedDealRegister, - AdmittedDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java deleted file mode 100644 index a5216bdd3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/balance-registers") -public class BalanceRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public BalanceRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money balance registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_BalanceRegister, - BalanceRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java deleted file mode 100644 index 55a0f6fe9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/clearmember-registers") -public class ClearMemberRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public ClearMemberRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money ClearMemberRegisters.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_ClearMemberRegister, - ClearMemberRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java deleted file mode 100644 index d0c485e6d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/covered-deal-registers") -public class CoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all covered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_CoveredDealRegister, - CoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java deleted file mode 100644 index e9ade9fa9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/deal-registers") -public class DealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public DealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_DealRegister, - DealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java deleted file mode 100644 index cb07945b6..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/order-registers") -public class OrderRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public OrderRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all order registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_OrderRegister, - OrderRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java new file mode 100644 index 000000000..b77031539 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java @@ -0,0 +1,60 @@ +package ru.spcex.clearing.backendapi.controller.queue.register; + +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.registry.RSplitDepositActionNew; +import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; +import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; +import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; +import ru.spcex.clearing.backendapi.service.IOperator; +import ru.spcex.clearing.backendapi.service.IStateLoader; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; + +import java.util.Collection; +import java.util.Map; +import java.util.concurrent.ExecutionException; + +@Controller +@RequestMapping("/registries") +public class RegistryController extends AbstractQueueController { + private final IStateLoader stateLoader; + + @Autowired + public RegistryController(IOperator operator, IStateLoader stateLoader) { + super(operator); + this.stateLoader = stateLoader; + } + + @ApiOperation(value = "get all registries.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @RequestMapping(method = RequestMethod.GET) + @ResponseBody + public CommonGetAllResponse getAll() { + Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Registry, Registry.class); + CommonGetAllResponse response = new CommonGetAllResponse(); + response.fromEntity(all); + return response; + } + + @ApiOperation(value = "Досрочное изъятие части денежных средств по договору") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) + @RequestMapping(value = "/splitDeposit", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @ResponseBody + public CudResponse splitDepositAction( + @ApiParam(value = "Параметры команды в JSON формате.", required = true) + @RequestBody RSplitDepositActionNew rSplitDepositActionNew) throws ExecutionException, InterruptedException { + return processRequest(Consts.REGISTRY_SPLIT_DEPOSIT_ACTION, rSplitDepositActionNew); + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java deleted file mode 100644 index 89be3464d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/uncovered-deal-registers") -public class UncoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public UncoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all uncovered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_UncoveredDealRegister, - UncoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java index 0d984ff0f..50c5984ab 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java @@ -10,9 +10,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; @@ -69,7 +69,7 @@ public class TradingClearingRegistryController extends AbstractQueueController { @PathVariable("id") Long id) throws ExecutionException, InterruptedException { CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction); + return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } @ApiOperation(value = "get TradingClearingRegistry by id.") diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java index 18856e186..cc00f19eb 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java @@ -16,7 +16,9 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import java.util.Collection; import java.util.Map; -@Deprecated //todo не лишний ли этот контроллер? См. CudMoneyMarketSecurityController @Deprecated +/** + * SecurityController и MoneyMarketSecurityController разные контроллеры, не путать. + */ @Controller @RequestMapping("/securities") public class SecurityController { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java deleted file mode 100644 index 08b6fe8cc..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.utilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateUpdateAction; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; -import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; - -import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ExecutionException; - -@Controller -@RequestMapping("/utilities/key-rates") -public class CudKeyRateController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CudKeyRateController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "create key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse add( - @ApiParam(value = "Параметры команды в JSON формате.", required = true) - @RequestBody KeyRateNewAction keyRateNewAction) throws ExecutionException, InterruptedException { - return processRequest(Consts.DESTINATION_KEY_RATE_NEW, keyRateNewAction); - } - - @ApiOperation(value = "update key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse update( - @ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234") - @PathVariable("id") Long id, - @ApiParam(value = "Новые значения полей объекта.", required = true) - @RequestBody KeyRateUpdateAction keyRateUpdateAction) throws ExecutionException, InterruptedException { - keyRateUpdateAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_UPDATE, keyRateUpdateAction); - } - - @ApiOperation(value = "delete key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) - @ResponseBody - public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234") - @PathVariable("id") Long id) throws ExecutionException, InterruptedException { - CommonDeleteAction deleteAction = new CommonDeleteAction(); - deleteAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_DELETE, deleteAction); - } - - @ApiOperation(value = "get all KeyRate's.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_KeyRate, KeyRate.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java index 482567c0a..df1cd0349 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java @@ -15,7 +15,6 @@ import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetByIdResponse; -import ru.spcex.clearing.backendapi.controller.response.entity.account.BankAccountBackendGetById; import ru.spcex.clearing.backendapi.errors.NotFound404Exception; import ru.spcex.clearing.backendapi.meta.GetResponseFactory; import ru.spcex.clearing.backendapi.service.IOperator; @@ -51,7 +50,7 @@ public class StatementController extends AbstractQueueController { } @ApiOperation(value = "get Statement by Id.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = BankAccountBackendGetById.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetByIdResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public CommonGetByIdResponse getById(@ApiParam(value = "Идентификатор объекта", required = true, example = "1234") diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolNewAction.java new file mode 100644 index 000000000..0ed4dcd1a --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolNewAction.java @@ -0,0 +1,59 @@ +package ru.spcex.clearing.backendapi.controller.request.cud.company; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import ru.spcex.clearing.backendapi.domain.actions.IAction; +import ru.spcex.clearing.platform.messaging.domain.ActionType; +import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest; + +public class CompanySymbolNewAction implements IAction { + @ApiModelProperty(value = "Идентификатор Компании", example = "1234") + @JsonProperty + private Long companyId; + @ApiModelProperty(value = "Идентификатор справочника", example = "ABCD") + @JsonProperty + private String companySymbol; + @ApiModelProperty(value = "Значение справочника", example = "Company description example") + @JsonProperty + private String companySymbolValue; + + @Override + public CompanySymbolUpdateRequest toRequest() { + CompanySymbolUpdateRequest request = new CompanySymbolUpdateRequest(); + request.setCompanyId(this.companyId); + request.setCompanySymbol(this.companySymbol); + request.setCompanySymbolValue(this.companySymbolValue); + return request; + } + + @ApiModelProperty(hidden = true) + @Override + public ActionType getActionType() { + return ActionType.NEW; + } + + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public String getCompanySymbol() { + return companySymbol; + } + + public void setCompanySymbol(String companySymbol) { + this.companySymbol = companySymbol; + } + + public String getCompanySymbolValue() { + return companySymbolValue; + } + + public void setCompanySymbolValue(String companySymbolValue) { + this.companySymbolValue = companySymbolValue; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolUpdateAction.java index e9be0f1f9..77ba70c75 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolUpdateAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/company/CompanySymbolUpdateAction.java @@ -14,9 +14,6 @@ public class CompanySymbolUpdateAction implements IAction { + + @ApiModelProperty(value = "Наименование компании", example = "ABCD") + @JsonProperty + private Long companyId; + @ApiModelProperty(value = "Идентификатор справочника", example = "ABCD") + @JsonProperty + private String contactType; + @ApiModelProperty(value = "Значение справочника", example = "example contact string") + @JsonProperty + private String contactValue; + + @Override + public ContactNewRequest toRequest() { + ContactNewRequest request = new ContactNewRequest(); + request.setCompanyId(this.companyId); + request.setContactType(this.contactType); + request.setContactValue(this.contactValue); + return request; + } + + @ApiModelProperty(hidden = true) + @Override + public ActionType getActionType() { + return ActionType.NEW; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public String getContactType() { + return contactType; + } + + public void setContactType(String contactType) { + this.contactType = contactType; + } + + public String getContactValue() { + return contactValue; + } + + public void setContactValue(String contactValue) { + this.contactValue = contactValue; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/RSplitDepositActionNew.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/RSplitDepositActionNew.java new file mode 100644 index 000000000..1abe96c9f --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/RSplitDepositActionNew.java @@ -0,0 +1,99 @@ +package ru.spcex.clearing.backendapi.controller.request.cud.registry; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.StringUtils; +import ru.spcex.clearing.backendapi.domain.actions.IAction; +import ru.spcex.clearing.backendapi.errors.BackEndError; +import ru.spcex.clearing.platform.messaging.domain.ActionType; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistrySplitDepositActionRequest; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; +import ru.spcex.platform.utils.enumeration.EnumMessage; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +public class RSplitDepositActionNew implements IAction { + + @ApiModelProperty(value = "Основание", example = "Основание ...") + @JsonProperty + public String comment; + @ApiModelProperty(value = "Сумма для вывода", example = "1600.20") + @JsonProperty + public BigDecimal outboundAmount; + @ApiModelProperty(value = "Дата возврата", example = "2022-12-25") + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) + @JsonProperty + public LocalDate refundDate; + @ApiModelProperty(value = "Договор для разделения", example = "ABCD") + @JsonProperty + public String contract; + + @Override + public Collection validate() { + List errors = new ArrayList<>(); + if (StringUtils.isEmpty(this.contract)) + errors.add(new EnumMessage(BackEndError.ValidationError, "contract")); + if (this.refundDate == null) + errors.add(new EnumMessage(BackEndError.ValidationError, "refundDate")); + if (this.outboundAmount == null) + errors.add(new EnumMessage(BackEndError.ValidationError, "outboundAmount")); + return errors.isEmpty() ? Collections.emptyList() : errors; + } + + @Override + public RegistrySplitDepositActionRequest toRequest() { + var req = new RegistrySplitDepositActionRequest(); + req.setComment(this.comment); + req.setOutboundAmount(this.outboundAmount); + req.setRefundDate(this.refundDate); + req.setContract(this.contract); + return req; + } + + @ApiModelProperty(hidden = true) + @Override + public ActionType getActionType() { + return ActionType.NEW; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public BigDecimal getOutboundAmount() { + return outboundAmount; + } + + public void setOutboundAmount(BigDecimal outboundAmount) { + this.outboundAmount = outboundAmount; + } + + public LocalDate getRefundDate() { + return refundDate; + } + + public void setRefundDate(LocalDate refundDate) { + this.refundDate = refundDate; + } + + public String getContract() { + return contract; + } + + public void setContract(String contract) { + this.contract = contract; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/LauncherNew.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/LauncherNew.java index 9977df62f..e602b6e1e 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/LauncherNew.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/LauncherNew.java @@ -14,13 +14,13 @@ import java.util.Collections; import java.util.List; public class LauncherNew implements IAction { - @ApiModelProperty(value = "Идентификатор единоличного исполнительного органа", example = "ABCD") + @ApiModelProperty(value = "Код задачи", example = "ABCD") @JsonProperty private String task; - @ApiModelProperty(value = "Идентификатор инициатора", example = "1000") + @ApiModelProperty(value = "Наименование инициатора", example = "1000") @JsonProperty private Long companyId; - @ApiModelProperty(value = "Идентификатор инструмента", example = "1000") + @ApiModelProperty(value = "Наименование инструмента", example = "1000") @JsonProperty private Long securityId; @JsonIgnore diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java index 6bba90535..6867b0fca 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java @@ -40,7 +40,11 @@ public class PlannerNewAction implements IAction { @ApiModelProperty(value = "Секция", example = "ABCD") @JsonProperty - public String market; + public String section; + + @ApiModelProperty(value = "Тип клиринговой сессии", example = "ABCD") + @JsonProperty + public String sessionType; @ApiModelProperty(value = "Статус", example = "ABCD") @JsonProperty @@ -60,7 +64,8 @@ public class PlannerNewAction implements IAction { plannerNewRequest.setTask(task); plannerNewRequest.setTaskTime(taskTime); plannerNewRequest.setClearingDate(clearingDate); - plannerNewRequest.setMarket(market); + plannerNewRequest.setSection(section); + plannerNewRequest.setSessionType(sessionType); plannerNewRequest.setTaskStatus(taskStatus); plannerNewRequest.setCompanyId(companyId); plannerNewRequest.setSecurityId(securityId); @@ -115,12 +120,28 @@ public class PlannerNewAction implements IAction { this.clearingDate = clearingDate; } - public String getMarket() { - return market; + public String getSection() { + return section; } - public void setMarket(String market) { - this.market = market; + public void setSection(String section) { + this.section = section; + } + + public String getSessionType() { + return sessionType; + } + + public void setSessionType(String sessionType) { + this.sessionType = sessionType; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; } public String getTaskStatus() { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java index 6ab3eb845..3b8ce5635 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java @@ -27,6 +27,12 @@ public class PlannerTemplateNewAction implements IAction, WithI @ApiModelProperty(value = "Секция", example = "ABCD") @JsonProperty - public String market; + public String section; + + @ApiModelProperty(value = "Тип клиринговой сессии", example = "ABCD") + @JsonProperty + public String sessionType; @ApiModelProperty(value = "Статус", example = "ABCD") @JsonProperty @@ -66,7 +70,8 @@ public class PlannerUpdateAction implements IAction, WithI plannerUpdateRequest.setTask(task); plannerUpdateRequest.setTaskTime(taskTime); plannerUpdateRequest.setClearingDate(clearingDate); - plannerUpdateRequest.setMarket(market); + plannerUpdateRequest.setSection(section); + plannerUpdateRequest.setSessionType(sessionType); plannerUpdateRequest.setTaskStatus(taskStatus); plannerUpdateRequest.setCompanyId(companyId); plannerUpdateRequest.setSecurityId(securityId); @@ -133,12 +138,20 @@ public class PlannerUpdateAction implements IAction, WithI this.clearingDate = clearingDate; } - public String getMarket() { - return market; + public String getSection() { + return section; } - public void setMarket(String market) { - this.market = market; + public void setSection(String section) { + this.section = section; + } + + public String getSessionType() { + return sessionType; + } + + public void setSessionType(String sessionType) { + this.sessionType = sessionType; } public String getTaskStatus() { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java index fc5f8bc61..e8c258b59 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java @@ -21,7 +21,25 @@ import java.util.Collections; import java.util.List; public class MoneyMarketSecurityNewAction implements IAction, WithSecuritySymbol { - @ApiModelProperty(value = "Дата начала действия", example = "2022-01-20") + @ApiModelProperty(value = "Код инструмента", example = "CDE") + @JsonProperty + public String securitySymbol; + @ApiModelProperty(value = "Краткое наименование инструмента", example = "NAME") + @JsonProperty + public String shortName; + @ApiModelProperty(value = "Полное наименование инструмента", example = "NAME A") + @JsonProperty + public String fullName; + @ApiModelProperty(value = "Размер лота", example = "21.55") + @JsonProperty + public BigDecimal lotSize; + @ApiModelProperty(value = "Номинал", example = "20.5554") + @JsonProperty + public BigDecimal nominalValue; + @ApiModelProperty(value = "Наименование валюты номинала", example = "RUB") + @JsonProperty + public String nominalCurrency; + @ApiModelProperty(value = "Дата начала действия", example = "2022-02-20") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") @JsonDeserialize(using = LocalDateDeserializer.class) @JsonProperty @@ -31,27 +49,30 @@ public class MoneyMarketSecurityNewAction implements IAction validate() { @@ -70,8 +91,8 @@ public class MoneyMarketSecurityNewAction implements IAction 0 ? errors : Collections.emptyList(); @@ -89,6 +110,13 @@ public class MoneyMarketSecurityNewAction implements IAction { - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @Override - public Collection validate() { - if (this.startDate == null) - return List.of(new EnumMessage(BackEndError.ValidationError, "startDate")); - else return Collections.emptyList(); - } - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.NEW; - } - - @Override - public KeyRateNewRequest toRequest() { - var req = new KeyRateNewRequest(); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java deleted file mode 100644 index 250506c75..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java +++ /dev/null @@ -1,92 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.request.cud.utilities; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.domain.actions.IAction; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateUpdateAction implements IAction { - @ApiModelProperty(hidden = true) - @JsonProperty - public Long id; - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.UPDATE; - } - - @Override - public KeyRateUpdateRequest toRequest() { - var req = new KeyRateUpdateRequest(); - req.setId(this.getId()); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetAll.java index 46a4a0f1e..baa8ffbd9 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetAll.java @@ -35,6 +35,7 @@ public class AccountBackendGetAll extends BasicSpcexResponse { singleItem.setRelationId(account.getRelationId()); singleItem.setStatus(account.getStatus()); singleItem.setProcessingSign(account.getProcessingSign()); + singleItem.setCompanyId(account.getCompanyId()); singleItem.setCreated(account.getCreated()); singleItem.setUpdated(account.getUpdated()); payload.getItems().add(singleItem); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetFields.java index 7d866ad70..3a23382f2 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/AccountBackendGetFields.java @@ -20,6 +20,8 @@ public class AccountBackendGetFields { @JsonProperty private String processingSign; @JsonProperty + private Long companyId; + @JsonProperty @JsonSerialize(using = InstantSerializer.class) private Instant created; @JsonProperty @@ -74,6 +76,14 @@ public class AccountBackendGetFields { this.processingSign = processingSign; } + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + public Instant getCreated() { return created; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java deleted file mode 100644 index 1c1068680..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java +++ /dev/null @@ -1,64 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.account; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.account.BankAccount; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * Банковские реквизиты для перечисления денежных средств - **/ -@ApiModel(description = "Ответ при получении объектов BankAccount.") -public class BankAccountBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private BankAccountBackendPayload payload = new BankAccountBackendPayload(); - - public BankAccountBackendPayload getPayload() { - return payload; - } - - public void setPayload(BankAccountBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection bankAccounts) { - var payload = this.getPayload(); - for (BankAccount bankAccount : bankAccounts) { - var singleItem = new BankAccountBackendGetFields(); - singleItem.setId(bankAccount.getId()); - singleItem.setAccountId(bankAccount.getAccountId()); - singleItem.setBankIdentificationCode(bankAccount.getBankIdentificationCode()); - singleItem.setBankName(bankAccount.getBankName()); - singleItem.setCorrespondentAccount(bankAccount.getCorrespondentAccount()); - singleItem.setCorrespondentAccountName(bankAccount.getCorrespondentAccountName()); - singleItem.setCurrency(bankAccount.getCurrency()); - singleItem.setDestination(bankAccount.getDestination()); - singleItem.setIban(bankAccount.getIban()); - singleItem.setInternationalTransferSign(bankAccount.getInternationalTransferSign()); - singleItem.setSwiftCode(bankAccount.getSwiftCode()); - singleItem.setTaxpayerIdentificationNumber(bankAccount.getTaxpayerIdentificationNumber()); - singleItem.setTaxRegistrationReasonCode(bankAccount.getTaxRegistrationReasonCode()); - payload.getItems().add(singleItem); - } - } - - private static class BankAccountBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java deleted file mode 100644 index 21c23f35d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java +++ /dev/null @@ -1,48 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.account; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.account.BankAccount; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -/** - * Банковские реквизиты для перечисления денежных средств - * - * @ApiModel(description = "Ответ в результате отправки операции в топик Kafka.") - * @ApiModelProperty(value = "Информация о принятом запросе") - **/ -@ApiModel(description = "Ответ при получении объекта BankAccount.") -public class BankAccountBackendGetById extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Поля объекта") - private BankAccountBackendGetFields payload; - - public BankAccountBackendGetFields getPayload() { - return payload; - } - - public void setPayload(BankAccountBackendGetFields payload) { - this.payload = payload; - } - - public void fromEntity(BankAccount bankAccount) { - var payload = new BankAccountBackendGetFields(); - this.setPayload(payload); - payload.setId(bankAccount.getId()); - payload.setAccountId(bankAccount.getAccountId()); - payload.setBankIdentificationCode(bankAccount.getBankIdentificationCode()); - payload.setBankName(bankAccount.getBankName()); - payload.setCorrespondentAccount(bankAccount.getCorrespondentAccount()); - payload.setCorrespondentAccountName(bankAccount.getCorrespondentAccountName()); - payload.setCurrency(bankAccount.getCurrency()); - payload.setDestination(bankAccount.getDestination()); - payload.setIban(bankAccount.getIban()); - payload.setInternationalTransferSign(bankAccount.getInternationalTransferSign()); - payload.setSwiftCode(bankAccount.getSwiftCode()); - payload.setTaxpayerIdentificationNumber(bankAccount.getTaxpayerIdentificationNumber()); - payload.setTaxRegistrationReasonCode(bankAccount.getTaxRegistrationReasonCode()); - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java deleted file mode 100644 index 1c90f44de..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java +++ /dev/null @@ -1,150 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.account; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; - -public class BankAccountBackendGetFields { - @JsonProperty - @ApiModelProperty(value = "Идентификатор", example = "1234") - private Long id; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private Long accountId; - @JsonProperty - @ApiModelProperty(value = "", example = "ABCD") - private String bankIdentificationCode; - @JsonProperty - @ApiModelProperty(value = "Имя банка", example = "Сбербанк") - private String bankName; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String correspondentAccount; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String correspondentAccountName; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String currency; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String destination; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String iban; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String internationalTransferSign; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String swiftCode; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String taxpayerIdentificationNumber; - @JsonProperty - @ApiModelProperty(value = "", example = "") - private String taxRegistrationReasonCode; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAccountId() { - return accountId; - } - - public void setAccountId(Long value) { - this.accountId = value; - } - - public String getBankIdentificationCode() { - return bankIdentificationCode; - } - - public void setBankIdentificationCode(String value) { - this.bankIdentificationCode = value; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(String value) { - this.bankName = value; - } - - public String getCorrespondentAccount() { - return correspondentAccount; - } - - public void setCorrespondentAccount(String value) { - this.correspondentAccount = value; - } - - public String getCorrespondentAccountName() { - return correspondentAccountName; - } - - public void setCorrespondentAccountName(String value) { - this.correspondentAccountName = value; - } - - public String getCurrency() { - return currency; - } - - public void setCurrency(String value) { - this.currency = value; - } - - public String getDestination() { - return destination; - } - - public void setDestination(String value) { - this.destination = value; - } - - public String getIban() { - return iban; - } - - public void setIban(String value) { - this.iban = value; - } - - public String getInternationalTransferSign() { - return internationalTransferSign; - } - - public void setInternationalTransferSign(String value) { - this.internationalTransferSign = value; - } - - public String getSwiftCode() { - return swiftCode; - } - - public void setSwiftCode(String value) { - this.swiftCode = value; - } - - public String getTaxpayerIdentificationNumber() { - return taxpayerIdentificationNumber; - } - - public void setTaxpayerIdentificationNumber(String value) { - this.taxpayerIdentificationNumber = value; - } - - public String getTaxRegistrationReasonCode() { - return taxRegistrationReasonCode; - } - - public void setTaxRegistrationReasonCode(String value) { - this.taxRegistrationReasonCode = value; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java index b44738709..aa69dd436 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java @@ -51,18 +51,26 @@ public class CompanyBackendGetAll extends BasicSpcexResponse { singleItem.setFullName(company.getFullName()); singleItem.setCreated(company.getCreated()); singleItem.setUpdated(company.getUpdated()); - CompanyInfo profile = company.getProfile(); - if (profile != null) { - singleItem.setCorporationSoleType(profile.getCorporationSoleType()); - singleItem.setCountryCode(profile.getCountryCode()); - singleItem.setDescription(profile.getDescription()); - singleItem.setProfessionalSign(profile.getProfessionalSign()); - singleItem.setLegalKind(profile.getLegalKind()); - singleItem.setOrganizationType(profile.getOrganizationType()); - singleItem.setResidence(profile.getResidence()); - singleItem.setShortNameEng(profile.getShortNameEng()); - singleItem.setFullNameEng(profile.getFullNameEng()); - } +// CompanyInfo profile = company.getProfile(); +// if (profile != null) { +// singleItem.setCorporationSoleType(profile.getCorporationSoleType()); +// singleItem.setCountryCode(profile.getCountryCode()); +// singleItem.setDescription(profile.getDescription()); +// singleItem.setProfessionalSign(profile.getProfessionalSign()); +// singleItem.setLegalKind(profile.getLegalKind()); +// singleItem.setOrganizationType(profile.getOrganizationType()); +// singleItem.setResidence(profile.getResidence()); +// singleItem.setShortNameEng(profile.getShortNameEng()); +// singleItem.setFullNameEng(profile.getFullNameEng()); +// } + /* todo + CompanySymbol companySymbol = ; + if (companySymbol!=null) { + + singleItem.setCompanySymbol(profile.getCompanySymbol()); + singleItem.setCompanySymbolValue(profile.getCompanySymbolValue()); + }*/ + payload.getItems().add(singleItem); } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetFields.java index 97b4fb072..06089d595 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetFields.java @@ -16,37 +16,21 @@ public class CompanyBackendGetFields { @JsonProperty private String registrationCode; @JsonProperty - private String workflowStatus; // WorkflowStatusDictionary + private String workflowStatus; @JsonProperty private String shortName; @JsonProperty private String fullName; + @JsonProperty + private String companySymbol; + @JsonProperty + private String companySymbolValue; @JsonSerialize(using = InstantSerializer.class) @JsonProperty private Instant created; @JsonSerialize(using = InstantSerializer.class) @JsonProperty private Instant updated; - @JsonProperty - private String clearingMemberCategory; // ref CHAR(4), - @JsonProperty - private String corporationSoleType; // ref CHAR(4), - @JsonProperty - private String countryCode; //ref CHAR(4), - @JsonProperty - private String description; - @JsonProperty - private String professionalSign; // ref CHAR(4), - @JsonProperty - private String legalKind; // ref CHAR(4), - @JsonProperty - private String organizationType; // ref CHAR(4), - @JsonProperty - private String residence; // ref CHAR(4), - @JsonProperty - private String shortNameEng; - @JsonProperty - private String fullNameEng; public Long getId() { return id; @@ -120,256 +104,19 @@ public class CompanyBackendGetFields { this.updated = updated; } - public String getClearingMemberCategory() { - return clearingMemberCategory; + public String getCompanySymbol() { + return companySymbol; } - public void setClearingMemberCategory(String clearingMemberCategory) { - this.clearingMemberCategory = clearingMemberCategory; + public void setCompanySymbol(String companySymbol) { + this.companySymbol = companySymbol; } - public String getCorporationSoleType() { - return corporationSoleType; + public String getCompanySymbolValue() { + return companySymbolValue; } - public void setCorporationSoleType(String corporationSoleType) { - this.corporationSoleType = corporationSoleType; + public void setCompanySymbolValue(String companySymbolValue) { + this.companySymbolValue = companySymbolValue; } - - public String getCountryCode() { - return countryCode; - } - - public void setCountryCode(String countryCode) { - this.countryCode = countryCode; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getProfessionalSign() { - return professionalSign; - } - - public void setProfessionalSign(String professionalSign) { - this.professionalSign = professionalSign; - } - - public String getLegalKind() { - return legalKind; - } - - public void setLegalKind(String legalKind) { - this.legalKind = legalKind; - } - - public String getOrganizationType() { - return organizationType; - } - - public void setOrganizationType(String organizationType) { - this.organizationType = organizationType; - } - - public String getResidence() { - return residence; - } - - public void setResidence(String residence) { - this.residence = residence; - } - - public String getShortNameEng() { - return shortNameEng; - } - - public void setShortNameEng(String shortNameEng) { - this.shortNameEng = shortNameEng; - } - - public String getFullNameEng() { - return fullNameEng; - } - - public void setFullNameEng(String fullNameEng) { - this.fullNameEng = fullNameEng; - } - - // static class CompanyInfoFields { -// @JsonProperty -// private Long id; -// @JsonProperty -// private Long companyId; // Company.CompanyInfo.companyId = CompanyInfo.id -// @JsonProperty -// private String clearingMemberCategory; // ref CHAR(4), -// @JsonProperty -// private String corporationSoleType; // ref CHAR(4), -// @JsonProperty -// private String countryCode; //ref CHAR(4), -// @JsonProperty -// private String description; -// @JsonProperty -// private String professionalSign; // ref CHAR(4), -// @JsonProperty -// private String legalKind; // ref CHAR(4), -// @JsonProperty -// private String organizationType; // ref CHAR(4), -// @JsonProperty -// private String residence; // ref CHAR(4), -// @JsonProperty -// private String shortName; -// @JsonProperty -// private String fullName; -// @JsonProperty -// private String shortNameEng; -// @JsonProperty -// private String fullNameEng; -// @JsonProperty -// private String tradingCode; -// @JsonProperty -// private String clearingCode; -// @JsonProperty -// private String registrationCode; -// -// public Long getCompanyId() { -// return companyId; -// } -// -// public void setCompanyId(Long companyId) { -// this.companyId = companyId; -// } -// -// public String getClearingMemberCategory() { -// return clearingMemberCategory; -// } -// -// public void setClearingMemberCategory(String clearingMemberCategory) { -// this.clearingMemberCategory = clearingMemberCategory; -// } -// -// public String getCorporationSoleType() { -// return corporationSoleType; -// } -// -// public void setCorporationSoleType(String corporationSoleType) { -// this.corporationSoleType = corporationSoleType; -// } -// -// public String getCountryCode() { -// return countryCode; -// } -// -// public void setCountryCode(String countryCode) { -// this.countryCode = countryCode; -// } -// -// public String getDescription() { -// return description; -// } -// -// public void setDescription(String description) { -// this.description = description; -// } -// -// public String getProfessionalSign() { -// return professionalSign; -// } -// -// public void setProfessionalSign(String professionalSign) { -// this.professionalSign = professionalSign; -// } -// -// public String getLegalKind() { -// return legalKind; -// } -// -// public void setLegalKind(String legalKind) { -// this.legalKind = legalKind; -// } -// -// public String getOrganizationType() { -// return organizationType; -// } -// -// public void setOrganizationType(String organizationType) { -// this.organizationType = organizationType; -// } -// -// public String getResidence() { -// return residence; -// } -// -// public void setResidence(String residence) { -// this.residence = residence; -// } -// -// public String getShortName() { -// return shortName; -// } -// -// public void setShortName(String shortName) { -// this.shortName = shortName; -// } -// -// public String getFullName() { -// return fullName; -// } -// -// public void setFullName(String fullName) { -// this.fullName = fullName; -// } -// -// public String getShortNameEng() { -// return shortNameEng; -// } -// -// public void setShortNameEng(String shortNameEng) { -// this.shortNameEng = shortNameEng; -// } -// -// public String getFullNameEng() { -// return fullNameEng; -// } -// -// public void setFullNameEng(String fullNameEng) { -// this.fullNameEng = fullNameEng; -// } -// -// public String getTradingCode() { -// return tradingCode; -// } -// -// public void setTradingCode(String tradingCode) { -// this.tradingCode = tradingCode; -// } -// -// public String getClearingCode() { -// return clearingCode; -// } -// -// public void setClearingCode(String clearingCode) { -// this.clearingCode = clearingCode; -// } -// -// public String getRegistrationCode() { -// return registrationCode; -// } -// -// public void setRegistrationCode(String registrationCode) { -// this.registrationCode = registrationCode; -// } -// -// public Long getId() { -// return id; -// } -// -// public void setId(Long id) { -// this.id = id; -// } -// } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetAll.java deleted file mode 100644 index f696f17bc..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetAll.java +++ /dev/null @@ -1,59 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.company; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.profile.CompanyInfo; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов CompanyInfo.") -public class CompanyBackendInfoGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private CompanyInfoBackendPayload payload = new CompanyInfoBackendPayload(); - - private static class CompanyInfoBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public CompanyInfoBackendPayload getPayload() { - return payload; - } - - public void setPayload(CompanyInfoBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection companyInfos) { - var payload = this.getPayload(); - for (var companyInfo : companyInfos) { - var singleItem = new CompanyBackendInfoGetFields(); - singleItem.setId(companyInfo.getId()); - singleItem.setCompanyId(companyInfo.getCompanyId()); - singleItem.setCorporationSoleType(companyInfo.getCorporationSoleType()); - singleItem.setCountryCode(companyInfo.getCountryCode()); - singleItem.setDescription(companyInfo.getDescription()); - singleItem.setProfessionalSign(companyInfo.getProfessionalSign()); - singleItem.setLegalKind(companyInfo.getLegalKind()); - singleItem.setOrganizationType(companyInfo.getOrganizationType()); - singleItem.setResidence(companyInfo.getResidence()); - singleItem.setShortNameEng(companyInfo.getShortNameEng()); - singleItem.setFullNameEng(companyInfo.getFullNameEng()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetFields.java deleted file mode 100644 index 501f4b749..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendInfoGetFields.java +++ /dev/null @@ -1,176 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.company; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class CompanyBackendInfoGetFields { - @JsonProperty - private Long id; - @JsonProperty - private Long companyId; - @JsonProperty - private String clearingMemberCategory; - @JsonProperty - private String corporationSoleType; - @JsonProperty - private String countryCode; - @JsonProperty - private String description; - @JsonProperty - private String professionalSign; - @JsonProperty - private String legalKind; - @JsonProperty - private String organizationType; - @JsonProperty - private String residence; - @JsonProperty - private String shortName; - @JsonProperty - private String fullName; - @JsonProperty - private String shortNameEng; - @JsonProperty - private String fullNameEng; - @JsonProperty - private String tradingCode; - @JsonProperty - private String clearingCode; - @JsonProperty - private String registrationCode; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public String getClearingMemberCategory() { - return clearingMemberCategory; - } - - public void setClearingMemberCategory(String clearingMemberCategory) { - this.clearingMemberCategory = clearingMemberCategory; - } - - public String getCorporationSoleType() { - return corporationSoleType; - } - - public void setCorporationSoleType(String corporationSoleType) { - this.corporationSoleType = corporationSoleType; - } - - public String getCountryCode() { - return countryCode; - } - - public void setCountryCode(String countryCode) { - this.countryCode = countryCode; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getProfessionalSign() { - return professionalSign; - } - - public void setProfessionalSign(String professionalSign) { - this.professionalSign = professionalSign; - } - - public String getLegalKind() { - return legalKind; - } - - public void setLegalKind(String legalKind) { - this.legalKind = legalKind; - } - - public String getOrganizationType() { - return organizationType; - } - - public void setOrganizationType(String organizationType) { - this.organizationType = organizationType; - } - - public String getResidence() { - return residence; - } - - public void setResidence(String residence) { - this.residence = residence; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getShortNameEng() { - return shortNameEng; - } - - public void setShortNameEng(String shortNameEng) { - this.shortNameEng = shortNameEng; - } - - public String getFullNameEng() { - return fullNameEng; - } - - public void setFullNameEng(String fullNameEng) { - this.fullNameEng = fullNameEng; - } - - public String getTradingCode() { - return tradingCode; - } - - public void setTradingCode(String tradingCode) { - this.tradingCode = tradingCode; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - public String getRegistrationCode() { - return registrationCode; - } - - public void setRegistrationCode(String registrationCode) { - this.registrationCode = registrationCode; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java index 27feabab4..d734efa4e 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java @@ -34,7 +34,7 @@ public class TradingClearingRegistryBackendGetById extends BasicSpcexResponse { payload.setCompanyId(tcr.getCompanyId()); payload.setCode(tcr.getCode()); payload.setMoneyAccountId(tcr.getMoneyAccountId()); - payload.setDepoAaccountId(tcr.getDepoAaccountId()); + payload.setDepoAccountId(tcr.getDepoAccountId()); payload.setTradingClearingRegistryType(tcr.getTradingClearingRegistryType()); payload.setTradingClearingRegistryLevel(tcr.getTradingClearingRegistryLevel()); payload.setTradingClearingRegistryPurpose(tcr.getTradingClearingRegistryPurpose()); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetFields.java index d4822d731..b83d03219 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetFields.java @@ -22,7 +22,7 @@ public class TradingClearingRegistryBackendGetFields { private Long moneyAccountId; @JsonProperty @ApiModelProperty(value = "Идентификатор депозитарного счета", example = "") - private Long depoAaccountId; + private Long depoAccountId; @JsonProperty @ApiModelProperty(value = "Код торгово-клирингового регистра", example = "") private String tradingClearingRegistryType; @@ -77,12 +77,12 @@ public class TradingClearingRegistryBackendGetFields { this.moneyAccountId = moneyAccountId; } - public Long getDepoAaccountId() { - return depoAaccountId; + public Long getDepoAccountId() { + return depoAccountId; } - public void setDepoAaccountId(Long depoAaccountId) { - this.depoAaccountId = depoAaccountId; + public void setDepoAccountId(Long depoAaccountId) { + this.depoAccountId = depoAaccountId; } public String getTradingClearingRegistryType() { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java deleted file mode 100644 index 19e391a98..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.scheduler.ClearingCalendar; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов TradingCalendar.") -public class ClearingCalendarBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private ClearingCalendarBackendPayload payload = new ClearingCalendarBackendPayload(); - - public ClearingCalendarBackendPayload getPayload() { - return payload; - } - - public void setPayload(ClearingCalendarBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection tradingCalendars) { - var payload = this.getPayload(); - for (var tradingCalendar : tradingCalendars) { - var singleItem = new TradingCalendarBackendGetFields(); - singleItem.setId(tradingCalendar.getId()); - singleItem.setClearingDate(tradingCalendar.getClearingDate()); - singleItem.setCompanyId(tradingCalendar.getCompanyId()); - singleItem.setDayStatus(tradingCalendar.getDayStatus()); - singleItem.setCreated(tradingCalendar.getCreated()); - singleItem.setUpdated(tradingCalendar.getUpdated()); - payload.getItems().add(singleItem); - } - } - - private static class ClearingCalendarBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetAll.java deleted file mode 100644 index 2f8258b68..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetAll.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.scheduler.Launcher; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов TaskRunner.") -public class LauncherBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private LauncherBackendPayload payload = new LauncherBackendPayload(); - - private static class LauncherBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public LauncherBackendPayload getPayload() { - return payload; - } - - public void setPayload(LauncherBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection taskRunners) { - var payload = this.getPayload(); - for (var taskRunner : taskRunners) { - var singleItem = new LauncherBackendGetFields(); - singleItem.setId(taskRunner.getId()); - singleItem.setSenderId(taskRunner.getSenderId()); - singleItem.setTask(taskRunner.getTask()); - singleItem.setCreated(taskRunner.getCreated()); - singleItem.setUpdated(taskRunner.getUpdated()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetFields.java deleted file mode 100644 index 6e4ab702d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/LauncherBackendGetFields.java +++ /dev/null @@ -1,62 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; - -import java.time.Instant; - -public class LauncherBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private Long senderId; - @JsonProperty - private String task; - @JsonSerialize(using = InstantSerializer.class) - @JsonProperty - private Instant created; - @JsonSerialize(using = InstantSerializer.class) - @JsonProperty - private Instant updated; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getSenderId() { - return senderId; - } - - public void setSenderId(Long senderId) { - this.senderId = senderId; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public Instant getCreated() { - return created; - } - - public void setCreated(Instant created) { - this.created = created; - } - - public Instant getUpdated() { - return updated; - } - - public void setUpdated(Instant updated) { - this.updated = updated; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java deleted file mode 100644 index f2e8ce7c6..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java +++ /dev/null @@ -1,57 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов SchedulerAllToday.") -public class SchedulerAllTodayBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private SchedulerAllTodayBackendPayload payload = new SchedulerAllTodayBackendPayload(); - - public SchedulerAllTodayBackendPayload getPayload() { - return payload; - } - - public void setPayload(SchedulerAllTodayBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection schedulersAllToday) { - var payload = this.getPayload(); - for (var schedulerAllToday : schedulersAllToday) { - var singleItem = new SchedulerAllTodayBackendGetFields(); - singleItem.setId(schedulerAllToday.getId()); - singleItem.setTask(schedulerAllToday.getTask()); - singleItem.setTaskTime(schedulerAllToday.getTaskTime()); - singleItem.setClearingDate(schedulerAllToday.getClearingDate()); - singleItem.setMarket(schedulerAllToday.getMarket()); - singleItem.setTaskStatus(schedulerAllToday.getTaskStatus()); - singleItem.setSecurityId(schedulerAllToday.getSecurityId()); - singleItem.setSource(schedulerAllToday.getParent()); - singleItem.setOrigId(schedulerAllToday.getParentId()); - payload.getItems().add(singleItem); - } - } - - private static class SchedulerAllTodayBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetFields.java deleted file mode 100644 index ae70af9f1..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetFields.java +++ /dev/null @@ -1,104 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer; - -import java.time.LocalDate; -import java.time.LocalTime; - -public class SchedulerAllTodayBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private String task; - @JsonProperty - @JsonSerialize(using = LocalTimeSerializer.class) - private LocalTime taskTime; - @JsonProperty - @JsonSerialize(using = LocalDateSerializer.class) - private LocalDate clearingDate; - @JsonProperty - private String market; - @JsonProperty - private String taskStatus; - @JsonProperty - private Long securityId; - @JsonProperty - private String source; - @JsonProperty - private Long origId; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public LocalTime getTaskTime() { - return taskTime; - } - - public void setTaskTime(LocalTime taskTime) { - this.taskTime = taskTime; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } - - public String getMarket() { - return market; - } - - public void setMarket(String market) { - this.market = market; - } - - public String getTaskStatus() { - return taskStatus; - } - - public void setTaskStatus(String taskStatus) { - this.taskStatus = taskStatus; - } - - public Long getSecurityId() { - return securityId; - } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; - } - - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } - - public Long getOrigId() { - return origId; - } - - public void setOrigId(Long origId) { - this.origId = origId; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetAll.java deleted file mode 100644 index 28863b431..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetAll.java +++ /dev/null @@ -1,57 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.scheduler.Planner; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов Scheduler.") -public class SchedulerBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private SchedulerBackendPayload payload = new SchedulerBackendPayload(); - - private static class SchedulerBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public SchedulerBackendPayload getPayload() { - return payload; - } - - public void setPayload(SchedulerBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection schedulers) { - var payload = this.getPayload(); - for (var scheduler : schedulers) { - var singleItem = new SchedulerBackendGetFields(); - singleItem.setId(scheduler.getId()); - singleItem.setTask(scheduler.getTask()); - singleItem.setTaskTime(scheduler.getTaskTime()); - singleItem.setClearingDate(scheduler.getClearingDate()); - singleItem.setMarket(scheduler.getMarket()); - singleItem.setTaskStatus(scheduler.getTaskStatus()); - singleItem.setSecurityId(scheduler.getSecurityId()); - singleItem.setCreated(scheduler.getCreated()); - singleItem.setUpdated(scheduler.getUpdated()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetFields.java deleted file mode 100644 index 71561a8d1..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerBackendGetFields.java +++ /dev/null @@ -1,108 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer; - -import java.time.Instant; -import java.time.LocalDate; -import java.time.LocalTime; - -public class SchedulerBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private String task; - @JsonProperty - @JsonSerialize(using = LocalTimeSerializer.class) - private LocalTime taskTime; - @JsonProperty - @JsonSerialize(using = LocalDateSerializer.class) - private LocalDate clearingDate; - @JsonProperty - private String market; - @JsonProperty - private String taskStatus; - @JsonProperty - private Long securityId; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant created; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant updated; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public LocalTime getTaskTime() { - return taskTime; - } - - public void setTaskTime(LocalTime taskTime) { - this.taskTime = taskTime; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } - - public String getMarket() { - return market; - } - - public void setMarket(String market) { - this.market = market; - } - - public String getTaskStatus() { - return taskStatus; - } - - public void setTaskStatus(String taskStatus) { - this.taskStatus = taskStatus; - } - - public Long getSecurityId() { - return securityId; - } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; - } - - public Instant getCreated() { - return created; - } - - public void setCreated(Instant created) { - this.created = created; - } - - public Instant getUpdated() { - return updated; - } - - public void setUpdated(Instant updated) { - this.updated = updated; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetAll.java deleted file mode 100644 index cf7090e33..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetAll.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.scheduler.PlannerTemplate; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов Timetable.") -public class TimetableBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private TimetableBackendPayload payload = new TimetableBackendPayload(); - - private static class TimetableBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public TimetableBackendPayload getPayload() { - return payload; - } - - public void setPayload(TimetableBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection timeTables) { - var payload = this.getPayload(); - for (var timetable : timeTables) { - var singleItem = new TimetableBackendGetFields(); - singleItem.setId(timetable.getId()); - singleItem.setTask(timetable.getTask()); - singleItem.setTaskTime(timetable.getTaskTime()); - singleItem.setTaskStatus(timetable.getTaskStatus()); - singleItem.setCreated(timetable.getCreated()); - singleItem.setUpdated(timetable.getUpdated()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetFields.java deleted file mode 100644 index a348b0799..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TimetableBackendGetFields.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer; - -import java.time.Instant; -import java.time.LocalTime; - -public class TimetableBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private String task; - @JsonProperty - @JsonSerialize(using = LocalTimeSerializer.class) - private LocalTime taskTime; - @JsonProperty - private String taskStatus; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant created; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant updated; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getTask() { - return task; - } - - public void setTask(String task) { - this.task = task; - } - - public LocalTime getTaskTime() { - return taskTime; - } - - public void setTaskTime(LocalTime taskTime) { - this.taskTime = taskTime; - } - - public String getTaskStatus() { - return taskStatus; - } - - public void setTaskStatus(String taskStatus) { - this.taskStatus = taskStatus; - } - - public Instant getCreated() { - return created; - } - - public void setCreated(Instant created) { - this.created = created; - } - - public Instant getUpdated() { - return updated; - } - - public void setUpdated(Instant updated) { - this.updated = updated; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java deleted file mode 100644 index c864105f2..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.schedule; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.time.Instant; -import java.time.LocalDate; - -public class TradingCalendarBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - @JsonSerialize(using = LocalDateSerializer.class) - private LocalDate clearingDate; - @JsonProperty - private Long companyId; - @JsonProperty - private String dayStatus; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant created; - @JsonProperty - @JsonSerialize(using = InstantSerializer.class) - private Instant updated; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public String getDayStatus() { - return dayStatus; - } - - public void setDayStatus(String dayStatus) { - this.dayStatus = dayStatus; - } - - public Instant getCreated() { - return created; - } - - public void setCreated(Instant created) { - this.created = created; - } - - public Instant getUpdated() { - return updated; - } - - public void setUpdated(Instant updated) { - this.updated = updated; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAll.java deleted file mode 100644 index c19295725..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAll.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.securities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -@ApiModel(description = "Ответ при получении объектов MoneyMarketSecurity.") -public class MoneyMarketSecurityBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private MoneyMarketSecurityBackendPayload payload = new MoneyMarketSecurityBackendPayload(); - - private static class MoneyMarketSecurityBackendPayload { - private List> items = new ArrayList<>(); - - public List> getItems() { - return items; - } - - public void setItems(List> items) { - this.items = items; - } - } - - public MoneyMarketSecurityBackendPayload getPayload() { - return payload; - } - - public void setPayload(MoneyMarketSecurityBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection> moneyMarketSecurities) { - var payload = this.getPayload(); - for (Map moneyMarketSecurity : moneyMarketSecurities) { - payload.getItems().add(moneyMarketSecurity); - } - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java deleted file mode 100644 index 875305748..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.securities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@Deprecated -@ApiModel(description = "Ответ при получении объектов MoneyMarketSecurity.") -public class MoneyMarketSecurityBackendGetAllOld extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private MoneyMarketSecurityBackendPayload payload = new MoneyMarketSecurityBackendPayload(); - - public MoneyMarketSecurityBackendPayload getPayload() { - return payload; - } - - public void setPayload(MoneyMarketSecurityBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection moneyMarketSecurities) { - var payload = this.getPayload(); - for (MoneyMarketSecurity moneyMarketSecurity : moneyMarketSecurities) { - var singleItem = new MoneyMarketSecurityBackendGetFields(); - singleItem.setId(moneyMarketSecurity.getId()); - singleItem.setSecurityId(moneyMarketSecurity.getSecurityId()); - singleItem.setDescription(moneyMarketSecurity.getDescription()); - singleItem.setStartDate(moneyMarketSecurity.getStartDate()); - singleItem.setEndDate(moneyMarketSecurity.getEndDate()); - singleItem.setNominalValue(moneyMarketSecurity.getNominalValue()); - singleItem.setNominalCurrency(moneyMarketSecurity.getNominalCurrency()); - singleItem.setInstrumentType(moneyMarketSecurity.getInstrumentType()); - singleItem.setFullName(moneyMarketSecurity.getFullName()); - singleItem.setSecuritySymbol(moneyMarketSecurity.getSecuritySymbol()); - singleItem.setTermType(moneyMarketSecurity.getTermType()); - payload.getItems().add(singleItem); - } - } - - private static class MoneyMarketSecurityBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java deleted file mode 100644 index f32ba9f5b..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java +++ /dev/null @@ -1,123 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.securities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class MoneyMarketSecurityBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private Long securityId;// (linked to security) - @JsonProperty - private String description; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate startDate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate endDate; - @JsonProperty - private BigDecimal nominalValue; - @JsonProperty - private String nominalCurrency; // (linked to currencyCode) - @JsonProperty - private String instrumentType; // (linked to instrumentType) - @JsonProperty - private String fullName; - @JsonProperty - private String securitySymbol; - @JsonProperty - private String termType; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getSecurityId() { - return securityId; - } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public BigDecimal getNominalValue() { - return nominalValue; - } - - public void setNominalValue(BigDecimal nominalValue) { - this.nominalValue = nominalValue; - } - - public String getNominalCurrency() { - return nominalCurrency; - } - - public void setNominalCurrency(String nominalCurrency) { - this.nominalCurrency = nominalCurrency; - } - - public String getInstrumentType() { - return instrumentType; - } - - public void setInstrumentType(String instrumentType) { - this.instrumentType = instrumentType; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getTermType() { - return termType; - } - - public void setTermType(String termType) { - this.termType = termType; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionBackendGetAll.java deleted file mode 100644 index 243fc2129..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionBackendGetAll.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.user; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.user.UserRoleSession; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов UserRoleSession.") -public class UserRoleSessionBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private UserRoleSessionBackendPayload payload = new UserRoleSessionBackendPayload(); - - private static class UserRoleSessionBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public UserRoleSessionBackendPayload getPayload() { - return payload; - } - - public void setPayload(UserRoleSessionBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection userRoleSessions) { - var payload = this.getPayload(); - for (var userRoleSession : userRoleSessions) { - var singleItem = new UserRoleSessionsBackendGetFields(); - singleItem.setId(userRoleSession.getId()); - singleItem.setUserId(userRoleSession.getUserId()); - singleItem.setUserRole(userRoleSession.getUserRole()); - singleItem.setCompanyId(userRoleSession.getCompanyId()); - singleItem.setStatus(userRoleSession.getStatus()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionsBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionsBackendGetFields.java deleted file mode 100644 index d56bfc1b5..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserRoleSessionsBackendGetFields.java +++ /dev/null @@ -1,56 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.user; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class UserRoleSessionsBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private Long userId; - @JsonProperty - private String userRole; - @JsonProperty - private Long companyId; - @JsonProperty - private String status; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getUserRole() { - return userRole; - } - - public void setUserRole(String userRole) { - this.userRole = userRole; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetAll.java deleted file mode 100644 index 5271ef926..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetAll.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.user; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.user.UserSettings; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов UserSetting.") -public class UserSettingsBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private UserSettingBackendPayload payload = new UserSettingBackendPayload(); - - private static class UserSettingBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public UserSettingBackendPayload getPayload() { - return payload; - } - - public void setPayload(UserSettingBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection userSettings) { - var payload = this.getPayload(); - for (var userSetting : userSettings) { - var singleItem = new UserSettingsBackendGetFields(); - singleItem.setId(userSetting.getId()); - singleItem.setUserId(userSetting.getUserId()); - singleItem.setVersion(userSetting.getVersion()); - singleItem.setJson(userSetting.getJson()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetFields.java deleted file mode 100644 index 6793da1e0..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/user/UserSettingsBackendGetFields.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.user; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class UserSettingsBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private Long userId; - @JsonProperty - private String version; - @JsonProperty - private String json; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getJson() { - return json; - } - - public void setJson(String json) { - this.json = json; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java deleted file mode 100644 index 0e777aa67..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов KeyRate.") -public class KeyRateBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private KeyRateBackendPayload payload = new KeyRateBackendPayload(); - - private static class KeyRateBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public KeyRateBackendPayload getPayload() { - return payload; - } - - public void setPayload(KeyRateBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection keyRates) { - var payload = this.getPayload(); - for (var keyRate : keyRates) { - var singleItem = new KeyRateBackendGetFields(); - singleItem.setId(keyRate.getId()); - singleItem.setKeyRate(keyRate.getRate()); - singleItem.setStartDate(keyRate.getStartDate()); - singleItem.setEndDate(keyRate.getEndDate()); - singleItem.setDocument(keyRate.getDocument()); - singleItem.setWorkflowStatus(keyRate.getWorkflowStatus()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java deleted file mode 100644 index 0a26e33de..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private BigDecimal keyRate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate startDate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate endDate; - @JsonProperty - private String document; - @JsonProperty - private String workflowStatus; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public BigDecimal getKeyRate() { - return keyRate; - } - - public void setKeyRate(BigDecimal keyRate) { - this.keyRate = keyRate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public String getWorkflowStatus() { - return workflowStatus; - } - - public void setWorkflowStatus(String workflowStatus) { - this.workflowStatus = workflowStatus; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/DefaultController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/DefaultController.java index 6eba641dd..da8a15d2b 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/DefaultController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/DefaultController.java @@ -22,7 +22,7 @@ public class DefaultController implements InitializingBean { @ApiOperation(value = "Test backend-api availability.") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = String.class)}) - @RequestMapping(method = RequestMethod.GET, path = "/anonymous/method1", produces = MediaType.TEXT_PLAIN_VALUE) + @RequestMapping(method = RequestMethod.GET, path = "/system/ping", produces = MediaType.TEXT_PLAIN_VALUE) @ResponseBody public String processGet() { log.info("Call test method for backend-api controller"); @@ -31,7 +31,7 @@ public class DefaultController implements InitializingBean { @ApiOperation(value = "Test backend-api availability (for authorized access). Available for anonymous, if authorization-disabled=true.") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK")}) - @RequestMapping(method = RequestMethod.GET, path = "/users/method2", produces = MediaType.TEXT_PLAIN_VALUE) + @RequestMapping(method = RequestMethod.GET, path = "/system/ping/authorized", produces = MediaType.TEXT_PLAIN_VALUE) @ResponseBody public String processProtectedGet() { log.info("controller method2"); diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index e6c737fd9..c085341d6 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,461 +1,544 @@ - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 5b67a2662..096bf86a6 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,2180 +1,2072 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -