ApiResult.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.ctsi.utils;
  2. import com.ctsi.Enum.ErrorCodeEnum;
  3. import io.swagger.annotations.ApiModel;
  4. import io.swagger.annotations.ApiModelProperty;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Builder;
  7. import lombok.Data;
  8. import lombok.NoArgsConstructor;
  9. /**
  10. * 统一返回格式
  11. *
  12. * @author macalzz1
  13. * @since 2022-11-25 16:34:17
  14. */
  15. @Data
  16. @NoArgsConstructor
  17. @AllArgsConstructor
  18. @Builder
  19. @ApiModel(value = "统一返回格式")
  20. public class ApiResult<T> {
  21. /**
  22. * 操作成功默认编码
  23. */
  24. public static final int DEFAULT_SUCCEED_CODE = 200;
  25. /**
  26. * 操作失败默认编码
  27. */
  28. public static final int DEFAULT_FAIL_CODE = 500;
  29. /**
  30. * 操作成功默认提示信息
  31. */
  32. public static final String DEFAULT_SUCCEED_MESSAGE = "操作成功";
  33. @ApiModelProperty(value = "结果编码")
  34. private int code;
  35. @ApiModelProperty(value = "提示信息")
  36. private String message;
  37. @ApiModelProperty(value = "返回数据")
  38. private T result;
  39. /**
  40. * 成功
  41. *
  42. * @param result 数据
  43. * @param <T> 类型
  44. * @return 成功
  45. */
  46. public static <T> ApiResult<T> success(T result) {
  47. return success(DEFAULT_SUCCEED_MESSAGE, result);
  48. }
  49. /**
  50. * 返回成功信息
  51. *
  52. * @param message 返回信息
  53. * @param result 数据
  54. * @param <T> 类型
  55. * @return 成功
  56. */
  57. public static <T> ApiResult<T> success(String message, T result) {
  58. return new ApiResult<>(DEFAULT_SUCCEED_CODE, message, result);
  59. }
  60. /**
  61. * 返回失败信息
  62. *
  63. * @param message 返回信息
  64. * @param result 数据
  65. * @param <T> 类型
  66. * @return 成功
  67. */
  68. public static <T> ApiResult<T> failure(String message, T result) {
  69. return new ApiResult<>(DEFAULT_FAIL_CODE, message, result);
  70. }
  71. /**
  72. * 返回结果
  73. *
  74. * @param code 返回状态编码
  75. * @param message 操作信息
  76. * @param result 数据
  77. * @param <T> 类型
  78. * @return 结果
  79. */
  80. public static <T> ApiResult<T> result(int code, String message, T result) {
  81. return new ApiResult<>(code, message, result);
  82. }
  83. /**
  84. * 返回结果
  85. *
  86. * @param code 返回状态编码
  87. * @param message 操作信息
  88. * @return 结果
  89. */
  90. public static ApiResult<Void> result(int code, String message) {
  91. return result(code, message, null);
  92. }
  93. public static ApiResult<Void> result(ErrorCodeEnum errorCodeEnum) {
  94. return result(errorCodeEnum.getCode(), errorCodeEnum.getMessage(), null);
  95. }
  96. }