import com.alibaba.fastjson.JSON; import com.mengxuegu.blog.util.enums.ResultEnum; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.Serializable; /** * 用于封装接口统一响应结果 */ @Data @NoArgsConstructor // 无参构造方法 @AllArgsConstructor // 有参构造方法 public final class Result implements Serializable { private static final Logger logger = LoggerFactory.getLogger(Result.class); private static final long serialVersionUID = 1L; /** * 响应业务状态码 */ private Integer code; /** * 响应信息 */ private String message; /** * 响应中的数据 */ private Object data; public static Result ok() { return new Result(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getDesc(), null); } public static Result ok(Object data) { return new Result(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getDesc(), data); } public static Result ok(String message, Object data) { return new Result(ResultEnum.SUCCESS.getCode(), message, data); } public static Result error(String message) { logger.debug("返回错误:code={}, message={}", ResultEnum.ERROR.getCode(), message); return new Result(ResultEnum.ERROR.getCode(), message, null); } public static Result build(int code, String message) { logger.debug("返回结果:code={}, message={}", code, message); return new Result(code, message, null); } public static Result build(ResultEnum resultEnum) { logger.debug("返回结果:code={}, message={}", resultEnum.getCode(), resultEnum.getDesc()); return new Result(resultEnum.getCode(), resultEnum.getDesc(), null); } public String toJsonString() { return JSON .toJSONString(this); } }
import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public enum ResultEnum { SUCCESS(20000, "成功"), ERROR(999, "错误"), UNAUTHENTICATED(401, "请先通过身份认证"), AUTH_FAIL(1400, "认证失败"), // token异常 TOKEN_PAST(1401, "身份过期,请求重新登录!"), TOKEN_ERROR(1402, "令牌错误"), HEADEA_ERROR(1403, "请求头错误"), AUTH_USERNAME_NONE(1405, "用户名不能为空"), AUTH_PASSWORD_NONE(1406, "密码不能为空"), MENU_NO(306, "没此权限,请联系管理员!"); private Integer code; private String desc; }