1,ResultModel响应类
public class ResultModel<T> {
private Integer code = SUCCESS.getCode();
private T data;
private String requestId;
private String resultMsg = SUCCESS.getDesc();
private String errorStackTrace;
private ResultModel() {
}
private static ResultModel SUCCESS_RESULT_MODEL = ResultModel.success(null);
public static ResultModel success() {
return SUCCESS_RESULT_MODEL;
}
@JsonIgnore
public boolean isSuccess() {
return code.equals(SUCCESS.getCode());
}
public static <T> ResultModel<T> success(T data) {
return success(data, SUCCESS.getDesc());
}
public static <T> ResultModel<T> success(T data, String msg) {
return new ResultModel<>(SUCCESS.getCode(), data, msg, null);
}
public static <T> ResultModel<T> fail(CommonException ex) {
String resultMsg = ex.getError().getDesc();
if (StringUtils.isNotEmpty(ex.getErrMsg())) {
resultMsg = ex.getErrMsg();
}
return new ResultModel<>(ex.getError().getCode(), null, resultMsg, ex.getMessage());
}
public static ResultModel<Object> fail(CommonException ex, Object data) {
String resultMsg = ex.getError().getDesc();
if (StringUtils.isNotEmpty(ex.getErrMsg())) {
resultMsg = ex.getErrMsg();
}
return new ResultModel<>(ex.getError().getCode(), data, resultMsg, ex.getMessage());
}
public static ResultModel<Object> fail(CommonErrorCode error) {
return new ResultModel<>(error.getCode(), null, error.getDesc(), null);
}
public static ResultModel<Object> fail(CommonErrorCode error, String msg) {
return new ResultModel<>(error.getCode(), null, msg, null);
}
public static ResultModel<Object> fail(CommonErrorCode error, Object data, String msg) {
return new ResultModel<>(error.getCode(), data, msg, null);
}
public static ResultModel<Object> fail(CommonErrorCode error, Object data, Throwable ex) {
return fail(error, data, error.getDesc(), ex);
}
public static ResultModel<Object> fail(CommonErrorCode error, Throwable ex) {
return new ResultModel<>(error.getCode(), null, error.getDesc(), ex.getMessage());
}
public static ResultModel<Object> fail(CommonErrorCode error, String msg, Throwable ex) {
return fail(error, null, msg, ex);
}
public static ResultModel<Object> fail(CommonErrorCode error, Object data, String msg, Throwable ex) {
return new ResultModel<>(error.getCode(), data, msg, ex.getMessage());
}
public ResultModel(int code, T data, String resultMsg, String errorStackTrace) {
this.code = code;
this.data = data;
this.resultMsg = resultMsg;
this.errorStackTrace = errorStackTrace;
this.requestId = MDC.get("MDC_LOG_ID");
}
public Integer getCode() {
return code;
}
public String getErrorStackTrace() {
return errorStackTrace;
}
public String getResultMsg() {
return resultMsg;
}
public T getData() {
return data;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
}
2,CommonErrorCode错误码
public enum CommonErrorCode {
SUCCESS(200, "执行成功"),
USER_NOT_LOGIN(400, "用户未登录"),
VALIDATE_ERROR(401, "校验数据错误"),
NOT_EXIST(404, "不存在"),
FORBIDDEN(403, "权限不足"),
RESOURCE_NOT_FOUND(404, "资源未找到"),
RESOURCE_CONFLICT(409, "资源冲突"),
REQUEST_PARAM_ERROR(412, "参数错误"),
PRECONDITION_FAILED(428, "要求先决条件"),
NOT_SUPPORT(409, "不支持的请求"),
WRONG_USERNAME_OR_PASSWORD(490, "用户名或密码错误"),
WRONG_OPEN_API_AUTHORITY(491, "认证错误"),
UNKNOWN_ERROR(500, "系统未知错误"),
SERVER_POWER_LESS(501, "服务器无法完成该请求"),
RETRY_ERROR(502, "服务器重试出错"),
OPTIMISTIC_LOCK_VERSION_ERROR(600, "乐观锁版本错误");
/**
* 错误码
*/
private Integer code;
/**
* 错误描述
*/
private String desc;
CommonErrorCode(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
3,CommonException全局异常处理类
public class CommonException extends RuntimeException {
protected String errMsg; // 错误提示信息,显示给用户
protected String detailMsg; // 错误的具体信息,可能包含一些参数ID等信息
protected CommonErrorCode error; // 错误码
protected Object data; // 返回内容
public CommonException(CommonErrorCode error) {
super(error.getDesc());
this.error = error;
this.errMsg = error.getDesc();
this.detailMsg = error.getDesc();
}
public CommonException(CommonErrorCode error, String errMsg) {
super(errMsg);
this.error = error;
this.errMsg = errMsg;
this.detailMsg = errMsg;
}
public CommonException(CommonErrorCode error, String errMsg, String detailMsg) {
super(StringUtils.isEmpty(detailMsg) ? errMsg : detailMsg);
this.error = error;
this.errMsg = errMsg;
this.detailMsg = detailMsg;
}
public CommonException(CommonErrorCode error, String errMsg, Throwable cause) {
super(errMsg, cause);
this.error = error;
this.errMsg = errMsg;
this.detailMsg = errMsg;
}
public CommonException(CommonErrorCode error, String errMsg, String detailMsg, Throwable cause) {
super(StringUtils.isEmpty(detailMsg) ? errMsg : detailMsg, cause);
this.error = error;
this.errMsg = errMsg;
this.detailMsg = detailMsg;
}
public CommonException(CommonErrorCode error, Throwable cause) {
super(error.getDesc(), cause);
this.error = error;
this.errMsg = error.getDesc();
this.detailMsg = error.getDesc();
}
public String getErrMsg() {
return errMsg;
}
public CommonErrorCode getError() {
return error;
}
public String getDetailMsg() {
return detailMsg;
}
public void setDetailMsg(String detailMsg) {
this.detailMsg = detailMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public Object getData() {
return data;
}
public CommonException setData(Object data) {
this.data = data;
return this;
}
}
點擊查看更多內容
1人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦