package com.lunhan.xxx.common;
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.lunhan.xxx.common.enums.EResultCode;
|
import com.lunhan.xxx.common.util.StringUtil;
|
|
import java.util.Objects;
|
|
/**
|
* 执行结果实体
|
* @author lin.liu
|
* @date 2019-01-08
|
* @param <T> 数据包类型
|
*/
|
public class ExecutedResult<T> {
|
private static final String STR_SUCCESS = "success.";
|
private static final String STR_FAILED = "failed.";
|
|
/**
|
* 请求响应状态码 EResultCode
|
*/
|
private Integer code = EResultCode.FAILED.getCode();
|
/**
|
* 错误消息
|
*/
|
private String msg = STR_FAILED;
|
/**
|
* 数据包
|
*/
|
private T data = null;
|
/**
|
* 错误码
|
* @ignore
|
*/
|
@JsonIgnore
|
private String msgCode = "";
|
|
public Integer getCode() {
|
return code;
|
}
|
public void setCode(Integer code) {
|
this.code = code;
|
}
|
|
public String getMsg() {
|
return msg;
|
}
|
public void setMsg(String msg) {
|
this.msg = msg;
|
}
|
|
public T getData() {
|
return data;
|
}
|
public void setData(T data) {
|
this.data = data;
|
}
|
|
public String getMsgCode() {
|
return msgCode;
|
}
|
public void setMsgCode(String msgCode) {
|
this.msgCode = msgCode;
|
}
|
|
public ExecutedResult(){}
|
|
public ExecutedResult(EResultCode code, T data){
|
this.code = code.getCode();
|
this.data = data;
|
}
|
|
public ExecutedResult(EResultCode code, T data, String msg){
|
this.code = code.getCode();
|
this.data = data;
|
this.msg = msg;
|
}
|
|
public ExecutedResult(EResultCode code, T data, String msg, String msgCode){
|
this.code = code.getCode();
|
this.data = data;
|
this.msg = msg;
|
this.msgCode = msgCode;
|
}
|
|
@JsonIgnore
|
public Boolean isSuccess(){
|
return Objects.equals(this.code, EResultCode.SUCCESS.getCode());
|
}
|
|
@JsonIgnore
|
public Boolean isFailed(){
|
return !this.isSuccess();
|
}
|
|
public static <T> ExecutedResult<T> success(){
|
return new ExecutedResult<>(EResultCode.SUCCESS, null, STR_SUCCESS);
|
}
|
|
public static <T> ExecutedResult<T> success(T data){
|
return new ExecutedResult<>(EResultCode.SUCCESS, data, STR_SUCCESS);
|
}
|
|
public static <T> ExecutedResult<T> success(T data, String msg){
|
if(StringUtil.isNullOrEmpty(msg)){
|
msg = STR_SUCCESS;
|
}
|
return new ExecutedResult<>(EResultCode.SUCCESS, data, msg);
|
}
|
|
public static <T> ExecutedResult<T> failed(){
|
return ExecutedResult.failed("");
|
}
|
|
public static <T> ExecutedResult<T> failed(String msg){
|
return ExecutedResult.failed(msg, "");
|
}
|
|
public static <T> ExecutedResult<T> failed(String msg, String msgCode){
|
return ExecutedResult.failed(null, msg, msgCode);
|
}
|
|
public static <T> ExecutedResult<T> failed(T data, String msg, String msgCode){
|
if(StringUtil.isNullOrEmpty(msg)){
|
msg = STR_FAILED;
|
}
|
return new ExecutedResult<>(EResultCode.FAILED, data, msg, msgCode);
|
}
|
|
/**
|
* 参数验证失败返回结果
|
* @param message 提示信息
|
*/
|
public static <T> ExecutedResult<T> validateFailed(String message) {
|
return new ExecutedResult<>(EResultCode.VALIDATE_FAILED, null, message);
|
}
|
|
/**
|
* 未登录返回结果
|
*/
|
public static <T> ExecutedResult<T> unauthorized(T data) {
|
return new ExecutedResult<>(EResultCode.UNAUTHORIZED, data, EResultCode.UNAUTHORIZED.getMessage());
|
}
|
|
/**
|
* 未授权返回结果
|
*/
|
public static <T> ExecutedResult<T> forbidden() {
|
return new ExecutedResult<>(EResultCode.FORBIDDEN, null, EResultCode.FORBIDDEN.getMessage());
|
}
|
}
|