package com.panzhihua.common.model.vos; import java.io.Serializable; import java.lang.reflect.Field; import io.swagger.annotations.ApiModel; import org.springframework.util.ObjectUtils; import com.panzhihua.common.constants.Constants; import lombok.Data; /** * 响应信息主体 * * @author HUANGHONGFA */ @Data @ApiModel public class R implements Serializable { /** * 成功 */ public static final int SUCCESS = Constants.SUCCESS; /** * 失败 */ public static final int FAIL = Constants.FAIL; private static final long serialVersionUID = 1L; private int code; private String msg; private T data; public static R ok() { return restResult(null, SUCCESS, "success"); } public static R ok(T data) { return restResult(data, SUCCESS, "success"); } public static R ok(T data, String msg) { return restResult(data, SUCCESS, msg); } public static R fail() { return restResult(null, FAIL, null); } public static R fail(String msg) { return restResult(null, FAIL, msg); } public static R fail(T data) { return restResult(data, FAIL, null); } public static R fail(T data, String msg) { return restResult(data, FAIL, msg); } public static R fail(int code, String msg) { return restResult(null, code, msg); } public static R fail(int code) { return restResult(null, code, null); } private static R restResult(T data, int code, String msg) { R apiResult = new R<>(); apiResult.setCode(code); apiResult.setData(data); if (ObjectUtils.isEmpty(msg)) { apiResult.setMsg("失败"); } else { apiResult.setMsg(msg); } return apiResult; } /** * 请求是否成功 * * @return */ public static boolean isOk(R r) { return r.code == Constants.SUCCESS.intValue(); } /** * code * * @return */ public static Integer getCode(R r) { String code = null; try { Field field = r.getData().getClass().getDeclaredField("code"); code = field.get("code").toString(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return Integer.valueOf(code); } }