package com.sqx.config;
import lombok.Data;
import org.springframework.context.i18n.LocaleContextHolder;
import java.io.Serializable;
import java.util.Locale;
import static com.sqx.config.ResponseCode.SYS_SUCCESSFUL_REQUEST;
@Data
public class ApiResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
private T data;
private Integer code;
private String message;
public ApiResult() {
this(null, ResponseCode.instance(SYS_SUCCESSFUL_REQUEST));
}
public ApiResult(T data) {
this(data, ResponseCode.instance(SYS_SUCCESSFUL_REQUEST));
}
public ApiResult(ResponseCode responseCode) {
this(null, responseCode);
}
public ApiResult(ResponseCode responseCode, String chMsg, String enMsg) {
this(null, responseCode, chMsg, enMsg);
}
public ApiResult(T data, ResponseCode responseCode) {
this(data, responseCode, null, null);
}
public ApiResult(T data, ResponseCode responseCode, String chMsg, String enMsg) {
Locale locale = LocaleContextHolder.getLocale();
if (Locale.CHINESE.getLanguage().equals(locale.getLanguage())) {
this.message = (chMsg == null) ? responseCode.getChMsg() : chMsg;
} else {
this.message = (enMsg == null) ? responseCode.getEnMsg() : enMsg;
}
this.data = data;
this.code = responseCode.getCode();
}
public static <T> ApiResult<T> ok() {
return new ApiResult<>();
}
public static <T> ApiResult<T> ok(T data) {
return new ApiResult<>(data);
}
}
package com.sqx.config;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import org.springframework.http.HttpStatus;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@Data
public class ResponseCode implements Serializable {
private static final long serialVersionUID = 1L;
private static final Map<String, ResponseCode> MAP = new HashMap<>();
public static final String SYS_SUCCESSFUL_REQUEST = "SYS_SUCCESSFUL_REQUEST";
public static final String COMMON_NOT_EXIST = "COMMON_NOT_EXIST";
public static final String COMMON_ALREADY_EXIST = "COMMON_ALREADY_EXIST";
public static final String COMMON_NOT_ALLOW_REPEAT = "COMMON_NOT_ALLOW_REPEAT";
public static final String COMMON_NOT_ALLOW = "COMMON_NOT_ALLOW";
public static final String COMMON_CHANGED = "COMMON_CHANGED";
public static final String COMMON_FAIL_REQUEST = "COMMON_FAIL_REQUEST";
public static final String COMMON_NOT_SUPPORT = "COMMON_NOT_SUPPORT";
public static final String MOBILE_NUMBER_REGISTERED = "MOBILE_NUMBER_REGISTERED";
public static final String INVALID_INVITATION_CODE = "INVALID_INVITATION_CODE";
public static final String PERMISSION_AUTHORIZE_FAILED = "PERMISSION_AUTHORIZE_FAILED";
public static final String ROLE_INVALID = "ROLE_INVALID";
public static final String ROLE_NOT_FOUND = "ROLE_NOT_FOUND";
public static final String SYS_BODY_FORMAT_ERROR = "SYS_BODY_FORMAT_ERROR";
public static final String SYS_FILE_SIZE_OUT_OF_GAUGE = "SYS_FILE_SIZE_OUT_OF_GAUGE";
public static final String SYS_UNSUPPORTED_CONTENT_TYPE = "SYS_UNSUPPORTED_CONTENT_TYPE";
public static final String COMMON_MISS_PARAMETER = "COMMON_MISS_PARAMETER";
public static final String COMMON_INVALID_PARAM = "COMMON_INVALID_PARAM";
public static final String COMMON_VALIDATE_ERROR = "COMMON_VALIDATE_ERROR";
public static final String COMMON_NOT_IN_ALLOWED_SCOPE = "COMMON_NOT_IN_ALLOWED_SCOPE";
public static final String VERIFICATION_CODE_ERROR = "VERIFICATION_CODE_ERROR";
public static final String VERIFICATION_CODE_EXPIRED = "VERIFICATION_CODE_EXPIRED";
public static final String PERMISSION_INVALID_USERNAME_PASSWORD = "PERMISSION_INVALID_USERNAME_PASSWORD";
public static final String ROLE_NOT_MATCHED = "ROLE_NOT_MATCHED";
public static final String PERMISSION_UNAUTHORIZED = "PERMISSION_UNAUTHORIZED";
public static final String PERMISSION_IP_RESTRICTION = "PERMISSION_IP_RESTRICTION";
public static final String PERMISSION_DENIED = "PERMISSION_DENIED";
public static final String PERMISSION_INVALID_ACCOUNT = "PERMISSION_INVALID_ACCOUNT";
public static final String SYS_NOT_FOUND = "SYS_NOT_FOUND";
public static final String SYS_UNSUPPORTED_METHOD = "SYS_UNSUPPORTED_METHOD";
public static final String SYS_INTERNAL_SERVER_ERROR = "SYS_INTERNAL_SERVER_ERROR";
static {
MAP.put(SYS_SUCCESSFUL_REQUEST, new ResponseCode(HttpStatus.OK, 2000000, "请求成功", "Request successful"));
MAP.put(COMMON_NOT_EXIST, new ResponseCode(HttpStatus.OK, 2000100, "记录不存在", "Record does not exist"));
MAP.put(COMMON_ALREADY_EXIST, new ResponseCode(HttpStatus.OK, 2000101, "记录已存在", "Record already exist"));
MAP.put(COMMON_NOT_ALLOW_REPEAT, new ResponseCode(HttpStatus.OK, 2000101, "不许重复执行", "Duplicate execution not allowed"));
MAP.put(COMMON_NOT_ALLOW, new ResponseCode(HttpStatus.OK, 2000103, "不允许的操作", "Operation not allowed"));
MAP.put(COMMON_CHANGED, new ResponseCode(HttpStatus.OK, 2000104, "记录已被修改", "Record has been modified"));
MAP.put(COMMON_FAIL_REQUEST, new ResponseCode(HttpStatus.OK, 2000105, "请求失败", "Request was aborted"));
MAP.put(COMMON_NOT_SUPPORT, new ResponseCode(HttpStatus.OK, 2000106, "不支持此操作", "Unsupported operation"));
MAP.put(MOBILE_NUMBER_REGISTERED, new ResponseCode(HttpStatus.OK, 2000107, "手机号已经注册", "Mobile number registered"));
MAP.put(INVALID_INVITATION_CODE, new ResponseCode(HttpStatus.OK, 2000108, "邀请码无效", "Invalid invitation code"));
MAP.put(PERMISSION_AUTHORIZE_FAILED, new ResponseCode(HttpStatus.OK, 2000200, "授权失败", "Authorization failed"));
MAP.put(ROLE_INVALID, new ResponseCode(HttpStatus.OK, 2000300, "无效角色", "Invalid role"));
MAP.put(ROLE_NOT_FOUND, new ResponseCode(HttpStatus.OK, 2000301, "获取角色失败", "Failed to get role"));
MAP.put(SYS_BODY_FORMAT_ERROR, new ResponseCode(HttpStatus.BAD_REQUEST, 4000000, "请求body格式错误", "Request body format error"));
MAP.put(SYS_FILE_SIZE_OUT_OF_GAUGE, new ResponseCode(HttpStatus.BAD_REQUEST, 4000001, "上传文件大小超过限制", "Upload file size exceeds limit"));
MAP.put(SYS_UNSUPPORTED_CONTENT_TYPE, new ResponseCode(HttpStatus.BAD_REQUEST, 4000002, "不支持的Content-Type", "Unsupported Content-Type"));
MAP.put(COMMON_MISS_PARAMETER, new ResponseCode(HttpStatus.BAD_REQUEST, 4000003, "丢失请求参数", "Missing request parameters"));
MAP.put(COMMON_INVALID_PARAM, new ResponseCode(HttpStatus.BAD_REQUEST, 4000004, "无效的参数", "Invalid parameter"));
MAP.put(COMMON_VALIDATE_ERROR, new ResponseCode(HttpStatus.BAD_REQUEST, 4000100, "未通过参数校验", "Failed parameter verification"));
MAP.put(COMMON_NOT_IN_ALLOWED_SCOPE, new ResponseCode(HttpStatus.BAD_REQUEST, 4000101, "不在允许值范围内", "Not in allowed scope"));
MAP.put(VERIFICATION_CODE_ERROR, new ResponseCode(HttpStatus.BAD_REQUEST, 4000102, "验证码错误", "Verification code error"));
MAP.put(VERIFICATION_CODE_EXPIRED, new ResponseCode(HttpStatus.BAD_REQUEST, 4000103, "验证码已过期", "Verification code expired"));
MAP.put(PERMISSION_INVALID_USERNAME_PASSWORD, new ResponseCode(HttpStatus.BAD_REQUEST, 4000200, "用户名或密码错误", "Wrong user name or password"));
MAP.put(ROLE_NOT_MATCHED, new ResponseCode(HttpStatus.BAD_REQUEST, 4000300, "角色不匹配", "Role mismatch"));
MAP.put(PERMISSION_UNAUTHORIZED, new ResponseCode(HttpStatus.UNAUTHORIZED, 4010200, "未授权", "Unauthorized"));
MAP.put(PERMISSION_IP_RESTRICTION, new ResponseCode(HttpStatus.UNAUTHORIZED, 4010201, "IP受限", "IP restricted"));
MAP.put(PERMISSION_DENIED, new ResponseCode(HttpStatus.UNAUTHORIZED, 4010202, "权限不足", "Insufficient authority"));
MAP.put(PERMISSION_INVALID_ACCOUNT, new ResponseCode(HttpStatus.UNAUTHORIZED, 4010203, "无效账户", "无效账户"));
MAP.put(SYS_NOT_FOUND, new ResponseCode(HttpStatus.NOT_FOUND, 4040000, "路由不存在", "Route does not exist"));
MAP.put(SYS_UNSUPPORTED_METHOD, new ResponseCode(HttpStatus.METHOD_NOT_ALLOWED, 4050000, "不支持的请求方法", "Unsupported request method"));
MAP.put(SYS_INTERNAL_SERVER_ERROR, new ResponseCode(HttpStatus.INTERNAL_SERVER_ERROR, 5000000, "系统繁忙", "System error"));
}
private HttpStatus status;
private Integer code;
private String chMsg;
private String enMsg;
private String field;
private ResponseCode(HttpStatus status, Integer code, String chMsg, String enMsg) {
this.status = status;
this.code = code;
this.chMsg = chMsg;
this.enMsg = enMsg;
}
@SuppressWarnings("unused")
public ResponseCode() {
}
public static ResponseCode defaultValidate(String msg) {
ResponseCode instance = instance(msg);
if (instance == null) {
instance = instance(COMMON_VALIDATE_ERROR);
if (msg != null && !msg.isEmpty()) {
instance.chMsg = msg;
instance.enMsg = msg;
}
}
return instance;
}
public static ResponseCode instance(String key) {
if (key == null) {
return null;
}
ResponseCode responseCode = MAP.get(key);
if (responseCode == null) {
return null;
}
return JSONObject.parseObject(JSONObject.toJSONString(responseCode), ResponseCode.class);
}
public String getChMsg() {
return ((field == null) ? "" : field + " : ") + chMsg;
}
public String getEnMsg() {
return ((field == null) ? "" : field + " : ") + enMsg;
}
}