diff --git a/io.sc.platform.core.frontend/package.json b/io.sc.platform.core.frontend/package.json index 530135f4..acb2cf5e 100644 --- a/io.sc.platform.core.frontend/package.json +++ b/io.sc.platform.core.frontend/package.json @@ -1,12 +1,11 @@ { "name": "platform-core", - "version": "8.1.12", + "version": "8.1.13", "description": "前端核心包,用于快速构建前端的脚手架", "//main": "库的主文件", "main": "dist/platform-core.js", "//files": "打包时需要包含的文件列表", "files": [ - "src", "template-project/*.*", "template-project/public", "template-project/src", diff --git a/io.sc.platform.core.frontend/src/platform/PConst.ts b/io.sc.platform.core.frontend/src/platform/PConst.ts index dd5e3dc3..d0fa2244 100644 --- a/io.sc.platform.core.frontend/src/platform/PConst.ts +++ b/io.sc.platform.core.frontend/src/platform/PConst.ts @@ -57,7 +57,7 @@ class PConst { /** * 多语言消息 API URL */ - static API_I18N_MESSAGES_URL: string = '/api/system/i18n/getI18nMessages'; + static API_I18N_MESSAGES_URL: string = '/api/mvc/i18n/getI18nMessages'; /** * 登录 API URL diff --git a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue index 8f36b334..21ef64e7 100644 --- a/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue +++ b/io.sc.platform.core.frontend/src/platform/layout/sub-layout/Main.vue @@ -55,7 +55,7 @@ shrink outside-arrows mobile-arrows - :indicator-color="'primary'" + indicator-color="transparent" :breakpoint="1000000" dense active-bg-color="primary" diff --git a/io.sc.platform.core.frontend/src/platform/plugin/manager/ConfigureManager.ts b/io.sc.platform.core.frontend/src/platform/plugin/manager/ConfigureManager.ts index cff8f84b..9d16106f 100644 --- a/io.sc.platform.core.frontend/src/platform/plugin/manager/ConfigureManager.ts +++ b/io.sc.platform.core.frontend/src/platform/plugin/manager/ConfigureManager.ts @@ -38,15 +38,10 @@ class ConfigureManager { */ public static updateAppConfigure(configure: ConfigureType) { if (configure) { - const $t = i18n.global.t; - // 更新 gc 响应式变量 if (gc !== configure) { Tools.mergeObject(gc, configure); } - - // 设置网页标题 - Tools.setTitile($t('application.title')); // 设置网页图标 Tools.setFavicon(gc.theme.favicon); // 更新 quasar 的 brand 颜色 diff --git a/io.sc.platform.core.frontend/template-project/package.json b/io.sc.platform.core.frontend/template-project/package.json index 52d1ad9b..80cd7f7f 100644 --- a/io.sc.platform.core.frontend/template-project/package.json +++ b/io.sc.platform.core.frontend/template-project/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.1.12", + "version": "8.1.13", "description": "前端核心包,用于快速构建前端的脚手架", "private": false, "keywords": [], @@ -77,7 +77,7 @@ "luckyexcel": "1.0.1", "mockjs": "1.1.0", "pinia": "2.1.7", - "platform-core": "8.1.12", + "platform-core": "8.1.13", "quasar": "2.13.0", "react-dnd-html5-backend": "16.0.1", "tailwindcss": "3.3.5", diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/MessageSourceAutoConfiguration.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/MessageSourceAutoConfiguration.java index 19bcbe24..522233af 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/MessageSourceAutoConfiguration.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/MessageSourceAutoConfiguration.java @@ -1,6 +1,7 @@ package io.sc.platform.core.autoconfigure; -import io.sc.platform.core.plugins.PluginManager; +import io.sc.platform.core.i18n.MessageSourceBaseName; +import io.sc.platform.core.i18n.PlatformResourceBundleMessageSource; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.SearchStrategy; @@ -11,11 +12,8 @@ import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.AbstractApplicationContext; -import org.springframework.context.support.ResourceBundleMessageSource; import java.time.Duration; -import java.util.ArrayList; -import java.util.List; /** * 国际化消息源自动配置类 @@ -35,43 +33,18 @@ public class MessageSourceAutoConfiguration { @Bean @ConditionalOnMissingBean public MessageSource messageSource(MessageSourceProperties messageSourceProperties){ - ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource(); - resourceBundleMessageSource.setBasenames(getBasenames()); + PlatformResourceBundleMessageSource messageSource = new PlatformResourceBundleMessageSource(); + messageSource.setBasenames(MessageSourceBaseName.getBaseNames(messageSourceProperties.getBasename())); if (messageSourceProperties.getEncoding() != null) { - resourceBundleMessageSource.setDefaultEncoding(messageSourceProperties.getEncoding().name()); + messageSource.setDefaultEncoding(messageSourceProperties.getEncoding().name()); } - resourceBundleMessageSource.setAlwaysUseMessageFormat(messageSourceProperties.isAlwaysUseMessageFormat()); - resourceBundleMessageSource.setUseCodeAsDefaultMessage(messageSourceProperties.isUseCodeAsDefaultMessage()); - resourceBundleMessageSource.setFallbackToSystemLocale(messageSourceProperties.isFallbackToSystemLocale()); + messageSource.setAlwaysUseMessageFormat(messageSourceProperties.isAlwaysUseMessageFormat()); + messageSource.setUseCodeAsDefaultMessage(messageSourceProperties.isUseCodeAsDefaultMessage()); + messageSource.setFallbackToSystemLocale(messageSourceProperties.isFallbackToSystemLocale()); Duration cacheDuration = messageSourceProperties.getCacheDuration(); if (cacheDuration != null) { - resourceBundleMessageSource.setCacheMillis(cacheDuration.toMillis()); + messageSource.setCacheMillis(cacheDuration.toMillis()); } - return resourceBundleMessageSource; - } - - private String[] getBasenames(){ - List result =new ArrayList<>(); - List messages = PluginManager.getInstance().getMessages(); - if(messages!=null && !messages.isEmpty()){ - List baseNames =new ArrayList<>(); - //包含 include - messages.forEach(message -> { - List includes =message.getIncludes(); - if(includes!=null && !includes.isEmpty()){ - includes.forEach(include -> baseNames.add(include.replace('/', '.'))); - } - }); - //排除 exclude - messages.forEach(message -> { - List excludes =message.getExcludes(); - if(excludes!=null && !excludes.isEmpty()){ - excludes.forEach(exclude -> baseNames.remove(exclude.replace('/', '.')) ); - } - }); - - result.addAll(baseNames); - } - return result.toArray(new String[]{}); + return messageSource; } } diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/Language.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/Language.java new file mode 100644 index 00000000..b4219d47 --- /dev/null +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/Language.java @@ -0,0 +1,50 @@ +package io.sc.platform.core.enums; + +import java.util.Locale; + +/** + * 语言枚举类 + */ +public enum Language { + en, /* 英文 */ + zh_CN, /* 简体中文 */ + tw_CN; /* 繁体中文*/ + + /** + * 获取默认语言 + * @return 默认语言 + */ + public static Language getDefault(){ + return Language.zh_CN; + } + + /** + * 是否存在字符串语言对应的语言枚举 + * @param lang 语言 + * @return 是否存在字符串语言对应的语言枚举 + */ + public static boolean exists(String lang){ + for(Language language : Language.values()){ + if(language.toString().equalsIgnoreCase(lang)){ + return true; + } + } + return false; + } + + /** + * 获取语言枚举对应的区域对象 + * @return 区域对象 + */ + public Locale getLocale(){ + switch (this){ + case en: + return new Locale("en"); + case zh_CN: + return new Locale("zh","CN"); + case tw_CN: + return new Locale("tw","CN"); + } + return null; + } +} diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/support/MessageSourceBaseNameUtil.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/i18n/MessageSourceBaseName.java similarity index 88% rename from io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/support/MessageSourceBaseNameUtil.java rename to io.sc.platform.core/src/main/java/io/sc/platform/core/i18n/MessageSourceBaseName.java index eeb0e861..4c3dc046 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/support/MessageSourceBaseNameUtil.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/i18n/MessageSourceBaseName.java @@ -1,16 +1,14 @@ -package io.sc.platform.core.autoconfigure.support; +package io.sc.platform.core.i18n; import io.sc.platform.core.plugins.PluginManager; import org.springframework.util.StringUtils; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import static org.springframework.util.StringUtils.commaDelimitedListToStringArray; import static org.springframework.util.StringUtils.trimAllWhitespace; -public class MessageSourceBaseNameUtil { +public class MessageSourceBaseName { public static String[] getBaseNames(String basename){ List result =new ArrayList(); //首先加载在 application.properties 中配置的 spring.messages.basename 列表 diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/service/MessageSourceService.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/service/MessageSourceService.java new file mode 100644 index 00000000..510d628e --- /dev/null +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/service/MessageSourceService.java @@ -0,0 +1,24 @@ +package io.sc.platform.core.service; + +import io.sc.platform.core.enums.Language; + +import java.util.Map; + +/** + * 消息源服务接口 + */ +public interface MessageSourceService { + /** + * 获取一个或多个多语言消息键的所有多语言消息 + * @param messageKeys 消息 key + * @return 所有多语言消息(key:语言,value:对应区域的多语言消息文本) + */ + public Map> getMessages(String... messageKeys); + + /** + * 获取某个语言的所有多语言消息 + * @param lang 语言 + * @return 某个语言的所有多语言消息(key:消息键,value:消息文本) + */ + public Map getMessages(Language lang); +} diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/service/impl/MessageSourceServiceImpl.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/service/impl/MessageSourceServiceImpl.java new file mode 100644 index 00000000..178cd30c --- /dev/null +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/service/impl/MessageSourceServiceImpl.java @@ -0,0 +1,35 @@ +package io.sc.platform.core.service.impl; + +import io.sc.platform.core.enums.Language; +import io.sc.platform.core.i18n.PlatformMessageSource; +import io.sc.platform.core.service.MessageSourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.Map; + +@Service +public class MessageSourceServiceImpl implements MessageSourceService { + @Autowired + private MessageSource messageSource; + + @Override + public Map> getMessages(String... messageKeys) { + if(PlatformMessageSource.class.isAssignableFrom(messageSource.getClass())){ + PlatformMessageSource pMessageSource =(PlatformMessageSource)messageSource; + return pMessageSource.getMessages(messageKeys); + } + return Collections.emptyMap(); + } + + @Override + public Map getMessages(Language lang) { + if(PlatformMessageSource.class.isAssignableFrom(messageSource.getClass())){ + PlatformMessageSource pMessageSource =(PlatformMessageSource)messageSource; + return pMessageSource.getMessages(lang); + } + return Collections.emptyMap(); + } +} diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/configure/vo/Configure.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/configure/vo/Configure.java index 108d7d65..f1256a2d 100644 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/configure/vo/Configure.java +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/configure/vo/Configure.java @@ -4,18 +4,9 @@ import java.util.HashMap; import java.util.Map; public class Configure { - private Map> i18nMessages =new HashMap<>(); private Setting setting =new Setting(); private Theme theme =new Theme(); - public Map> getI18nMessages() { - return i18nMessages; - } - - public void setI18nMessages(Map> i18nMessages) { - this.i18nMessages = i18nMessages; - } - public Setting getSetting() { return setting; } diff --git a/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/I18nMessageController.java b/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/I18nMessageController.java new file mode 100644 index 00000000..5b79e377 --- /dev/null +++ b/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/I18nMessageController.java @@ -0,0 +1,22 @@ +package io.sc.platform.mvc.controller; + +import io.sc.platform.core.enums.Language; +import io.sc.platform.core.service.MessageSourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +@RequestMapping("/api/mvc/i18n") +public class I18nMessageController { + @Autowired private MessageSourceService messageSourceService; + + @GetMapping(value={"getI18nMessages/{lang}","getI18nMessages"}) + public Map getI18nMessages(@PathVariable(name = "lang",required = false) Language language) throws Exception{ + return messageSourceService.getMessages(language==null? Language.getDefault():language); + } +} diff --git a/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/IndexWebController.java b/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/IndexWebController.java index 48083467..5b44d02c 100644 --- a/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/IndexWebController.java +++ b/io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/controller/IndexWebController.java @@ -1,21 +1,12 @@ package io.sc.platform.mvc.controller; -import java.util.Map; - import io.sc.platform.mvc.service.FrontEndService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import io.sc.platform.mvc.service.SystemParameterService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Controller; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; -import io.sc.platform.core.util.ReflectUtil; -import io.sc.platform.mvc.service.SystemParameterService; - import javax.servlet.http.HttpServletRequest; /** @@ -25,12 +16,10 @@ import javax.servlet.http.HttpServletRequest; @RequestMapping public class IndexWebController { @Autowired private SystemParameterService systemParameterService; - @Autowired private FrontEndService frontEndService; @RequestMapping(value={"","/","index.html"}) public ModelAndView index(HttpServletRequest request) { ModelAndView mv =new ModelAndView(systemParameterService.getParameter("parameter.system.indexPageTemplate")); - mv.addObject("remoteEntries",frontEndService.getRemoteEntries(request).values()); return mv; } } diff --git a/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/messages.json b/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/messages.json index 80f2594c..7c4f9839 100644 --- a/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/messages.json +++ b/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/messages.json @@ -1,6 +1,5 @@ { "includes":[ - "io/sc/platform/mvc/i18n/app-configure", "io/sc/platform/mvc/i18n/messages" ] } \ No newline at end of file diff --git a/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/security.json b/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/security.json index ac7f10c3..d1367e2d 100644 --- a/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/security.json +++ b/io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/security.json @@ -1,5 +1,7 @@ { "permitPatterns":[ - "/api/mvc/frontend/regist" + "/api/mvc/frontend/regist", + "/api/mvc/i18n/getI18nMessages", + "/api/mvc/i18n/getI18nMessages/**/*" ] } \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanTrueFalse.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanTrueFalse.java similarity index 65% rename from io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanTrueFalse.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanTrueFalse.java index 22264b89..8e051472 100644 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanTrueFalse.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanTrueFalse.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.enums; +package io.sc.platform.orm.api.enums; /** * 真假枚举 diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanYesNo.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanYesNo.java similarity index 64% rename from io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanYesNo.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanYesNo.java index 3a337857..cd268d7a 100644 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/BooleanYesNo.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/BooleanYesNo.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.enums; +package io.sc.platform.orm.api.enums; /** * 是否枚举 diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/DataComeFrom.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/DataComeFrom.java similarity index 74% rename from io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/DataComeFrom.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/DataComeFrom.java index 1dcca4ab..00eb0473 100644 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/enums/DataComeFrom.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/enums/DataComeFrom.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.enums; +package io.sc.platform.orm.api.enums; /** * 数据来源枚举 diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/ActionNotSupportException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/ActionNotSupportException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/ActionNotSupportException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/ActionNotSupportException.java index 0a4eddb0..cbf6b030 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/ActionNotSupportException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/ActionNotSupportException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class ActionNotSupportException extends RuntimeException{ private static final long serialVersionUID = -2376232220565051356L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateException.java index 261892c4..58003948 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class CreateException extends RuntimeException{ private static final long serialVersionUID = 6327567975334882388L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullObjectException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullObjectException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullObjectException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullObjectException.java index a1604ad7..bd070928 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullObjectException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullObjectException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class CreateNullObjectException extends RuntimeException{ private static final long serialVersionUID = 7162890682941862977L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullPrimaryKeyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullPrimaryKeyException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullPrimaryKeyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullPrimaryKeyException.java index 50da6205..ad33a249 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateNullPrimaryKeyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateNullPrimaryKeyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class CreateNullPrimaryKeyException extends RuntimeException{ private static final long serialVersionUID = -6200176923805221532L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateObjectAlreadyExistsException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateObjectAlreadyExistsException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateObjectAlreadyExistsException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateObjectAlreadyExistsException.java index a80db037..46692565 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/CreateObjectAlreadyExistsException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/CreateObjectAlreadyExistsException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class CreateObjectAlreadyExistsException extends RuntimeException{ private static final long serialVersionUID = 1313545420420338988L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteException.java index eefac1d6..ac2b80bb 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteException extends RuntimeException{ private static final long serialVersionUID = 2475497975087435465L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullObjectException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullObjectException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullObjectException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullObjectException.java index 1c826926..47100bac 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullObjectException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullObjectException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteNullObjectException extends RuntimeException{ private static final long serialVersionUID = 4178891750306919714L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyCollectionException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyCollectionException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyCollectionException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyCollectionException.java index 1d220db2..6a731f7b 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyCollectionException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyCollectionException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteNullPrimaryKeyCollectionException extends RuntimeException{ private static final long serialVersionUID = 6514944008068047687L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyException.java index 75e9ae03..3af5b027 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteNullPrimaryKeyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteNullPrimaryKeyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteNullPrimaryKeyException extends RuntimeException{ private static final long serialVersionUID = 3995371230625815559L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteObjectNotExistsException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteObjectNotExistsException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteObjectNotExistsException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteObjectNotExistsException.java index f2d3a420..f8cb0462 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteObjectNotExistsException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteObjectNotExistsException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteObjectNotExistsException extends RuntimeException{ private static final long serialVersionUID = -7460531748929099864L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteOperateNotAllowedException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteOperateNotAllowedException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteOperateNotAllowedException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteOperateNotAllowedException.java index 6dafe4e6..056697f3 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/DeleteOperateNotAllowedException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/DeleteOperateNotAllowedException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class DeleteOperateNotAllowedException extends RuntimeException{ private static final long serialVersionUID = -7460531748929099864L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateException.java index 7b1f1de9..194ecf26 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateException extends RuntimeException{ private static final long serialVersionUID = -6484958597393057086L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectException.java index 4e1bf786..514d810c 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateNullNewObjectException extends RuntimeException{ private static final long serialVersionUID = -8491571801343921880L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectPrimaryKeyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectPrimaryKeyException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectPrimaryKeyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectPrimaryKeyException.java index 1fe8bfb1..dfbe89f6 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullNewObjectPrimaryKeyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullNewObjectPrimaryKeyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateNullNewObjectPrimaryKeyException extends RuntimeException{ private static final long serialVersionUID = 1758275796806445567L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullOldObjectPrimaryKeyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullOldObjectPrimaryKeyException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullOldObjectPrimaryKeyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullOldObjectPrimaryKeyException.java index 18aaf097..eb1d702e 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateNullOldObjectPrimaryKeyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateNullOldObjectPrimaryKeyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateNullOldObjectPrimaryKeyException extends RuntimeException{ private static final long serialVersionUID = 5400526349323784149L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateObjectAlreadyExistsException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateObjectAlreadyExistsException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateObjectAlreadyExistsException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateObjectAlreadyExistsException.java index 150dac94..3c44b486 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateObjectAlreadyExistsException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateObjectAlreadyExistsException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateObjectAlreadyExistsException extends RuntimeException{ private static final long serialVersionUID = -8558161810796596070L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateOldObjectNotExistsException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateOldObjectNotExistsException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateOldObjectNotExistsException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateOldObjectNotExistsException.java index 6576f691..39885a79 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UpdateOldObjectNotExistsException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UpdateOldObjectNotExistsException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UpdateOldObjectNotExistsException extends RuntimeException{ private static final long serialVersionUID = -638088355927239753L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java index 2fe95724..61b2fe8f 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordAndConfirmNewPasswordNotMatchException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UserNewPasswordAndConfirmNewPasswordNotMatchException extends Exception{ private static final long serialVersionUID = 4969390107861857771L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordEmptyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordEmptyException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordEmptyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordEmptyException.java index d3120274..427ae170 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserNewPasswordEmptyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserNewPasswordEmptyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UserNewPasswordEmptyException extends Exception{ private static final long serialVersionUID = 8166920368692817004L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordEmptyException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordEmptyException.java similarity index 93% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordEmptyException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordEmptyException.java index 78381184..0244c3bd 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordEmptyException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordEmptyException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UserRawPasswordEmptyException extends Exception{ private static final long serialVersionUID = 8166920368692817004L; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordNotMatchException.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordNotMatchException.java similarity index 94% rename from io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordNotMatchException.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordNotMatchException.java index da1a8e4b..9ce7f808 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/exception/UserRawPasswordNotMatchException.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/exception/UserRawPasswordNotMatchException.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.exception; +package io.sc.platform.orm.api.exception; public class UserRawPasswordNotMatchException extends Exception{ private static final long serialVersionUID = 8166920368692817004L; diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/AuditorVo.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/AuditorVo.java similarity index 93% rename from io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/AuditorVo.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/AuditorVo.java index 45dd1015..52e96078 100644 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/AuditorVo.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/AuditorVo.java @@ -1,7 +1,7 @@ -package io.sc.platform.orm.vo; +package io.sc.platform.orm.api.vo; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import io.sc.platform.orm.enums.DataComeFrom; +import io.sc.platform.orm.api.enums.DataComeFrom; import java.util.Date; diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/BaseVo.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/BaseVo.java new file mode 100644 index 00000000..a0bd61bb --- /dev/null +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/BaseVo.java @@ -0,0 +1,5 @@ +package io.sc.platform.orm.api.vo; + +public class BaseVo { + +} diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/CorporationAuditorVo.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/CorporationAuditorVo.java similarity index 90% rename from io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/CorporationAuditorVo.java rename to io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/CorporationAuditorVo.java index 4cfde178..fa41e82a 100644 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/CorporationAuditorVo.java +++ b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/api/vo/CorporationAuditorVo.java @@ -1,4 +1,4 @@ -package io.sc.platform.orm.vo; +package io.sc.platform.orm.api.vo; /** * 多法人审计实体 VO 类 diff --git a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/BaseVo.java b/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/BaseVo.java deleted file mode 100644 index b286b645..00000000 --- a/io.sc.platform.orm.api/src/main/java/io/sc/platform/orm/vo/BaseVo.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.sc.platform.orm.vo; - -public class BaseVo { - -} diff --git a/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json b/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json new file mode 100644 index 00000000..b2ed3ea0 --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json @@ -0,0 +1,6 @@ +{ + "includes":[ + "io/sc/platform/orm/api/i18n/enum", + "io/sc/platform/orm/api/i18n/exception" + ] +} \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum.properties new file mode 100644 index 00000000..c2098ceb --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum.properties @@ -0,0 +1,11 @@ +# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanTrueFalse.TRUE=True +io.sc.platform.orm.api.enums.BooleanTrueFalse.FALSE=False + +# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanYesNo.TRUE=Yes +io.sc.platform.orm.api.enums.BooleanYesNo.FALSE=No + +# \u6570\u636E\u6765\u6E90\u679A\u4E3E +io.sc.platform.orm.api.enums.DataComeFrom.MANUAL=Manual +io.sc.platform.orm.api.enums.DataComeFrom.AUTO=Auto \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_tw_CN.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_tw_CN.properties new file mode 100644 index 00000000..67a6346e --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_tw_CN.properties @@ -0,0 +1,11 @@ +# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanTrueFalse.TRUE=\u771F +io.sc.platform.orm.api.enums.BooleanTrueFalse.FALSE=\u5047 + +# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanYesNo.TRUE=\u662F +io.sc.platform.orm.api.enums.BooleanYesNo.FALSE=\u5426 + +# \u6570\u636E\u6765\u6E90\u679A\u4E3E +io.sc.platform.orm.api.enums.DataComeFrom.MANUAL=\u4EBA\u5DE5 +io.sc.platform.orm.api.enums.DataComeFrom.AUTO=\u81EA\u52D5\u5C0E\u5165 \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_zh_CN.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_zh_CN.properties new file mode 100644 index 00000000..52157a52 --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/enum_zh_CN.properties @@ -0,0 +1,11 @@ +# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanTrueFalse.TRUE=\u771F +io.sc.platform.orm.api.enums.BooleanTrueFalse.FALSE=\u5047 + +# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E +io.sc.platform.orm.api.enums.BooleanYesNo.TRUE=\u662F +io.sc.platform.orm.api.enums.BooleanYesNo.FALSE=\u5426 + +# \u6570\u636E\u6765\u6E90\u679A\u4E3E +io.sc.platform.orm.api.enums.DataComeFrom.MANUAL=\u4EBA\u5DE5 +io.sc.platform.orm.api.enums.DataComeFrom.AUTO=\u81EA\u52A8\u5BFC\u5165 \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception.properties new file mode 100644 index 00000000..98498998 --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception.properties @@ -0,0 +1,35 @@ +io.sc.platform.orm.exception.CreateException=Create Failed! +io.sc.platform.orm.exception.CreateNullObjectException=Create Failed,the New Object is Null! +io.sc.platform.orm.exception.CreateNullPrimaryKeyException=Create Failed,the New Object's Primary Key is Null! +io.sc.platform.orm.exception.CreateObjectAlreadyExistsException=Create Failed,The New Object already Exists! + +io.sc.platform.orm.exception.UpdateException=Update Failed! +io.sc.platform.orm.exception.UpdateNullOldObjectPrimaryKeyException=Update Failed,the Old Object's Primary Key is Null! +io.sc.platform.orm.exception.UpdateNullNewObjectPrimaryKeyException=Update Failed,the New Object's Primary Key is Null! +io.sc.platform.orm.exception.UpdateNullNewObjectException=Update Failed,the New Object is Null! +io.sc.platform.orm.exception.UpdateOldObjectNotExistsException=Update Failed,the Old Object Not Exists! +io.sc.platform.orm.exception.UpdateObjectAlreadyExistsException=Update Failed,The New Object already Exists! + +io.sc.platform.orm.exception.DeleteException=Delete Failed! +io.sc.platform.orm.exception.DeleteObjectNotExistsException=Delete Failed,the Object will be deleted Not Exists! +io.sc.platform.orm.exception.DeleteOperateNotAllowedException=Delete Failed, the Object was reserved by system! +io.sc.platform.orm.exception.DeleteNullObjectException=Delete Failed,the Object will be deleted is Null! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyCollectionException=Delete Failed,the Primary Key Collection which will be deleted is Empty! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyException=Delete Failed,the Primary Key which will be deleted is Empty! + +io.sc.platform.orm.exception.UserRawPasswordEmptyException=Raw Password Not allow Empty! +io.sc.platform.orm.exception.UserRawPasswordNotMatchException=Raw Password Error! +io.sc.platform.orm.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=The New Password and Confirm New Password NOT same! +io.sc.platform.orm.exception.UserNewPasswordEmptyException=The New Password Not allow Empty! + +io.sc.platform.core.audit.AuditLogAction.ADD=Add +io.sc.platform.core.audit.AuditLogAction.REMOVE=Remove +io.sc.platform.core.audit.AuditLogAction.UPDATE=Update +io.sc.platform.core.audit.AuditLogAction.QUERY=Query +io.sc.platform.core.audit.AuditLogAction.FIND_ONE=Find One +io.sc.platform.core.audit.AuditLogAction.EXPORT=Export +io.sc.platform.core.audit.AuditLogAction.LOGIN=Login +io.sc.platform.core.audit.AuditLogAction.LOGOUT=Logout + +io.sc.platform.core.audit.AuditLogStatus.SUCCESS=Success +io.sc.platform.core.audit.AuditLogStatus.FAILED=Failed \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_tw_CN.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_tw_CN.properties new file mode 100644 index 00000000..6511bbc4 --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_tw_CN.properties @@ -0,0 +1,36 @@ +io.sc.platform.orm.exception.CreateException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557! +io.sc.platform.orm.exception.CreateNullObjectException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u65B0\u589E\u5C0D\u8C61\u70BA\u7A7A! +io.sc.platform.orm.exception.CreateNullPrimaryKeyException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u65B0\u589E\u5C0D\u8C61\u7684\u4E3B\u9375(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! +io.sc.platform.orm.exception.CreateObjectAlreadyExistsException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u7CFB\u7D71\u4E2D\u5DF2\u7D93\u5B58\u5728\u8A72\u5C0D\u8C61! + +io.sc.platform.orm.exception.UpdateException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557! +io.sc.platform.orm.exception.UpdateNullOldObjectPrimaryKeyException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u88AB\u66F4\u65B0\u5C0D\u8C61\u7684\u4E3B\u9375(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! +io.sc.platform.orm.exception.UpdateNullNewObjectPrimaryKeyException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u66F4\u65B0\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! +io.sc.platform.orm.exception.UpdateNullNewObjectException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u66F4\u65B0\u5BF9\u8C61\u70BA\u7A7A! +io.sc.platform.orm.exception.UpdateOldObjectNotExistsException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u88AB\u66F4\u65B0\u7684\u5BF9\u8C61\u4E0D\u5B58\u5728! +io.sc.platform.orm.exception.UpdateObjectAlreadyExistsException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u7CFB\u7D71\u4E2D\u5DF2\u7D93\u5B58\u5728\u8A72\u5C0D\u8C61! + +io.sc.platform.orm.exception.DeleteException=\u522A\u9664\u64CD\u4F5C\u5931\u6557! +io.sc.platform.orm.exception.DeleteObjectNotExistsException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u4E0D\u5B58\u5728! +io.sc.platform.orm.exception.DeleteOperateNotAllowedException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u6B64\u8A18\u9304\u70BA\u7CFB\u7D71\u4FDD\u7559\u8A18\u9304,\u7121\u6CD5\u5220\u9664! +io.sc.platform.orm.exception.DeleteNullObjectException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u70BA\u7A7A! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyCollectionException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u96C6\u5408\u70BA\u7A7A! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! + +io.sc.platform.orm.exception.UserRawPasswordEmptyException=\u7528\u6236\u767B\u9304"\u539F\u5BC6\u78BC"\u4E0D\u5141\u8A31\u70BA\u7A7A! +io.sc.platform.orm.exception.UserRawPasswordNotMatchException=\u7528\u6236\u767B\u9304"\u539F\u5BC6\u78BC"\u932F\u8AA4! +io.sc.platform.orm.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=\u7528\u6236\u767B\u9304"\u65B0\u5BC6\u78BC"\u548C"\u65B0\u5BC6\u78BC\u78BA\u8A8D"\u4E0D\u4E00\u81F4! +io.sc.platform.orm.exception.UserNewPasswordEmptyException=\u7528\u6236\u767B\u9304"\u65B0\u5BC6\u78BC"\u4E0D\u5141\u8A31\u70BA\u7A7A! + + +io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E +io.sc.platform.core.audit.AuditLogAction.REMOVE=\u522A\u9664 +io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 +io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8A62 +io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u55AE\u500B\u8A18\u9304 +io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5C0E\u51FA +io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u9304 +io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\u51FA + +io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F +io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u6557 \ No newline at end of file diff --git a/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_zh_CN.properties b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_zh_CN.properties new file mode 100644 index 00000000..a744a1ce --- /dev/null +++ b/io.sc.platform.orm.api/src/main/resources/io/sc/platform/orm/api/i18n/exception_zh_CN.properties @@ -0,0 +1,36 @@ +io.sc.platform.orm.exception.CreateException=\u65B0\u589E\u64CD\u4F5C\u5931\u8D25! +io.sc.platform.orm.exception.CreateNullObjectException=\u65B0\u589E\u64CD\u4F5C\u5931\u8D25,\u65B0\u589E\u5BF9\u8C61\u4E3A\u7A7A! +io.sc.platform.orm.exception.CreateNullPrimaryKeyException=\u65B0\u589E\u64CD\u4F5C\u5931\u8D25,\u65B0\u589E\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u4E3A\u7A7A! +io.sc.platform.orm.exception.CreateObjectAlreadyExistsException=\u65B0\u589E\u64CD\u4F5C\u5931\u8D25,\u7CFB\u7EDF\u4E2D\u5DF2\u7ECF\u5B58\u5728\u8BE5\u5BF9\u8C61! + +io.sc.platform.orm.exception.UpdateException=\u66F4\u65B0\u64CD\u4F5C\u5931\u8D25! +io.sc.platform.orm.exception.UpdateNullOldObjectPrimaryKeyException=\u66F4\u65B0\u5931\u8D25,\u88AB\u66F4\u65B0\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u4E3A\u7A7A! +io.sc.platform.orm.exception.UpdateNullNewObjectPrimaryKeyException=\u66F4\u65B0\u5931\u8D25,\u66F4\u65B0\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u4E3A\u7A7A! +io.sc.platform.orm.exception.UpdateNullNewObjectException=\u66F4\u65B0\u5931\u8D25,\u66F4\u65B0\u5BF9\u8C61\u4E3A\u7A7A! +io.sc.platform.orm.exception.UpdateOldObjectNotExistsException=\u66F4\u65B0\u5931\u8D25,\u88AB\u66F4\u65B0\u7684\u5BF9\u8C61\u4E0D\u5B58\u5728! +io.sc.platform.orm.exception.UpdateObjectAlreadyExistsException=\u66F4\u65B0\u5931\u8D25,\u7CFB\u7EDF\u4E2D\u5DF2\u7ECF\u5B58\u5728\u8BE5\u5BF9\u8C61! + +io.sc.platform.orm.exception.DeleteException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25! +io.sc.platform.orm.exception.DeleteObjectNotExistsException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25,\u88AB\u5220\u9664\u5BF9\u8C61\u4E0D\u5B58\u5728! +io.sc.platform.orm.exception.DeleteOperateNotAllowedException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25,\u6B64\u8BB0\u5F55\u4E3A\u7CFB\u7EDF\u4FDD\u7559\u8BB0\u5F55,\u65E0\u6CD5\u5220\u9664! +io.sc.platform.orm.exception.DeleteNullObjectException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25,\u88AB\u5220\u9664\u5BF9\u8C61\u4E3A\u7A7A! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyCollectionException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25,\u88AB\u5220\u9664\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u96C6\u5408\u4E3A\u7A7A! +io.sc.platform.orm.exception.DeleteNullPrimaryKeyException=\u5220\u9664\u64CD\u4F5C\u5931\u8D25,\u88AB\u5220\u9664\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u4E3A\u7A7A! + +io.sc.platform.orm.exception.UserRawPasswordEmptyException=\u7528\u6237\u767B\u5F55"\u539F\u5BC6\u7801"\u4E0D\u5141\u8BB8\u4E3A\u7A7A! +io.sc.platform.orm.exception.UserRawPasswordNotMatchException=\u7528\u6237\u767B\u5F55"\u539F\u5BC6\u7801"\u9519\u8BEF! +io.sc.platform.orm.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=\u7528\u6237\u767B\u5F55"\u65B0\u5BC6\u7801"\u548C"\u65B0\u5BC6\u7801\u786E\u8BA4"\u4E0D\u4E00\u81F4! +io.sc.platform.orm.exception.UserNewPasswordEmptyException=\u7528\u6237\u767B\u5F55"\u65B0\u5BC6\u7801"\u4E0D\u5141\u8BB8\u4E3A\u7A7A! + + +io.sc.platform.core.audit.AuditLogAction.ADD=\u65B0\u589E +io.sc.platform.core.audit.AuditLogAction.REMOVE=\u5220\u9664 +io.sc.platform.core.audit.AuditLogAction.UPDATE=\u66F4\u65B0 +io.sc.platform.core.audit.AuditLogAction.QUERY=\u67E5\u8BE2 +io.sc.platform.core.audit.AuditLogAction.FIND_ONE=\u67E5\u627E\u5355\u4E2A\u8BB0\u5F55 +io.sc.platform.core.audit.AuditLogAction.EXPORT=\u5BFC\u51FA +io.sc.platform.core.audit.AuditLogAction.LOGIN=\u767B\u5F55 +io.sc.platform.core.audit.AuditLogAction.LOGOUT=\u9000\u51FA + +io.sc.platform.core.audit.AuditLogStatus.SUCCESS=\u6210\u529F +io.sc.platform.core.audit.AuditLogStatus.FAILED=\u5931\u8D25 diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/entity/AuditorEntity.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/entity/AuditorEntity.java index faf050a0..aaa4d955 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/entity/AuditorEntity.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/entity/AuditorEntity.java @@ -1,7 +1,7 @@ package io.sc.platform.orm.entity; import com.fasterxml.jackson.annotation.JsonProperty; -import io.sc.platform.orm.enums.DataComeFrom; +import io.sc.platform.orm.api.enums.DataComeFrom; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; diff --git a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DaoExceptionProvider.java b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DaoExceptionProvider.java index 245457c7..3e9a651c 100644 --- a/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DaoExceptionProvider.java +++ b/io.sc.platform.orm/src/main/java/io/sc/platform/orm/service/support/DaoExceptionProvider.java @@ -2,17 +2,17 @@ package io.sc.platform.orm.service.support; import java.io.Serializable; -import io.sc.platform.orm.exception.CreateNullObjectException; -import io.sc.platform.orm.exception.CreateObjectAlreadyExistsException; -import io.sc.platform.orm.exception.DeleteNullObjectException; -import io.sc.platform.orm.exception.DeleteNullPrimaryKeyCollectionException; -import io.sc.platform.orm.exception.DeleteNullPrimaryKeyException; -import io.sc.platform.orm.exception.DeleteObjectNotExistsException; -import io.sc.platform.orm.exception.DeleteOperateNotAllowedException; -import io.sc.platform.orm.exception.UpdateNullNewObjectException; -import io.sc.platform.orm.exception.UpdateNullOldObjectPrimaryKeyException; -import io.sc.platform.orm.exception.UpdateObjectAlreadyExistsException; -import io.sc.platform.orm.exception.UpdateOldObjectNotExistsException; +import io.sc.platform.orm.api.exception.CreateNullObjectException; +import io.sc.platform.orm.api.exception.CreateObjectAlreadyExistsException; +import io.sc.platform.orm.api.exception.DeleteNullObjectException; +import io.sc.platform.orm.api.exception.DeleteNullPrimaryKeyCollectionException; +import io.sc.platform.orm.api.exception.DeleteNullPrimaryKeyException; +import io.sc.platform.orm.api.exception.DeleteObjectNotExistsException; +import io.sc.platform.orm.api.exception.DeleteOperateNotAllowedException; +import io.sc.platform.orm.api.exception.UpdateNullNewObjectException; +import io.sc.platform.orm.api.exception.UpdateNullOldObjectPrimaryKeyException; +import io.sc.platform.orm.api.exception.UpdateObjectAlreadyExistsException; +import io.sc.platform.orm.api.exception.UpdateOldObjectNotExistsException; public interface DaoExceptionProvider { /** diff --git a/io.sc.platform.orm/src/main/resources/META-INF/platform/plugins/messages.json b/io.sc.platform.orm/src/main/resources/META-INF/platform/plugins/messages.json deleted file mode 100644 index 1a1759d5..00000000 --- a/io.sc.platform.orm/src/main/resources/META-INF/platform/plugins/messages.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "includes":[ - "io/sc/platform/orm/jpa/i18n/enum", - "io/sc/platform/orm/jpa/i18n/messages" - ] -} \ No newline at end of file diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum.properties deleted file mode 100644 index 63551373..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum.properties +++ /dev/null @@ -1,11 +0,0 @@ -# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanTrueFalse.TRUE=True -org.wsp.framework.jpa.enums.BooleanTrueFalse.FALSE=False - -# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanYesNo.TRUE=Yes -org.wsp.framework.jpa.enums.BooleanYesNo.FALSE=No - -# \u6570\u636E\u6765\u6E90\u679A\u4E3E -org.wsp.framework.jpa.enums.DataComeFrom.MANUAL=Manual -org.wsp.framework.jpa.enums.DataComeFrom.AUTO=Auto \ No newline at end of file diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_tw_CN.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_tw_CN.properties deleted file mode 100644 index 3a9000ec..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_tw_CN.properties +++ /dev/null @@ -1,11 +0,0 @@ -# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanTrueFalse.TRUE=\u771F -org.wsp.framework.jpa.enums.BooleanTrueFalse.FALSE=\u5047 - -# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanYesNo.TRUE=\u662F -org.wsp.framework.jpa.enums.BooleanYesNo.FALSE=\u5426 - -# \u6570\u636E\u6765\u6E90\u679A\u4E3E -org.wsp.framework.jpa.enums.DataComeFrom.MANUAL=\u4EBA\u5DE5 -org.wsp.framework.jpa.enums.DataComeFrom.AUTO=\u81EA\u52D5\u5C0E\u5165 \ No newline at end of file diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_zh_CN.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_zh_CN.properties deleted file mode 100644 index 1f89f639..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/enum_zh_CN.properties +++ /dev/null @@ -1,11 +0,0 @@ -# \u8868\u8FBE\u771F\u5047\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanTrueFalse.TRUE=\u771F -org.wsp.framework.jpa.enums.BooleanTrueFalse.FALSE=\u5047 - -# \u8868\u8FBE\u662F\u5426\u7684 Boolean \u679A\u4E3E -org.wsp.framework.jpa.enums.BooleanYesNo.TRUE=\u662F -org.wsp.framework.jpa.enums.BooleanYesNo.FALSE=\u5426 - -# \u6570\u636E\u6765\u6E90\u679A\u4E3E -org.wsp.framework.jpa.enums.DataComeFrom.MANUAL=\u4EBA\u5DE5 -org.wsp.framework.jpa.enums.DataComeFrom.AUTO=\u81EA\u52A8\u5BFC\u5165 \ No newline at end of file diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages.properties deleted file mode 100644 index 23832357..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages.properties +++ /dev/null @@ -1,36 +0,0 @@ -org.wsp.framework.jpa.exception.CreateException=Create Failed! -org.wsp.framework.jpa.exception.CreateNullObjectException=Create Failed,the New Object is Null! -org.wsp.framework.jpa.exception.CreateNullPrimaryKeyException=Create Failed,the New Object's Primary Key is Null! -org.wsp.framework.jpa.exception.CreateObjectAlreadyExistsException=Create Failed,The New Object already Exists! - -org.wsp.framework.jpa.exception.UpdateException=Update Failed! -org.wsp.framework.jpa.exception.UpdateNullOldObjectPrimaryKeyException=Update Failed,the Old Object's Primary Key is Null! -org.wsp.framework.jpa.exception.UpdateNullNewObjectPrimaryKeyException=Update Failed,the New Object's Primary Key is Null! -org.wsp.framework.jpa.exception.UpdateNullNewObjectException=Update Failed,the New Object is Null! -org.wsp.framework.jpa.exception.UpdateOldObjectNotExistsException=Update Failed,the Old Object Not Exists! -org.wsp.framework.jpa.exception.UpdateObjectAlreadyExistsException=Update Failed,The New Object already Exists! - -org.wsp.framework.jpa.exception.DeleteException=Delete Failed! -org.wsp.framework.jpa.exception.DeleteObjectNotExistsException=Delete Failed,the Object will be deleted Not Exists! -org.wsp.framework.jpa.exception.DeleteOperateNotAllowedException=Delete Failed, the Object was reserved by system! -org.wsp.framework.jpa.exception.DeleteNullObjectException=Delete Failed,the Object will be deleted is Null! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyCollectionException=Delete Failed,the Primary Key Collection which will be deleted is Empty! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyException=Delete Failed,the Primary Key which will be deleted is Empty! - -org.wsp.framework.jpa.exception.UserRawPasswordEmptyException=Raw Password Not allow Empty! -org.wsp.framework.jpa.exception.UserRawPasswordNotMatchException=Raw Password Error! -org.wsp.framework.jpa.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=The New Password and Confirm New Password NOT same! -org.wsp.framework.jpa.exception.UserNewPasswordEmptyException=The New Password Not allow Empty! - -org.wsp.framework.jpa.model.access.support.AccessType.ADD=Add -org.wsp.framework.jpa.model.access.support.AccessType.REMOVE=Remove -org.wsp.framework.jpa.model.access.support.AccessType.UPDATE=Update -org.wsp.framework.jpa.model.access.support.AccessType.QUERY=Query -org.wsp.framework.jpa.model.access.support.AccessType.FIND_ONE=Find One -org.wsp.framework.jpa.model.access.support.AccessType.EXPORT=Export -org.wsp.framework.jpa.model.access.support.AccessType.LOGIN=Login -org.wsp.framework.jpa.model.access.support.AccessType.LOGOUT=Logout - -org.wsp.framework.jpa.model.access.support.AccessStatus.SUCCESS=Success -org.wsp.framework.jpa.model.access.support.AccessStatus.FAILED=Failed -org.wsp.framework.jpa.model.access.support.AccessStatus.EXCEPTION=Exception diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_tw_CN.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_tw_CN.properties deleted file mode 100644 index 3465ab3c..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_tw_CN.properties +++ /dev/null @@ -1,37 +0,0 @@ -org.wsp.framework.jpa.exception.CreateException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557! -org.wsp.framework.jpa.exception.CreateNullObjectException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u65B0\u589E\u5C0D\u8C61\u70BA\u7A7A! -org.wsp.framework.jpa.exception.CreateNullPrimaryKeyException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u65B0\u589E\u5C0D\u8C61\u7684\u4E3B\u9375(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! -org.wsp.framework.jpa.exception.CreateObjectAlreadyExistsException=\u65B0\u589E\u64CD\u4F5C\u5931\u6557,\u7CFB\u7D71\u4E2D\u5DF2\u7D93\u5B58\u5728\u8A72\u5C0D\u8C61! - -org.wsp.framework.jpa.exception.UpdateException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557! -org.wsp.framework.jpa.exception.UpdateNullOldObjectPrimaryKeyException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u88AB\u66F4\u65B0\u5C0D\u8C61\u7684\u4E3B\u9375(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! -org.wsp.framework.jpa.exception.UpdateNullNewObjectPrimaryKeyException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u66F4\u65B0\u5BF9\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6A19\u8B58\u65B0\u589E\u5C0D\u8C61,\u5982\u5C0D\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! -org.wsp.framework.jpa.exception.UpdateNullNewObjectException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u66F4\u65B0\u5BF9\u8C61\u70BA\u7A7A! -org.wsp.framework.jpa.exception.UpdateOldObjectNotExistsException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u88AB\u66F4\u65B0\u7684\u5BF9\u8C61\u4E0D\u5B58\u5728! -org.wsp.framework.jpa.exception.UpdateObjectAlreadyExistsException=\u66F4\u65B0\u64CD\u4F5C\u5931\u6557,\u7CFB\u7D71\u4E2D\u5DF2\u7D93\u5B58\u5728\u8A72\u5C0D\u8C61! - -org.wsp.framework.jpa.exception.DeleteException=\u522A\u9664\u64CD\u4F5C\u5931\u6557! -org.wsp.framework.jpa.exception.DeleteObjectNotExistsException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u4E0D\u5B58\u5728! -org.wsp.framework.jpa.exception.DeleteOperateNotAllowedException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u6B64\u8A18\u9304\u70BA\u7CFB\u7D71\u4FDD\u7559\u8A18\u9304,\u7121\u6CD5\u5220\u9664! -org.wsp.framework.jpa.exception.DeleteNullObjectException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u70BA\u7A7A! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyCollectionException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u79F0)\u96C6\u5408\u70BA\u7A7A! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyException=\u522A\u9664\u64CD\u4F5C\u5931\u6557,\u88AB\u522A\u9664\u5C0D\u8C61\u7684\u4E3B\u952E(\u552F\u4E00\u6807\u8BC6\u65B0\u589E\u5BF9\u8C61,\u5982\u5BF9\u8C61\u7684\u540D\u7A31)\u70BA\u7A7A! - -org.wsp.framework.jpa.exception.UserRawPasswordEmptyException=\u7528\u6236\u767B\u9304"\u539F\u5BC6\u78BC"\u4E0D\u5141\u8A31\u70BA\u7A7A! -org.wsp.framework.jpa.exception.UserRawPasswordNotMatchException=\u7528\u6236\u767B\u9304"\u539F\u5BC6\u78BC"\u932F\u8AA4! -org.wsp.framework.jpa.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=\u7528\u6236\u767B\u9304"\u65B0\u5BC6\u78BC"\u548C"\u65B0\u5BC6\u78BC\u78BA\u8A8D"\u4E0D\u4E00\u81F4! -org.wsp.framework.jpa.exception.UserNewPasswordEmptyException=\u7528\u6236\u767B\u9304"\u65B0\u5BC6\u78BC"\u4E0D\u5141\u8A31\u70BA\u7A7A! - - -org.wsp.framework.jpa.model.access.support.AccessType.ADD=\u65B0\u589E -org.wsp.framework.jpa.model.access.support.AccessType.REMOVE=\u522A\u9664 -org.wsp.framework.jpa.model.access.support.AccessType.UPDATE=\u66F4\u65B0 -org.wsp.framework.jpa.model.access.support.AccessType.QUERY=\u67E5\u8A62 -org.wsp.framework.jpa.model.access.support.AccessType.FIND_ONE=\u67E5\u627E\u55AE\u500B\u8A18\u9304 -org.wsp.framework.jpa.model.access.support.AccessType.EXPORT=\u5C0E\u51FA -org.wsp.framework.jpa.model.access.support.AccessType.LOGIN=\u767B\u9304 -org.wsp.framework.jpa.model.access.support.AccessType.LOGOUT=\u9000\u51FA - -org.wsp.framework.jpa.model.access.support.AccessStatus.SUCCESS=\u6210\u529F -org.wsp.framework.jpa.model.access.support.AccessStatus.FAILED=\u5931\u6557 -org.wsp.framework.jpa.model.access.support.AccessStatus.EXCEPTION=\u9055\u4F8B diff --git a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_zh_CN.properties b/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_zh_CN.properties deleted file mode 100644 index 3cd8b150..00000000 --- a/io.sc.platform.orm/src/main/resources/io/sc/platform/orm/jpa/i18n/messages_zh_CN.properties +++ /dev/null @@ -1,37 +0,0 @@ -org.wsp.framework.jpa.exception.CreateException=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25! -org.wsp.framework.jpa.exception.CreateNullObjectException=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25,\u65b0\u589e\u5bf9\u8c61\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.CreateNullPrimaryKeyException=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25,\u65b0\u589e\u5bf9\u8c61\u7684\u4e3b\u952e(\u552f\u4e00\u6807\u8bc6\u65b0\u589e\u5bf9\u8c61,\u5982\u5bf9\u8c61\u7684\u540d\u79f0)\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.CreateObjectAlreadyExistsException=\u65b0\u589e\u64cd\u4f5c\u5931\u8d25,\u7cfb\u7edf\u4e2d\u5df2\u7ecf\u5b58\u5728\u8be5\u5bf9\u8c61! - -org.wsp.framework.jpa.exception.UpdateException=\u66f4\u65b0\u64cd\u4f5c\u5931\u8d25! -org.wsp.framework.jpa.exception.UpdateNullOldObjectPrimaryKeyException=\u66f4\u65b0\u5931\u8d25,\u88ab\u66f4\u65b0\u5bf9\u8c61\u7684\u4e3b\u952e(\u552f\u4e00\u6807\u8bc6\u65b0\u589e\u5bf9\u8c61,\u5982\u5bf9\u8c61\u7684\u540d\u79f0)\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.UpdateNullNewObjectPrimaryKeyException=\u66f4\u65b0\u5931\u8d25,\u66f4\u65b0\u5bf9\u8c61\u7684\u4e3b\u952e(\u552f\u4e00\u6807\u8bc6\u65b0\u589e\u5bf9\u8c61,\u5982\u5bf9\u8c61\u7684\u540d\u79f0)\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.UpdateNullNewObjectException=\u66f4\u65b0\u5931\u8d25,\u66f4\u65b0\u5bf9\u8c61\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.UpdateOldObjectNotExistsException=\u66f4\u65b0\u5931\u8d25,\u88ab\u66f4\u65b0\u7684\u5bf9\u8c61\u4e0d\u5b58\u5728! -org.wsp.framework.jpa.exception.UpdateObjectAlreadyExistsException=\u66f4\u65b0\u5931\u8d25,\u7cfb\u7edf\u4e2d\u5df2\u7ecf\u5b58\u5728\u8be5\u5bf9\u8c61! - -org.wsp.framework.jpa.exception.DeleteException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25! -org.wsp.framework.jpa.exception.DeleteObjectNotExistsException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25,\u88ab\u5220\u9664\u5bf9\u8c61\u4e0d\u5b58\u5728! -org.wsp.framework.jpa.exception.DeleteOperateNotAllowedException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25,\u6b64\u8bb0\u5f55\u4e3a\u7cfb\u7edf\u4fdd\u7559\u8bb0\u5f55,\u65e0\u6cd5\u5220\u9664! -org.wsp.framework.jpa.exception.DeleteNullObjectException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25,\u88ab\u5220\u9664\u5bf9\u8c61\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyCollectionException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25,\u88ab\u5220\u9664\u5bf9\u8c61\u7684\u4e3b\u952e(\u552f\u4e00\u6807\u8bc6\u65b0\u589e\u5bf9\u8c61,\u5982\u5bf9\u8c61\u7684\u540d\u79f0)\u96c6\u5408\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.DeleteNullPrimaryKeyException=\u5220\u9664\u64cd\u4f5c\u5931\u8d25,\u88ab\u5220\u9664\u5bf9\u8c61\u7684\u4e3b\u952e(\u552f\u4e00\u6807\u8bc6\u65b0\u589e\u5bf9\u8c61,\u5982\u5bf9\u8c61\u7684\u540d\u79f0)\u4e3a\u7a7a! - -org.wsp.framework.jpa.exception.UserRawPasswordEmptyException=\u7528\u6237\u767b\u5f55"\u539f\u5bc6\u7801"\u4e0d\u5141\u8bb8\u4e3a\u7a7a! -org.wsp.framework.jpa.exception.UserRawPasswordNotMatchException=\u7528\u6237\u767b\u5f55"\u539f\u5bc6\u7801"\u9519\u8bef! -org.wsp.framework.jpa.exception.UserNewPasswordAndConfirmNewPasswordNotMatchException=\u7528\u6237\u767b\u5f55"\u65b0\u5bc6\u7801"\u548c"\u65b0\u5bc6\u7801\u786e\u8ba4"\u4e0d\u4e00\u81f4! -org.wsp.framework.jpa.exception.UserNewPasswordEmptyException=\u7528\u6237\u767b\u5f55"\u65b0\u5bc6\u7801"\u4e0d\u5141\u8bb8\u4e3a\u7a7a! - - -org.wsp.framework.jpa.model.access.support.AccessType.ADD=\u65b0\u589e -org.wsp.framework.jpa.model.access.support.AccessType.REMOVE=\u5220\u9664 -org.wsp.framework.jpa.model.access.support.AccessType.UPDATE=\u66f4\u65b0 -org.wsp.framework.jpa.model.access.support.AccessType.QUERY=\u67e5\u8be2 -org.wsp.framework.jpa.model.access.support.AccessType.FIND_ONE=\u67e5\u627e\u5355\u4e2a\u8bb0\u5f55 -org.wsp.framework.jpa.model.access.support.AccessType.EXPORT=\u5bfc\u51fa -org.wsp.framework.jpa.model.access.support.AccessType.LOGIN=\u767b\u5f55 -org.wsp.framework.jpa.model.access.support.AccessType.LOGOUT=\u9000\u51fa - -org.wsp.framework.jpa.model.access.support.AccessStatus.SUCCESS=\u6210\u529f -org.wsp.framework.jpa.model.access.support.AccessStatus.FAILED=\u5931\u8d25 -org.wsp.framework.jpa.model.access.support.AccessStatus.EXCEPTION=\u8fdd\u4f8b diff --git a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/corporation/CorporationVo.java b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/corporation/CorporationVo.java index 092190fd..43257661 100644 --- a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/corporation/CorporationVo.java +++ b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/corporation/CorporationVo.java @@ -1,7 +1,7 @@ package io.sc.platform.system.api.corporation; import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import io.sc.platform.orm.vo.AuditorVo; +import io.sc.platform.orm.api.vo.AuditorVo; @JsonPropertyOrder({ diff --git a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/dictionary/DictionaryVo.java b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/dictionary/DictionaryVo.java index e956bd02..502d07bf 100644 --- a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/dictionary/DictionaryVo.java +++ b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/dictionary/DictionaryVo.java @@ -1,6 +1,6 @@ package io.sc.platform.system.api.dictionary; -import io.sc.platform.orm.vo.AuditorVo; +import io.sc.platform.orm.api.vo.AuditorVo; public class DictionaryVo extends AuditorVo { private String id; diff --git a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/ds/DsVo.java b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/ds/DsVo.java index 1a9960ae..95ce7af3 100644 --- a/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/ds/DsVo.java +++ b/io.sc.platform.system.api/src/main/java/io/sc/platform/system/api/ds/DsVo.java @@ -1,6 +1,6 @@ package io.sc.platform.system.api.ds; -import io.sc.platform.orm.vo.AuditorVo; +import io.sc.platform.orm.api.vo.AuditorVo; public class DsVo extends AuditorVo { private String id; diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/MessageSourceAutoConfiguration.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/MessageSourceAutoConfiguration.java index 26c51562..452c4f96 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/MessageSourceAutoConfiguration.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/MessageSourceAutoConfiguration.java @@ -1,6 +1,7 @@ package io.sc.platform.system.autoconfigure; -import io.sc.platform.core.autoconfigure.support.MessageSourceBaseNameUtil; +import io.sc.platform.core.i18n.MessageSourceBaseName; +import io.sc.platform.core.i18n.PlatformResourceBundleMessageSource; import io.sc.platform.system.autoconfigure.support.CompositeMessageSource; import io.sc.platform.system.autoconfigure.support.DatabaseMessageSource; import io.sc.platform.system.i18n.jpa.repository.I18nRepository; @@ -40,8 +41,8 @@ public class MessageSourceAutoConfiguration { @Bean @ConditionalOnMissingBean public MessageSource messageSource(MessageSourceProperties messageSourceProperties){ - ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource(); - resourceBundleMessageSource.setBasenames(MessageSourceBaseNameUtil.getBaseNames(messageSourceProperties.getBasename())); + PlatformResourceBundleMessageSource resourceBundleMessageSource = new PlatformResourceBundleMessageSource(); + resourceBundleMessageSource.setBasenames(MessageSourceBaseName.getBaseNames(messageSourceProperties.getBasename())); if (messageSourceProperties.getEncoding() != null) { resourceBundleMessageSource.setDefaultEncoding(messageSourceProperties.getEncoding().name()); } @@ -54,9 +55,9 @@ public class MessageSourceAutoConfiguration { } //数据库消息源 - DatabaseMessageSource databaseMessageSource =new DatabaseMessageSource(); - databaseMessageSource.setRepository(repository); - + DatabaseMessageSource databaseMessageSource =new DatabaseMessageSource(repository); + databaseMessageSource.reload(); + //组合消息源(先从数据库消息源中查找,如果不存在,再从资源包消息源中查找) CompositeMessageSource compositeMessageSource =new CompositeMessageSource(); compositeMessageSource.addMessageSource(databaseMessageSource); diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/CompositeMessageSource.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/CompositeMessageSource.java index 0d419619..7034a57f 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/CompositeMessageSource.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/CompositeMessageSource.java @@ -1,19 +1,21 @@ package io.sc.platform.system.autoconfigure.support; +import io.sc.platform.core.enums.Language; +import io.sc.platform.core.i18n.PlatformMessageSource; +import io.sc.platform.core.i18n.PlatformMessageSourceLoader; +import io.sc.platform.core.i18n.PlatformResourceBundleMessageSource; import org.springframework.context.MessageSource; import org.springframework.context.MessageSourceResolvable; import org.springframework.context.NoSuchMessageException; import org.springframework.lang.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; +import java.util.*; /** * 组合消息源 * */ -public class CompositeMessageSource implements MessageSource{ +public class CompositeMessageSource implements MessageSource, PlatformMessageSource { private List messageSources =new ArrayList(); public List getMessageSources() { @@ -28,15 +30,62 @@ public class CompositeMessageSource implements MessageSource{ messageSources.add(messageSource); } } - - public void reload(){ + + @Override + public void reload() { + for(MessageSource messageSource : messageSources){ + if(messageSource.getClass().isAssignableFrom(PlatformMessageSource.class)){ + ((PlatformMessageSource)messageSource).reload(); + } + } + } + + @Override + public Map> getMessages() { + Map> result =new LinkedHashMap<>(); + Map> resourceBundleMessageMap =new LinkedHashMap<>(); + Map> databaseMessageMap =new LinkedHashMap<>(); for(MessageSource messageSource : messageSources){ if(messageSource instanceof DatabaseMessageSource){ - ((DatabaseMessageSource)messageSource).reload(); + databaseMessageMap =((DatabaseMessageSource) messageSource).getMessages(); + }else if(messageSource instanceof PlatformResourceBundleMessageSource){ + resourceBundleMessageMap =((PlatformResourceBundleMessageSource)messageSource).getMessages(); } } + result.putAll(resourceBundleMessageMap); + for(Map.Entry> entry : databaseMessageMap.entrySet()){ + Language language =entry.getKey(); + result.putIfAbsent(language,new LinkedHashMap<>()); + Map messages =result.get(language); + messages.putAll(entry.getValue()); + } + return result; } - + + @Override + public Map> getMessages(String... messageKeys) { + Map> messageMap = getMessages(); + if(messageMap.isEmpty()){ + return Collections.emptyMap(); + } + Map> result =new LinkedHashMap<>(); + for(Map.Entry> entry : messageMap.entrySet()){ + Language language =entry.getKey(); + Map messages =entry.getValue(); + result.putIfAbsent(language,new LinkedHashMap<>()); + Map map =result.get(language); + for(String key : messageKeys){ + map.put(key,messages.get(key)); + } + } + return result; + } + + @Override + public Map getMessages(Language language) { + return getMessages().get(language); + } + @Override public String getMessage(String code, Object[] args, String defaultMessage, Locale locale) { for(MessageSource messageSource : messageSources){ diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/DatabaseMessageSource.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/DatabaseMessageSource.java index ee8a5470..f93ae9f6 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/DatabaseMessageSource.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/autoconfigure/support/DatabaseMessageSource.java @@ -1,5 +1,8 @@ package io.sc.platform.system.autoconfigure.support; +import io.sc.platform.core.Environment; +import io.sc.platform.core.enums.Language; +import io.sc.platform.core.i18n.PlatformMessageSource; import io.sc.platform.core.util.LocaleUtil; import io.sc.platform.system.api.i18n.I18nLanguage; import io.sc.platform.system.i18n.jpa.entity.I18nEntity; @@ -11,61 +14,58 @@ import org.springframework.lang.Nullable; import org.springframework.util.StringUtils; import java.text.MessageFormat; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** * 数据库消息源 */ -public class DatabaseMessageSource implements MessageSource { +public class DatabaseMessageSource implements MessageSource, PlatformMessageSource { private I18nRepository repository; - private Map properties =new ConcurrentHashMap(); - - /** - * 构造器 - */ - public DatabaseMessageSource(){ - } + private Map> messages =new LinkedHashMap<>(); public DatabaseMessageSource(I18nRepository repository){ this.repository =repository; } - - public I18nRepository getRepository() { - return repository; - } - - public void setRepository(I18nRepository repository) { - this.repository = repository; - } - public Map getProperties() { - return properties; - } - - public void setProperties(Map properties) { - this.properties = properties; - } - /** * 重新加载所有国际化消息 */ public void reload() { - properties.clear(); - List messages =repository.findAll(); - if(messages!=null && messages.size()>0){ - properties =new ConcurrentHashMap(messages.size()); - for(I18nEntity message : messages){ - if(message!=null) { - I18nLanguage lang =message.getLang(); - if(lang!=null) { - properties.put(message.getCode() + "(" + lang.toString() + ")",message.getMessage()==null?"":message.getMessage()); - } - } + messages.clear(); + messages =load(); + } + + @Override + public Map> getMessages() { + if(this.messages==null || this.messages.isEmpty() || Environment.getInstance().isRunningInDevelopment()){ + this.messages =load(); + } + return this.messages; + } + + @Override + public Map> getMessages(String... messageKeys) { + Map> messageMap = getMessages(); + if(messageMap.isEmpty()){ + return Collections.emptyMap(); + } + Map> result =new LinkedHashMap<>(); + for(Map.Entry> entry : messageMap.entrySet()){ + Language language =entry.getKey(); + Map messages =entry.getValue(); + result.putIfAbsent(language,new LinkedHashMap<>()); + Map map =result.get(language); + for(String key : messageKeys){ + map.put(key,messages.get(key)); } } + return result; + } + + @Override + public Map getMessages(Language language) { + return getMessages().get(language); } /** @@ -76,12 +76,17 @@ public class DatabaseMessageSource implements MessageSource { */ public String getDatabaseMessageText(String code, Locale locale) { if(StringUtils.hasText(code)){ - String[] candidateCodes = LocaleUtil.getCandidateCode(locale, "(", ")"); + String[] candidateCodes = LocaleUtil.getCandidateCode(locale); if(candidateCodes!=null && candidateCodes.length>0){ for(String candidateCode : candidateCodes){ - String message =properties.get(code + candidateCode); - if(message!=null){ - return message; + if(Language.exists(candidateCode)) { + Map messages = this.messages.get(Language.valueOf(candidateCode)); + if (messages != null) { + String message = messages.get(code); + if (message != null) { + return message; + } + } } } } @@ -132,4 +137,22 @@ public class DatabaseMessageSource implements MessageSource { } return null; } + + private synchronized Map> load(){ + List entities =this.repository.findAll(); + if(entities==null || entities.isEmpty()){ + return Collections.emptyMap(); + } + Map> messageMap =new LinkedHashMap<>(); + for(I18nEntity message : entities){ + Language lang =message.getLang(); + if(lang==null){ + continue; + } + messageMap.putIfAbsent(lang,new LinkedHashMap<>()); + Map value =messageMap.get(lang); + value.put(message.getCode(),message.getMessage()); + } + return messageMap; + } } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nController.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nController.java index ebf4b0fa..82786b3f 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nController.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nController.java @@ -1,5 +1,6 @@ package io.sc.platform.system.i18n.controller; +import io.sc.platform.core.service.MessageSourceService; import io.sc.platform.mvc.controller.support.RestCrudController; import io.sc.platform.system.api.i18n.I18n; import io.sc.platform.system.api.i18n.I18nLanguage; @@ -9,6 +10,7 @@ import io.sc.platform.system.auditlog.service.AuditLogService; import io.sc.platform.system.i18n.jpa.entity.I18nEntity; import io.sc.platform.system.i18n.jpa.repository.I18nRepository; import io.sc.platform.system.i18n.service.I18nService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Required; import org.springframework.web.bind.annotation.*; @@ -17,19 +19,16 @@ import java.util.Map; @RestController @RequestMapping("/api/system/i18n") public class I18nController extends RestCrudController { - @GetMapping(value={"getI18nMessages/{lang}","getI18nMessages"}) - public Map getI18nMessages(@PathVariable(name = "lang",required = false)I18nLanguage language) throws Exception{ - return service.getI18nMessages(language); - } + @Autowired private MessageSourceService messageSourceService; - @PostMapping("importFromProperties") - public void importFromProperties() throws Exception{ - service.importFromProperties(true); + @PostMapping("importMessages") + public void importMessages() throws Exception{ + service.importMessages(true); } - @PostMapping(value="removeFromProperties") - public void removeFromProperties() throws Exception{ - service.removeFromProperties(); + @PostMapping(value="removeMessages") + public void removeMessages() throws Exception{ + service.removeMessages(); } @PostMapping(value="removeAll") diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/entity/I18nEntity.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/entity/I18nEntity.java index 34ea5e83..c655f29a 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/entity/I18nEntity.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/entity/I18nEntity.java @@ -1,6 +1,7 @@ package io.sc.platform.system.i18n.jpa.entity; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.sc.platform.core.enums.Language; import io.sc.platform.orm.converter.NumericBooleanConverter; import io.sc.platform.orm.entity.AuditorEntity; import io.sc.platform.orm.entity.BaseEntity; @@ -37,7 +38,7 @@ public class I18nEntity extends AuditorEntity { //语言 @Enumerated(EnumType.STRING) @Column(name="_LANG") - private I18nLanguage lang; + private Language lang; //消息文本 @Column(name="_MESSAGE") @@ -48,7 +49,7 @@ public class I18nEntity extends AuditorEntity { public I18nEntity(String id) { this.id =id; } - public I18nEntity(String code,I18nLanguage lang,String message) { + public I18nEntity(String code,Language lang,String message) { this.code =code; this.lang =lang; this.message =message; @@ -70,11 +71,11 @@ public class I18nEntity extends AuditorEntity { this.code = code; } - public I18nLanguage getLang() { + public Language getLang() { return lang; } - public void setLang(I18nLanguage lang) { + public void setLang(Language lang) { this.lang = lang; } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/repository/I18nRepository.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/repository/I18nRepository.java index 70cf48e1..0e96d2f2 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/repository/I18nRepository.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/jpa/repository/I18nRepository.java @@ -1,5 +1,6 @@ package io.sc.platform.system.i18n.jpa.repository; +import io.sc.platform.core.enums.Language; import io.sc.platform.orm.repository.DaoRepository; import io.sc.platform.system.api.i18n.I18nLanguage; import io.sc.platform.system.i18n.jpa.entity.I18nEntity; @@ -7,6 +8,6 @@ import io.sc.platform.system.i18n.jpa.entity.I18nEntity; import java.util.List; public interface I18nRepository extends DaoRepository { - public I18nEntity findByCodeAndLang(String code, I18nLanguage lang); - public List findByLang(I18nLanguage lang); + public I18nEntity findByCodeAndLang(String code, Language lang); + public List findByLang(Language lang); } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java index 1332bef1..416cd650 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java @@ -10,33 +10,13 @@ import java.util.Map; public interface I18nService extends DaoService { /** - * 获取某个多语言消息 - * @param messageKey 消息 key - * @return 所有语言的详细(key:区域,value:多语言消息) - */ - public Map> getI18nMessages(String... messageKeys); - - /** - * 加载所有多语言消息 - * @param lang 语言 - * @return 所有多语言消息 Map - */ - public Map getI18nMessages(I18nLanguage lang); - - /** - * 从属性文件中加载多语言消息 - * @return 多语言消息实体对象集合 - */ - public List loadFromProperties(); - - /** - * 从属性文件中获取多语言消息并导入到数据库中 + * 从资源包属性文件中获取多语言消息并导入到数据库中 * @param overwrite 是否覆盖数据库中已经存在的多语言消息 */ - public void importFromProperties(boolean overwrite); + public void importMessages(boolean overwrite); /** - * 移除数据库中所有属性文件中配置的多语言消息 + * 移除数据库中所有资源包属性文件中配置的多语言消息 */ - public void removeFromProperties(); + public void removeMessages(); } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java index abac9186..2d79ac3e 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java @@ -1,5 +1,7 @@ package io.sc.platform.system.i18n.service.impl; +import io.sc.platform.core.enums.Language; +import io.sc.platform.core.i18n.PlatformResourceBundleMessageSource; import io.sc.platform.orm.service.impl.DaoServiceImpl; import io.sc.platform.system.api.i18n.I18nLanguage; import io.sc.platform.system.autoconfigure.support.CompositeMessageSource; @@ -28,143 +30,52 @@ public class I18nServiceImpl extends DaoServiceImpl> getI18nMessages(String... messageKeys) { - if(messageKeys==null || messageKeys.length<=0){ - return Collections.emptyMap(); - } - Map> result =new HashMap<>(); - for(I18nLanguage language : I18nLanguage.values()){ - Map messages =new HashMap<>(); - for(String messageKey : messageKeys) { - String message = compositeMessageSource.getMessage(messageKey, null, language.getLocale()); - messages.put(messageKey,message); - } - result.put(language.toString(),messages); - } - return result; - } - - @Override - public Map getI18nMessages(I18nLanguage lang) { - I18nLanguage language =(lang==null)?I18nLanguage.zh_CN:lang; - - // 属性文件多语言消息 map - List propertyEntities =loadFromProperties().stream().filter(e->lang.equals(e.getLang())).collect(Collectors.toList()); - Map propertyMap =new TreeMap<>(); - for(I18nEntity entity : propertyEntities){ - propertyMap.put(entity.getCode(),entity.getMessage()); - } - - // 数据库多语言消息 map - List databaseEntities =repository.findByLang(lang); - Map databaseMap =new HashMap<>(); - for(I18nEntity entity : databaseEntities){ - databaseMap.put(entity.getCode(),entity.getMessage()); - } - - // 数据库优先:用数据库中的多语言消息覆盖属性文件中的多语言消息 - propertyMap.putAll(databaseMap); - return propertyMap; - } - - @Override - public List loadFromProperties() { - Map urls =getPropertyUrls(); - if(urls==null || urls.isEmpty()){ - return Collections.emptyList(); - } - List result =new ArrayList<>(); - for(String url : urls.keySet()){ - I18nLanguage language =urls.get(url); - Resource rs = new DefaultResourceLoader().getResource(url); - if (!rs.exists()) { - log.warn("{} NOT exists", url); - continue; - } - try (InputStream ins = rs.getInputStream()) { - Properties properties = new Properties(); - properties.load(ins); - if (properties == null) { - log.warn("{} NOT exists", url); - continue; - } - Set keys = properties.keySet(); - if(keys==null || keys.isEmpty()){ - continue; - } - for (Object key : keys) { - result.add(new I18nEntity((String) key,language,properties.getProperty((String)key))); - } - } catch (IOException e) { - log.error("", e); - } - } - return result; - } - - @Override - public void importFromProperties(boolean overwrite) { - List entities =loadFromProperties(); - if(entities==null || entities.isEmpty()){ - return; - } - for(I18nEntity entity : entities){ - I18nEntity obj =repository.findByCodeAndLang(entity.getCode(),entity.getLang()); - if(obj!=null){ - if(overwrite){ - obj.setMessage(entity.getMessage()+"df"); - repository.save(obj); + public void importMessages(boolean overwrite) { + List messageSources =compositeMessageSource.getMessageSources(); + for(MessageSource messageSource : messageSources){ + if(messageSource instanceof PlatformResourceBundleMessageSource){ + PlatformResourceBundleMessageSource pMessageSource =(PlatformResourceBundleMessageSource)messageSource; + Map> messageMap =pMessageSource.getMessages(); + for(Map.Entry> entry : messageMap.entrySet()){ + Language language =entry.getKey(); + Map messages =entry.getValue(); + for(Map.Entry entry1 : messages.entrySet()){ + String code =entry1.getKey(); + String message =entry1.getValue(); + I18nEntity obj =repository.findByCodeAndLang(code,language); + if(obj!=null){ + if(overwrite){ + obj.setMessage(message); + repository.save(obj); + } + }else{ + repository.save(obj); + } + } } - }else{ - repository.save(entity); } } } @Override - public void removeFromProperties() { - List entities =loadFromProperties(); - if(entities==null || entities.isEmpty()){ - return; - } - for(I18nEntity entity : entities){ - I18nEntity obj =repository.findByCodeAndLang(entity.getCode(),entity.getLang()); - if(obj!=null){ - repository.delete(obj); - } - } - } - - private Map getPropertyUrls(){ - Set baseNames =getMessageSourceBaseNames(); - if(baseNames==null || baseNames.isEmpty()){ - return Collections.emptyMap(); - } - - Map urls = new HashMap<>(); - for(String baseName : baseNames){ - I18nLanguage[] languages = I18nLanguage.values(); - for (I18nLanguage language : languages) { - urls.put("classpath:/" + baseName.replace('.', '/') + (language.equals(I18nLanguage.en) ? "" : "_" + language.toString()) + ".properties",language); - } - } - return urls; - } - - private Set getMessageSourceBaseNames(){ - Set result =new HashSet<>(); + public void removeMessages() { List messageSources =compositeMessageSource.getMessageSources(); - if(messageSources!=null && messageSources.size()>0){ - for(MessageSource messageSource : messageSources){ - if(messageSource instanceof ResourceBundleMessageSource){ - ResourceBundleMessageSource r =(ResourceBundleMessageSource)messageSource; - Set baseNames =r.getBasenameSet(); - if(baseNames!=null && baseNames.size()>0){ - result.addAll(baseNames); + for(MessageSource messageSource : messageSources){ + if(messageSource instanceof PlatformResourceBundleMessageSource){ + PlatformResourceBundleMessageSource pMessageSource =(PlatformResourceBundleMessageSource)messageSource; + Map> messageMap =pMessageSource.getMessages(); + for(Map.Entry> entry : messageMap.entrySet()){ + Language language =entry.getKey(); + Map messages =entry.getValue(); + for(Map.Entry entry1 : messages.entrySet()){ + String code =entry1.getKey(); + I18nEntity obj =repository.findByCodeAndLang(code,language); + if(obj!=null){ + repository.delete(obj); + } } } } } - return result; } } diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/menu/converter/MenuEntityVoConverter.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/menu/converter/MenuEntityVoConverter.java index 29d8e12b..2e0fae10 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/menu/converter/MenuEntityVoConverter.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/menu/converter/MenuEntityVoConverter.java @@ -3,7 +3,7 @@ package io.sc.platform.system.menu.converter; import io.sc.platform.core.util.EnumUtil; import io.sc.platform.core.util.ObjectMapper4Json; import io.sc.platform.orm.EntityVoConverter; -import io.sc.platform.orm.enums.DataComeFrom; +import io.sc.platform.orm.api.enums.DataComeFrom; import io.sc.platform.system.api.menu.*; import io.sc.platform.system.enums.UrlOpenType; import io.sc.platform.system.menu.jpa.entity.*; diff --git a/io.sc.platform.system/src/main/resources/META-INF/platform/plugins/security.json b/io.sc.platform.system/src/main/resources/META-INF/platform/plugins/security.json index 782d3552..78c65b2a 100644 --- a/io.sc.platform.system/src/main/resources/META-INF/platform/plugins/security.json +++ b/io.sc.platform.system/src/main/resources/META-INF/platform/plugins/security.json @@ -1,7 +1,4 @@ { "permitPatterns":[ - "/api/system/i18n/getI18nMessages", - "/api/system/i18n/getI18nMessages/**/*", - "/api/system/user/appConfigure" ] } \ No newline at end of file