mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
1、system服务国际化相关表免校验租户、token配置;2、system服务枚举相关国际化处理;3、system服务资金管理easyexcel导出表头国际化处理;
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
package com.cf.imes.framework.common.constants;
|
||||
|
||||
/**
|
||||
* 国际化资源包常量
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2025/11/21 11:33
|
||||
*/
|
||||
public final class ResourceBundleConstants {
|
||||
/**
|
||||
* 枚举资源包
|
||||
*/
|
||||
public static final String MESSAGE_ENUM_PATH = "message_enum";
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.cf.imes.framework.common.util.i18n.core.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
* 国际化资源包工具类
|
||||
*
|
||||
* @author Gqr
|
||||
* @since 2025/11/21 11:16
|
||||
*/
|
||||
@Slf4j
|
||||
public class ResourceBundleUtils {
|
||||
|
||||
/**
|
||||
* 获取国际化资源值
|
||||
*
|
||||
* @param baseName 资源包位置
|
||||
* @param key i18n key
|
||||
* @param defaultMessage 没有获取到资源描述返回的缺省值
|
||||
* @param locale 语种
|
||||
* @param args 占位符数组
|
||||
* @return
|
||||
*/
|
||||
public static String getMessage(String baseName, String key, String defaultMessage, Locale locale, Object args) {
|
||||
try {
|
||||
ResourceBundle messageEnum = ResourceBundle.getBundle(baseName, locale);
|
||||
if (messageEnum != null) {
|
||||
String i18nMessage = messageEnum.getString(key);
|
||||
return MessageFormat.format(i18nMessage, args);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("[ResourceBundleUtils][getMessage]异常", e);
|
||||
}
|
||||
return defaultMessage;
|
||||
}
|
||||
}
|
||||
+6
-10
@@ -1,14 +1,13 @@
|
||||
package com.cf.imes.framework.common.validation;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
|
||||
import com.cf.imes.framework.common.core.IntArrayValuable;
|
||||
|
||||
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
@@ -17,14 +16,10 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class InEnumCollectionValidator implements ConstraintValidator<InEnum, Collection<Integer>> {
|
||||
|
||||
private List<Integer> values;
|
||||
|
||||
@Autowired
|
||||
private MessageSource messageSource;
|
||||
|
||||
@Override
|
||||
public void initialize(InEnum annotation) {
|
||||
IntArrayValuable[] values = annotation.value().getEnumConstants();
|
||||
@@ -41,14 +36,15 @@ public class InEnumCollectionValidator implements ConstraintValidator<InEnum, Co
|
||||
if (CollUtil.containsAll(values, list)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
String defaultConstraintMessageTemplate = context.getDefaultConstraintMessageTemplate();
|
||||
Locale locale = LocaleContextHolder.getLocale();
|
||||
String message = messageSource.getMessage(defaultConstraintMessageTemplate, new Object[]{CollUtil.join(list, ",")}, locale);
|
||||
defaultConstraintMessageTemplate = ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, defaultConstraintMessageTemplate, defaultConstraintMessageTemplate, locale, CollUtil.join(list, ","));;
|
||||
|
||||
// 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值)
|
||||
context.disableDefaultConstraintViolation(); // 禁用默认的 message 的值
|
||||
context.buildConstraintViolationWithTemplate(message).addConstraintViolation(); // 重新添加错误提示语句
|
||||
context.buildConstraintViolationWithTemplate(defaultConstraintMessageTemplate).addConstraintViolation(); // 重新添加错误提示语句
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
+5
-10
@@ -1,13 +1,12 @@
|
||||
package com.cf.imes.framework.common.validation;
|
||||
|
||||
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
|
||||
import com.cf.imes.framework.common.core.IntArrayValuable;
|
||||
|
||||
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -15,14 +14,10 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class InEnumValidator implements ConstraintValidator<InEnum, Integer> {
|
||||
|
||||
private List<Integer> values;
|
||||
|
||||
@Autowired
|
||||
private MessageSource messageSource;
|
||||
|
||||
@Override
|
||||
public void initialize(InEnum annotation) {
|
||||
IntArrayValuable[] values = annotation.value().getEnumConstants();
|
||||
@@ -45,12 +40,12 @@ public class InEnumValidator implements ConstraintValidator<InEnum, Integer> {
|
||||
}
|
||||
String defaultConstraintMessageTemplate = context.getDefaultConstraintMessageTemplate();
|
||||
Locale locale = LocaleContextHolder.getLocale();
|
||||
String message = messageSource.getMessage(defaultConstraintMessageTemplate, new Object[]{values.toString()}, locale);
|
||||
defaultConstraintMessageTemplate = ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, defaultConstraintMessageTemplate, defaultConstraintMessageTemplate, locale, values.toString());
|
||||
|
||||
// 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值)
|
||||
context.disableDefaultConstraintViolation(); // 禁用默认的 message 的值
|
||||
context.buildConstraintViolationWithTemplate(message).addConstraintViolation(); // 重新添加错误提示语句
|
||||
context.buildConstraintViolationWithTemplate(defaultConstraintMessageTemplate).addConstraintViolation(); // 重新添加错误提示语句
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ public @interface InScope {
|
||||
*/
|
||||
Class<? extends IntArrayValuable> value();
|
||||
|
||||
String message() default "{desc}不合法";
|
||||
String message() default "inScope.message";
|
||||
|
||||
String desc() default "";
|
||||
|
||||
|
||||
+10
-4
@@ -1,13 +1,17 @@
|
||||
package com.cf.imes.framework.common.validation;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.cf.imes.framework.common.constants.ResourceBundleConstants;
|
||||
import com.cf.imes.framework.common.core.IntArrayValuable;
|
||||
import com.cf.imes.framework.common.util.i18n.core.util.ResourceBundleUtils;
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -40,12 +44,14 @@ public class InScopeValidator implements ConstraintValidator<InScope, List<Integ
|
||||
if (values.containsAll(integers)) {
|
||||
return true;
|
||||
}
|
||||
String defaultConstraintMessageTemplate = constraintValidatorContext.getDefaultConstraintMessageTemplate();
|
||||
Locale locale = LocaleContextHolder.getLocale();
|
||||
String descValue = ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, desc, desc, locale, null);
|
||||
defaultConstraintMessageTemplate = ResourceBundleUtils.getMessage(ResourceBundleConstants.MESSAGE_ENUM_PATH, defaultConstraintMessageTemplate, defaultConstraintMessageTemplate, locale, descValue);;
|
||||
|
||||
// 校验不通过,自定义提示语句(因为,注解上的 value 是枚举类,无法获得枚举类的实际值)
|
||||
constraintValidatorContext.disableDefaultConstraintViolation(); // 禁用默认的 message 的值
|
||||
constraintValidatorContext.buildConstraintViolationWithTemplate(constraintValidatorContext.getDefaultConstraintMessageTemplate()
|
||||
.replace("{desc}", desc)).addConstraintViolation(); // 重新添加错误提示语句
|
||||
constraintValidatorContext.buildConstraintViolationWithTemplate(defaultConstraintMessageTemplate).addConstraintViolation(); // 重新添加错误提示语句
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user