R.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.coffee.common.result;
  2. import io.swagger.annotations.ApiModelProperty;
  3. import lombok.Getter;
  4. import lombok.NoArgsConstructor;
  5. import lombok.Setter;
  6. import lombok.ToString;
  7. import java.io.Serializable;
  8. /**
  9. * 统一API响应结果封装
  10. *
  11. * @author Kevin
  12. */
  13. @SuppressWarnings("ALL")
  14. @Getter
  15. @Setter
  16. @ToString
  17. @NoArgsConstructor
  18. public class R<T> implements Serializable {
  19. private static final long serialVersionUID = 1L;
  20. /**
  21. * 状态码
  22. */
  23. @ApiModelProperty("状态码")
  24. private int code;
  25. /**
  26. * 承载数据
  27. */
  28. @ApiModelProperty("承载数据")
  29. private T data;
  30. /**
  31. * 返回消息
  32. */
  33. @ApiModelProperty("返回错误消息")
  34. private String msg;
  35. private R(int code, T data, String msg) {
  36. this.code = code;
  37. this.data = data;
  38. this.msg = msg;
  39. }
  40. private R(IResultCode resultCode) {
  41. this(resultCode, null, resultCode.getMessage());
  42. }
  43. private R(IResultCode resultCode, T data) {
  44. this(resultCode, data, resultCode.getMessage());
  45. }
  46. private R(IResultCode resultCode, String msg) {
  47. this(resultCode, null, msg);
  48. }
  49. private R(IResultCode resultCode, T data, String msg) {
  50. this(resultCode.getCode(), data, msg);
  51. }
  52. public static <T> R<T> success() {
  53. return new R<>(ResultCode.SUCCESS);
  54. }
  55. public static <T> R<T> success(T data) {
  56. return new R<>(ResultCode.SUCCESS, data);
  57. }
  58. public static <T> R<T> success(T data, String msg) {
  59. return new R<>(ResultCode.SUCCESS, data, msg);
  60. }
  61. public static <T> R<T> fail(String msg) {
  62. return new R<>(ResultCode.FAILURE, msg);
  63. }
  64. public static <T> R<T> result(IResultCode resultCode) {
  65. return new R<>(resultCode);
  66. }
  67. public static <T> R<T> result(IResultCode resultCode, T data) {
  68. return new R<>(resultCode, data);
  69. }
  70. public static <T> R<T> result(IResultCode resultCode, T data, String msg) {
  71. return new R<>(resultCode, data, msg);
  72. }
  73. public static <T> R<T> result(int code, String msg) {
  74. return new R<>(code, null, msg);
  75. }
  76. public static <T> R<T> result(int code, T data, String msg) {
  77. return new R<>(code, data, msg);
  78. }
  79. }