package jnpf.workflow.admin.result; import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonInclude; import jnpf.workflow.common.exception.ResultCode; import lombok.Data; /** * 统一响应包装。契约要点:success 为 Boolean、code 为字符串(SUCCESS="200"), * 调用方 jnpf-flowable 以 Boolean.FALSE.equals(getSuccess()) 判失败,勿改动字段类型与顺序。 */ @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class Result implements Serializable { private Boolean success; private String code; private String msg; private T data; public static Result result(Boolean success, String code, String msg, T data) { Result result = new Result<>(); result.setSuccess(success); result.setCode(code); result.setMsg(msg); result.setData(data); return result; } public static Result result(Boolean success, ResultCode resultCode, T data) { return result(success, resultCode.getCode(), resultCode.getMsg(), data); } public static boolean isSuccess(Result result) { return result != null && ResultCode.SUCCESS.getCode().equals(result.getCode()); } public static Result success() { return result(true, ResultCode.SUCCESS, null); } public static Result success(T data) { return result(true, ResultCode.SUCCESS, data); } public static Result success(ResultCode resultCode, T data) { return result(true, resultCode, data); } public static Result success(ResultCode resultCode) { return result(true, resultCode, null); } public static Result success(String code, String msg, T data) { return result(true, code, msg, data); } public static Result success(String msg) { return result(true, ResultCode.SUCCESS.getCode(), msg, null); } public static Result failed() { return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), null); } public static Result failed(T data) { return result(false, ResultCode.FAILURE.getCode(), ResultCode.FAILURE.getMsg(), data); } public static Result failed(String msg) { return result(false, ResultCode.FAILURE.getCode(), msg, null); } public static Result failed(String msg, T data) { return result(false, ResultCode.FAILURE.getCode(), msg, data); } public static Result failed(ResultCode resultCode) { return result(false, resultCode.getCode(), resultCode.getMsg(), null); } public static Result failed(ResultCode resultCode, T data) { return result(false, resultCode.getCode(), resultCode.getMsg(), data); } public static Result failed(ResultCode resultCode, String msg) { return result(false, resultCode.getCode(), msg, null); } public static Result failed(ResultCode resultCode, String msg, T data) { return result(false, resultCode.getCode(), msg, data); } }