package vip.mate.common.result; import lombok.Data; import java.io.Serializable; /** * 统一响应结果封装 * * @author MateClaw Team */ @Data public class R implements Serializable { private static final long serialVersionUID = 1L; /** 状态码 */ private int code; /** 提示信息 */ private String msg; /** 数据 */ private T data; /** i18n holder — set once at startup by I18nAutoConfig, used by ok()/fail() */ private static volatile vip.mate.i18n.I18nService i18n; public static void setI18n(vip.mate.i18n.I18nService service) { i18n = service; } private static String resolveMsg(ResultCode rc) { return i18n != null ? rc.getMsg(i18n) : rc.getMsg(); } public static R ok() { return result(ResultCode.SUCCESS.getCode(), resolveMsg(ResultCode.SUCCESS), null); } public static R ok(T data) { return result(ResultCode.SUCCESS.getCode(), resolveMsg(ResultCode.SUCCESS), data); } public static R ok(String msg, T data) { return result(ResultCode.SUCCESS.getCode(), msg, data); } public static R fail() { return result(ResultCode.SYSTEM_ERROR.getCode(), resolveMsg(ResultCode.SYSTEM_ERROR), null); } public static R fail(String msg) { return result(ResultCode.SYSTEM_ERROR.getCode(), msg, null); } public static R fail(int code, String msg) { return result(code, msg, null); } private static R result(int code, String msg, T data) { R r = new R<>(); r.setCode(code); r.setMsg(msg); r.setData(data); return r; } }