Result.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.backendsys.utils.response;
  2. import com.fasterxml.jackson.annotation.JsonInclude;
  3. import lombok.*;
  4. import java.io.Serial;
  5. import java.io.Serializable;
  6. /**
  7. * 定义正常响应的API统一返回体
  8. * @param <T>
  9. */
  10. //@Data
  11. @NoArgsConstructor
  12. @Getter
  13. @Setter
  14. @ToString
  15. @SuppressWarnings("unchecked")
  16. public class Result<T> implements Serializable {
  17. @Serial
  18. private static final long serialVersionUID = 4860612789969314413L;
  19. private int code;
  20. private String message;
  21. @JsonInclude(JsonInclude.Include.NON_NULL)
  22. private T data;
  23. //public Result() {}
  24. public Result(int code, String message) {
  25. this.code = code;
  26. this.message = message;
  27. }
  28. public Result(int code, String message, T data) {
  29. this.code = code;
  30. this.message = message;
  31. if (data != null) this.data = data;
  32. }
  33. /**
  34. * 成功
  35. */
  36. public static <T> Result<T> success(T data) {
  37. Result<T> result = new Result<T>();
  38. result.setCode(ResultEnum.SUCCESS.getCode());
  39. result.setMessage(ResultEnum.SUCCESS.getMessage());
  40. result.setData(data);
  41. return result;
  42. }
  43. public static <T> Result<T> success(T data, String message) {
  44. Result<T> result = new Result<T>();
  45. result.setCode(ResultEnum.SUCCESS.getCode());
  46. result.setMessage(message != null ? message : ResultEnum.SUCCESS.getMessage());
  47. result.setData(data);
  48. return result;
  49. }
  50. /**
  51. * 失败
  52. */
  53. public static <T> Result<T> error(int code, String message) {
  54. return new Result(code, message);
  55. }
  56. public static <T> Result<T> error(int code, String message, T data) {
  57. return data == null ? new Result(code, message) : new Result(code, message, data);
  58. }
  59. }