public class Result<T> implements Serializable {
private static final long serialVersionUID = 9586256688859632L;
private int code;
private String message;
private T data;
public Result() {
}
public Result(int code) {
this.code = code;
}
public Result(int code, String message) {
this.code = code;
this.message = message;
}
public Result(int code, T data) {
this.code = code;
this.data = data;
}
public Result(int code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public Result(ResultCode resultCode) {
this(resultCode, null);
}
public Result(ResultCode resultCode, T data) {
this.code = resultCode.getCode();
this.message = resultCode.getMsg();
this.data = data;
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public int getCode() {
return this.code;
}
public void setCode(int code) {
this.code = code;
}
public T getData() {
return this.data;
}
public void setData(T data) {
this.data = data;
}
public String toJson() {
return (new Gson()).toJson(this);
}
}
public interface ResultCode {
int getCode();
String getMsg();
}
public enum ResultCodeEnum implements ResultCode {
SUCCESS(200, "操作成功!"),
INVALID_REQUEST(400, "非法参数!"),
UNAUTHORIZED(401, "非法访问!"),
UNAUTHORIZED_TOKEN(402, "不合法的TOKEN!"),
NOT_FOUND(404, "记录不存在!"),
ENTITY_TOO_LARGE(413, "请求参数大小超过限制"),
SYSTEM_ERROR(500, "系统异常,请稍后再试!"),
DECRYPT_ERROR(400001, "解密失败。"),
INVALID_FILE_PATTERN(20060, "不合法的文件,空文件或文件名不合法(xls.xlsx)");
private int code;
private String msg;
private ResultCodeEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
}
public abstract class BaseRest {
protected final Logger log = LoggerFactory.getLogger(this.getClass());
public BaseRest() {
}
protected <T> Result<T> success() {
return this.success(null);
}
protected <T> Result<T> success(T data) {
return new Result(ResultCodeEnum.SUCCESS, data);
}
protected <T> Result<T> failure() {
return this.failure(ResultCodeEnum.SYSTEM_ERROR, null);
}
protected <T> Result<T> failure(T data) {
return this.failure(ResultCodeEnum.SYSTEM_ERROR, data);
}
protected <T> Result<T> failure(ResultCode resultCode, T data) {
return new Result(resultCode, data);
}
protected <T> Result<T> failure(ResultCode resultCode) {
return new Result(resultCode);
}
}