package top.lvzhiqiang.dto; import lombok.Data; import top.lvzhiqiang.enumeration.ResultCodeEnum; /** * 统一结果类 * * @author lvzhiqiang * 2022/4/11 16:55 */ @Data public class R { private Boolean success; private Integer code; private String message; private T data; // 构造器私有 private R() { } // 通用返回成功 public static R ok() { R r = new R(); r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess()); r.setCode(ResultCodeEnum.SUCCESS.getCode()); r.setMessage(ResultCodeEnum.SUCCESS.getMessage()); return r; } // 通用返回失败,未知错误 public static R error() { R r = new R(); r.setSuccess(ResultCodeEnum.UNKNOWN_ERROR.getSuccess()); r.setCode(ResultCodeEnum.UNKNOWN_ERROR.getCode()); r.setMessage(ResultCodeEnum.UNKNOWN_ERROR.getMessage()); return r; } // 设置结果,形参为结果枚举 public static R setResult(ResultCodeEnum result) { R r = new R(); r.setSuccess(result.getSuccess()); r.setCode(result.getCode()); r.setMessage(result.getMessage()); return r; } /** * ------------使用链式编程,返回类本身----------- **/ // 自定义返回数据 public R data(T data) { this.setData(data); return this; } // 自定义状态信息 public R message(String message) { this.setMessage(message); return this; } // 自定义状态码 public R code(Integer code) { this.setCode(code); return this; } // 自定义返回结果 public R success(Boolean success) { this.setSuccess(success); return this; } }