package com.panzhihua.common.model.vos;
|
|
import java.io.Serializable;
|
import java.lang.reflect.Field;
|
|
import org.springframework.util.ObjectUtils;
|
|
import com.panzhihua.common.constants.Constants;
|
|
import lombok.Data;
|
|
/**
|
* 响应信息主体
|
*
|
* @author HUANGHONGFA
|
*/
|
@Data
|
public class R<T> 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 <T> R<T> ok() {
|
return restResult(null, SUCCESS, "success");
|
}
|
|
public static <T> R<T> ok(T data) {
|
return restResult(data, SUCCESS, "success");
|
}
|
|
public static <T> R<T> ok(T data, String msg) {
|
return restResult(data, SUCCESS, msg);
|
}
|
|
public static <T> R<T> fail() {
|
return restResult(null, FAIL, null);
|
}
|
|
public static <T> R<T> fail(String msg) {
|
return restResult(null, FAIL, msg);
|
}
|
|
public static <T> R<T> fail(T data) {
|
return restResult(data, FAIL, null);
|
}
|
|
public static <T> R<T> fail(T data, String msg) {
|
return restResult(data, FAIL, msg);
|
}
|
|
public static <T> R<T> fail(int code, String msg) {
|
return restResult(null, code, msg);
|
}
|
|
public static <T> R<T> fail(int code) {
|
return restResult(null, code, null);
|
}
|
|
private static <T> R<T> restResult(T data, int code, String msg) {
|
R<T> 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);
|
}
|
|
}
|