ResponseCodeI18n.java
import lombok. Getter;
import lombok. ToString;
@Getter
@ToString
public enum ResponseCodeI18n {
QUESTIONNAIRE_SUCCESS ( 200 , "response.code.questionnaire.success" ) ,
QUESTIONNAIRE_FAILED ( 104 , "response.code.questionnaire.failed" ) ,
CREATE_WORKORDER_SUCCESS ( 200 , "response.code.createWorkOrder.success" ) ,
CREATE_WORKORDER_FAILED ( 105 , "response.code.createWorkOrder.failed" ) ,
CANCEL_WORKORDER_SUCCESS ( 200 , "response.code.cancelWorkOrder.success" ) ,
CANCEL_WORKORDER_FAILED ( 106 , "response.code.cancelWorkOrder.failed" ) ,
GET_WORKORDER_SUCCESS ( 200 , "response.code.getWorkOrder.success" ) ,
DEVICE_DOES_NOT_EXIST ( 100 , "response.code.device.doesNotExist" ) ,
BIND_DEVICE ( 200 , "response.code.device.bindDevice" ) ,
BIND_DEVICE_SUCCESS ( 200 , "response.code.device.bindDevice.success" ) ,
BINDED_DEVICE ( 101 , "response.code.device.bindedDevice" ) ,
DEVICE_NUM_NOT_EMPTY ( 102 , "response.code.device.deviceNumNotEmpty" ) ,
UNTYING_DEVICE_SUCCESS ( 200 , "response.code.device.untyingDeviceSuccess" ) ,
UNTYING_DEVICE_FAILED ( 103 , "response.code.device.untyingDeviceFailed" ) ,
SAP_ERROR ( 107 , "response.code.sapError" ) ,
TOKEN_ERROR ( 108 , "response.code.tokenError" ) ,
TOKEN_ERROR_EMPTY ( 109 , "response.code.tokenErrorEmpty" ) ,
LOGIN_SUCCESS ( 200 , "response.code.loginSuccess" ) ,
LOGIN_FAILED ( 115 , "response.code.loginFailed" ) ,
REGISTER_SUCCESS ( 200 , "response.code.registeredSuccessfully" ) ,
REGISTER_FAILED ( 116 , "response.code.registeredFailed" ) ,
REGISTER_FAILED_USER ( 117 , "response.code.registeredFailedUser" ) ,
WORK_ORDER_IMAGE ( 200 , "response.code.workOrderImage" ) ,
WORK_ORDER_IMAGE_QUERY ( 200 , "response.code.workOrderImage_Query" ) ,
EDIT_USER_SUCCESS ( 200 , "response.code.editUserSuccessfully" ) ,
EDIT_USER_FAILED ( 118 , "response.code.editUserFailed" ) ,
SUCCESS ( 1000 , "api.response.code.success" ) ,
FAIL ( - 1 , "api.response.code.fail" ) ;
private int code;
private String msg;
private ResponseCodeI18n ( int code, String msg) {
this . code = code;
this . msg = msg;
}
}
ApiResultI18n.java
import lombok. Data;
import java. io. IOException;
import java. io. Serializable;
@Data
public class ApiResultI18n implements Serializable {
private static final long serialVersionUID = 4518290031778225230 L;
private int code = 1000 ;
private String msg = "成功" ;
private Object data;
private ApiResultI18n ( ) { }
public ApiResultI18n ( String language) {
this . code = ResponseCodeI18n. SUCCESS. getCode ( ) ;
language = LanguageEnum. getLanguageType ( language) ;
try {
this . msg = I18nMessageUtil. getMessage ( language, ResponseCodeI18n. SUCCESS. getMsg ( ) , "SUCCESS" ) ;
} catch ( IOException e) {
this . msg = "SUCCESS" ;
}
}
public static ApiResultI18n success ( String language) {
return success ( null, language) ;
}
public static ApiResultI18n success ( Object data, String language) {
ApiResultI18n result = new ApiResultI18n ( language) ;
result. setData ( data) ;
return result;
}
public static ApiResultI18n failure ( String s, String language) {
return failure ( ResponseCodeI18n. FAIL. getCode ( ) , ResponseCodeI18n. FAIL. getMsg ( ) , null, language) ;
}
public static ApiResultI18n failure ( ResponseCodeI18n responseCodeI18n, String language) {
return failure ( responseCodeI18n. getCode ( ) , responseCodeI18n. getMsg ( ) , null, language) ;
}
public static ApiResultI18n myResponse ( ResponseCodeI18n responseCodeI18n, Object data, String language) {
return failure ( responseCodeI18n. getCode ( ) , responseCodeI18n. getMsg ( ) , data, language) ;
}
public static ApiResultI18n failure ( int code, String msg, String language) {
return failure ( code , msg, null, language) ;
}
public static ApiResultI18n failure ( int code, String msg, Object data, String language) {
ApiResultI18n result = new ApiResultI18n ( language) ;
language = LanguageEnum. getLanguageType ( language) ;
try {
msg = I18nMessageUtil. getMessage ( language, msg, msg) ;
} catch ( IOException e) {
msg = "Error" ;
}
result. setCode ( code) ;
result. setMsg ( msg) ;
result. setData ( data) ;
if ( data instanceof String ) {
String m = ( String) data;
if ( ! m. matches ( "^.*error$" ) ) {
m += "error" ;
}
}
return result;
}
}
package com. irootech. customercloud. common. util. i18nUtil;
import org. springframework. context. i18n. LocaleContextHolder;
import org. springframework. context. support. MessageSourceAccessor;
import org. springframework. context. support. ReloadableResourceBundleMessageSource;
import org. springframework. core. io. Resource;
import org. springframework. core. io. support. PathMatchingResourcePatternResolver;
import org. springframework. core. io. support. ResourcePatternResolver;
import java. io. IOException;
public class I18nMessageUtil {
private static MessageSourceAccessor accessor;
private static final String PATH_PARENT = "classpath:i18n/" ;
private static final String SUFFIX = ".properties" ;
private static ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver ( ) ;
private I18nMessageUtil ( ) {
}
private static void initMessageSourceAccessor ( String language) throws IOException {
Resource resource = resourcePatternResolver. getResource ( PATH_PARENT + language + SUFFIX) ;
String fileName = resource. getURL ( ) . toString ( ) ;
int lastIndex = fileName. lastIndexOf ( "." ) ;
String baseName = fileName. substring ( 0 , lastIndex) ;
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource ( ) ;
reloadableResourceBundleMessageSource. setBasename ( baseName) ;
reloadableResourceBundleMessageSource. setCacheSeconds ( 5 ) ;
reloadableResourceBundleMessageSource. setDefaultEncoding ( "UTF-8" ) ;
accessor = new MessageSourceAccessor ( reloadableResourceBundleMessageSource) ;
}
public static String getMessage ( String language, String message, String defaultMessage) throws IOException {
initMessageSourceAccessor ( language) ;
return accessor. getMessage ( message, defaultMessage, LocaleContextHolder. getLocale ( ) ) ;
}
}
package com. irootech. customercloud. common. util. i18nUtil;
import lombok. Getter;
import lombok. ToString;
import org. springframework. util. StringUtils;
@Getter
@ToString
public enum LanguageEnum {
LANGUAGE_EN_US ( "en_US" ) ,
LANGUAGE_ZH_CN ( "zh_CN" ) ;
private String language;
private LanguageEnum ( String language) {
this . language = language;
}
public static String getLanguageType ( String language) {
if ( StringUtils. isEmpty ( language) ) {
return LANGUAGE_ZH_CN. language;
}
for ( LanguageEnum languageEnum : LanguageEnum. values ( ) ) {
if ( languageEnum. language. equalsIgnoreCase ( language) ) {
return languageEnum. language;
}
}
return LANGUAGE_ZH_CN. language;
}
}
# language = en_us ( 美式英语)
# response code
response. code. questionnaire. failed = Failed to fill in the satisfaction survey
response. code. questionnaire. success = Successful completion of satisfaction survey
response. code. createWorkOrder. success = New Order Successful
response. code. createWorkOrder. failed = New order failed
response. code. cancelWorkOrder. success = Cancel work order successfully
response. code. cancelWorkOrder. failed = Cancel work order failed
response. code. getWorkOrder. success = Successful query work order details
response. code. device. doesNotExist = Device does not exist
response. code. device. bindDevice = You can bind this device
response. code. device. bindDevice. success = Device binding successfully
response. code. device. bindedDevice = The device is bound
response. code. device. deviceNumNotEmpty = Device number cannot be empty
response. code. device. untyingDeviceSuccess = Unbind device successful
response. code. device. untyingDeviceFailed = Unbundling device failed
response. code. sapError= Failed to call CRM interface
response. code. tokenError = Token error or invalid
response. code. tokenErrorEmpty= Token cannot be empty
response. code. loginSuccess= Login successfully
response. code. loginFailed= Login failed
response. code. registeredSuccessfully= Registered successfully
response. code. registeredFailed= Registration failed
response. code. registeredFailedUser= User already exists
response. code. workOrderImage= Work order associated picture successful
response. code. workOrderImage_Query= The query is successful
response. code. editUserSuccessfully= Modify personal information successfully
response. code. editUserFailed= Failed to modify personal information
# language = zh_cn ( 简体中文)
# response code
response. code. questionnaire. failed = 填写满意度调查失败
response. code. questionnaire. success = 填写满意度调查成功
response. code. createWorkOrder. success = 新建订单成功
response. code. createWorkOrder. failed = 新建订单失败
response. code. cancelWorkOrder. success = 取消工单成功
response. code. cancelWorkOrder. failed = 取消工单失败
response. code. getWorkOrder. success = 查询工单详情成功
response. code. device. doesNotExist = 设备不存在
response. code. device. bindDevice = 可以绑定此设备
response. code. device. bindDevice. success = 绑定设备成功
response. code. device. bindedDevice = 已绑定该设备
response. code. device. deviceNumNotEmpty = 设备号不能为空
response. code. device. untyingDeviceSuccess = 解绑设备成功
response. code. device. untyingDeviceFailed = 解绑设备失败
response. code. sapError= 调取CRM接口失败
response. code. tokenError= token错误或已失效
response. code. tokenErrorEmpty= token不能为空
response. code. loginSuccess= 登录成功
response. code. loginFailed= 登录失败
response. code. registeredSuccessfully= 注册成功
response. code. registeredFailed= 注册失败
response. code. registeredFailedUser= 用户已存在
response. code. workOrderImage= 工单关联图片成功
response. code. workOrderImage_Query= 查询成功
response. code. editUserSuccessfully= 修改个人信息成功
response. code. editUserFailed= 修改个人信息失败
引用
return ApiResultI18n. myResponse ( ResponseCodeI18n. BIND_DEVICE, null, language) ;