package com.xkcoding.codegen.common;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* 统一API对象返回
*
*
* @author yangkai.shen
* @date Created in 2019-03-22 10:13
*/
@Data
@NoArgsConstructor
public class R {
/**
* 状态码
*/
private Integer code;
/**
* 返回消息
*/
private String message;
/**
* 状态
*/
private boolean status;
/**
* 返回数据
*/
private T data;
public R(Integer code, String message, boolean status, T data) {
this.code = code;
this.message = message;
this.status = status;
this.data = data;
}
public R(IResultCode resultCode, boolean status, T data) {
this.code = resultCode.getCode();
this.message = resultCode.getMessage();
this.status = status;
this.data = data;
}
public R(IResultCode resultCode, boolean status) {
this.code = resultCode.getCode();
this.message = resultCode.getMessage();
this.status = status;
this.data = null;
}
public static R success() {
return new R<>(ResultCode.OK, true);
}
public static R message(String message) {
return new R<>(ResultCode.OK.getCode(), message, true, null);
}
public static R success(T data) {
return new R<>(ResultCode.OK, true, data);
}
public static R fail() {
return new R<>(ResultCode.ERROR, false);
}
public static R fail(IResultCode resultCode) {
return new R<>(resultCode, false);
}
public static R fail(Integer code, String message) {
return new R<>(code, message, false, null);
}
public static R fail(IResultCode resultCode, T data) {
return new R<>(resultCode, false, data);
}
public static R fail(Integer code, String message, T data) {
return new R<>(code, message, false, data);
}
}