package com.nanjing.water.common; import com.fasterxml.jackson.annotation.JsonIgnore; import com.nanjing.water.common.enums.EResultCode; import com.nanjing.water.common.util.StringUtil; import java.util.Objects; /** * 执行结果实体 * @author lin.liu * @date 2019-01-08 * @param 数据包类型 */ public class ExecutedResult { 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 ExecutedResult success(){ return new ExecutedResult<>(EResultCode.SUCCESS, null, STR_SUCCESS); } public static ExecutedResult success(T data){ return new ExecutedResult<>(EResultCode.SUCCESS, data, STR_SUCCESS); } public static ExecutedResult success(T data, String msg){ if(StringUtil.isNullOrEmpty(msg)){ msg = STR_SUCCESS; } return new ExecutedResult<>(EResultCode.SUCCESS, data, msg); } public static ExecutedResult failed(){ return ExecutedResult.failed(""); } public static ExecutedResult failed(String msg){ return ExecutedResult.failed(msg, ""); } public static ExecutedResult failed(String msg, String msgCode){ return ExecutedResult.failed(null, msg, msgCode); } public static ExecutedResult 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 ExecutedResult validateFailed(String message) { return new ExecutedResult<>(EResultCode.VALIDATE_FAILED, null, message); } /** * 未登录返回结果 */ public static ExecutedResult unauthorized(T data) { return new ExecutedResult<>(EResultCode.UNAUTHORIZED, data, EResultCode.UNAUTHORIZED.getMessage()); } /** * 未授权返回结果 */ public static ExecutedResult forbidden() { return new ExecutedResult<>(EResultCode.FORBIDDEN, null, EResultCode.FORBIDDEN.getMessage()); } }