package top.baogutang.music.domain; import org.slf4j.MDC; import java.io.Serializable; /** * @description: * @author: nikooh * @date: 2023/06/15 : 11:54 */ public class Results implements Serializable { private static final long serialVersionUID = 1L; public static final int SUCCESS_CODE = 200; public static final int FAIL_CODE = 300; public static final String SUCCESS_MSG = "success"; public static final int PARAM_ILLEGAL_CODE = 301; /** * 响应码,200为请求成功;其他异常均为业务异常 */ private int code; /** * 响应信息 */ private String msg; /** * 业务数据 */ private T data; /** * 全局链路请求id */ private String rid; public Results() { } public Results(int code, String msg) { this.code = code; this.msg = msg; } public Results(int code, String msg, T data) { this.code = code; this.msg = msg; this.data = data; } public static Results ok() { return restResult(null, 200, (String) null); } public static Results ok(T data) { return restResult(data, SUCCESS_CODE, SUCCESS_MSG); } public static Results ok(T data, int i, String msg) { return restResult(data, 200, (String) null); } public static Results ok(T data, String msg) { return restResult(data, 200, msg); } public static Results result(T data, int code, String msg) { return restResult(data, code, msg); } public static Results failed() { return restResult(null, 300, null); } public static Results failed(String msg) { return restResult(null, 300, msg); } public static Results failed(int code, String msg) { return restResult(null, code, msg); } public static Results failed(T data) { return restResult(data, 300, (String) null); } public static Results failed(T data, String msg) { return restResult(data, 300, msg); } public static Results restResult(T data, int code, String msg) { Results r = new Results<>(); r.setCode(code); r.setData(data); r.setMsg(msg); String rid = MDC.get("X-Request-Id"); r.setRid(rid); return r; } public Boolean isSuccess() { return this.code == SUCCESS_CODE; } public static boolean isSuccess(Results response) { return response != null && response.code == SUCCESS_CODE; } public void setErrorCodeEnum(int code, String msg) { this.code = code; this.msg = msg; } public static Results.ResultsBuilder builder() { return new Results.ResultsBuilder(); } public int getCode() { return this.code; } public String getMsg() { return this.msg; } public T getData() { return this.data; } public String getRid() { return rid; } public void setRid(String rid) { this.rid = rid; } public void setCode(final int code) { this.code = code; } public void setMsg(final String msg) { this.msg = msg; } public void setData(final T data) { this.data = data; } protected boolean canEqual(final Object other) { return other instanceof Results; } @Override public String toString() { return "Results(code=" + this.getCode() + ", msg=" + this.getMsg() + ", data=" + this.getData() + ")"; } public static class ResultsBuilder { private int code; private String msg; private T data; ResultsBuilder() { } public Results.ResultsBuilder code(final int code) { this.code = code; return this; } public Results.ResultsBuilder msg(final String msg) { this.msg = msg; return this; } public Results.ResultsBuilder data(final T data) { this.data = data; return this; } public Results build() { return new Results(this.code, this.msg, this.data); } @Override public String toString() { return "Results.ResultsBuilder(code=" + this.code + ", msg=" + this.msg + ", data=" + this.data + ")"; } } }