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 9a7793082..c219ed4c1 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 @@ -9,13 +9,13 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; @Configuration public class BeanConfiguration { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } @Bean diff --git a/clearing-parent/balance-service/pom.xml b/clearing-parent/balance-service/pom.xml index f4d1145bb..9f1706733 100644 --- a/clearing-parent/balance-service/pom.xml +++ b/clearing-parent/balance-service/pom.xml @@ -24,6 +24,10 @@ ru.spcex.platform platform-imdg-api-hazelcast-impl + + ru.spcex.clearing + clearing-validation + ru.spcex.clearing classes diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java index 1b8fea101..19cefe06e 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/MessagesConfig.java @@ -1,30 +1,16 @@ package ru.spcex.clearing.balance.config; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.support.ResourceBundleMessageSource; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver; - -import java.util.Locale; @Configuration public class MessagesConfig { - @Bean("validation-error-messages") - public ResourceBundleMessageSource messages() { - ResourceBundleMessageSource source = new ResourceBundleMessageSource(); - source.setBasenames("messages/error"); - source.setUseCodeAsDefaultMessage(true); - source.setDefaultEncoding("utf8"); - source.setDefaultLocale(Locale.ROOT); - return source; - } @Bean - public IMessageResolver errorResolver(@Qualifier("validation-error-messages") ResourceBundleMessageSource messageBundle) { - SpringPropertiesMessageResolver resolver = new SpringPropertiesMessageResolver(messageBundle); - resolver.setLocale("ru"); - return resolver; + public IMessageResolver errorResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } } diff --git a/clearing-parent/balance-service/src/main/resources/messages/error.properties b/clearing-parent/balance-service/src/main/resources/messages/error.properties deleted file mode 100644 index 3f2dc2393..000000000 --- a/clearing-parent/balance-service/src/main/resources/messages/error.properties +++ /dev/null @@ -1,2 +0,0 @@ -5211=Company not found -5213=Currency not found diff --git a/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties b/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties deleted file mode 100644 index 1820f1d6e..000000000 --- a/clearing-parent/balance-service/src/main/resources/messages/error_ru.properties +++ /dev/null @@ -1,2 +0,0 @@ -5211=Компания не найдена -5213=Валюта не найдена \ No newline at end of file diff --git a/clearing-parent/clearing-service/pom.xml b/clearing-parent/clearing-service/pom.xml index 5728c07ef..fe421bfb5 100644 --- a/clearing-parent/clearing-service/pom.xml +++ b/clearing-parent/clearing-service/pom.xml @@ -25,6 +25,10 @@ ru.spcex.platform platform-imdg-api-hazelcast-impl + + ru.spcex.clearing + clearing-validation + ru.spcex.clearing classes diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java index 6ef39cec8..cf3d8356a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessageResolverConfig.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.platform.imdg.api.ImdgProvider; @Configuration public class MessageResolverConfig { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } } diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java new file mode 100644 index 000000000..97dfbf8cf --- /dev/null +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java @@ -0,0 +1,37 @@ +package ru.spcex.clearing.util.services; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import ru.clearing.platform.dictionary.ErrorCodeDictionary; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.IMessageResolver; + +import java.util.Arrays; + +/** + * Использует ErrorCodeDictionary для расшифровки текста кодов ошибок. + */ +public class IMDGMessageResolver implements IMessageResolver { + protected final Logger log = LoggerFactory.getLogger(getClass()); + protected final Imdg errorCodeDictionaryIMDG; + + public IMDGMessageResolver(ImdgProvider imdgProvider) { + this.errorCodeDictionaryIMDG = imdgProvider.getImdg(IMDGDistributedNames.Map_ErrorCodeDictionary, ErrorCodeDictionary.class); + } + + @Override + public String resolve(EnumMessage errorMessage) { + if (errorMessage == null) return "null"; + + ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errorMessage.getSubject().getId()); + if (errorDictionary == null) { + log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errorMessage.getSubject().getId()); + return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs())); + } + String textTemplate = errorDictionary.getName(); + return String.format(textTemplate, errorMessage.getArgs()); + } +} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java index d0189af7a..d6248d708 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java @@ -10,13 +10,13 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; @Configuration public class BeanConfiguration { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } @Bean diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java index c64e7c10e..f9de0dbfb 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/ErrorResolverConfig.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.scheduler.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.platform.imdg.api.ImdgProvider; @Configuration public class ErrorResolverConfig { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java index 38d1bdd66..327fe9182 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ErrorResolverConfig.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.securities.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.platform.imdg.api.ImdgProvider; @Configuration public class ErrorResolverConfig { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } } diff --git a/clearing-parent/trade-importer/pom.xml b/clearing-parent/trade-importer/pom.xml index 7ea41af25..fec21cae1 100644 --- a/clearing-parent/trade-importer/pom.xml +++ b/clearing-parent/trade-importer/pom.xml @@ -62,6 +62,10 @@ ru.spcex.platform platform-imdg-api-hazelcast-impl + + ru.spcex.clearing + clearing-validation + ru.spcex.platform platform-enum diff --git a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java index 8c838d4ed..12ed6d5dc 100644 --- a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java +++ b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/config/ErrorResolverConfig.java @@ -3,12 +3,13 @@ package ru.spcex.clearing.trade.importer.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; +import ru.spcex.clearing.util.services.IMDGMessageResolver; +import ru.spcex.platform.imdg.api.ImdgProvider; @Configuration public class ErrorResolverConfig { @Bean - public IMessageResolver messageResolver() { - return new SimpleMessageResolver(); + public IMessageResolver messageResolver(ImdgProvider imdgProvider) { + return new IMDGMessageResolver(imdgProvider); } }