Result.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.sumbytes.common.base.domain;
  2. import com.sumbytes.common.constant.ResultConstants;
  3. import com.sumbytes.common.enums.ErrorEnum;
  4. import lombok.Data;
  5. import lombok.experimental.Accessors;
  6. import org.apache.commons.lang3.StringUtils;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. /**
  10. * 用于向前端返回统一的结果对象
  11. *
  12. * @param <T> 实体类型
  13. * @author Young
  14. */
  15. @Data
  16. @Accessors(chain = true)
  17. public class Result<T> {
  18. /**
  19. * 操作标识,标记
  20. */
  21. private int success = 0;
  22. /**
  23. * 结果编码
  24. */
  25. private String resultCode;
  26. /**
  27. * 提示信息
  28. */
  29. private String message;
  30. /**
  31. * 结果对象
  32. */
  33. private T model;
  34. /**
  35. * 结果集对象
  36. */
  37. private List<T> models;
  38. /**
  39. * 分页信息对象
  40. */
  41. private PageInfo pageInfo;
  42. /**
  43. * 扩展字段
  44. */
  45. private Object extra;
  46. /**
  47. * 禁止空参构造
  48. */
  49. private Result() {
  50. }
  51. /**
  52. * 通过操作标识及提示信息构建结果对象
  53. */
  54. private static <T> Result<T> createWithSuccessFlag(int success) {
  55. Result result = new Result();
  56. result.setSuccess(success);
  57. return result;
  58. }
  59. public static <T> Result<T> createWithSuccessMessage() {
  60. Result result = createWithSuccessFlag(ResultConstants.YES);
  61. result.setResultCode(ResultConstants.OPERATION_SUCCESS);
  62. result.setMessage(ResultConstants.SUCCESS_MESSAGE);
  63. return result;
  64. }
  65. public static <T> Result<T> createWithSuccessMessage(String message) {
  66. Result result = createWithSuccessFlag(ResultConstants.YES);
  67. result.setResultCode(ResultConstants.OPERATION_SUCCESS);
  68. result.setMessage(StringUtils.isBlank(message) ? ResultConstants.SUCCESS_MESSAGE : message);
  69. return result;
  70. }
  71. public static <T> Result<T> createWithModel(T model) {
  72. Result result = createWithSuccessMessage();
  73. result.setModel(model);
  74. return result;
  75. }
  76. public static <T> Result<T> createWithModel(String message, T model) {
  77. Result result = createWithSuccessMessage(message);
  78. result.setModel(model);
  79. return result;
  80. }
  81. public static <T> Result<T> createWithModels(String message, List<T> models) {
  82. Result result = createWithSuccessMessage(message);
  83. result.setModels(models == null ? new ArrayList<>(0) : models);
  84. return result;
  85. }
  86. public static <T> Result<T> createWithModels(List<T> models) {
  87. Result result = createWithSuccessMessage();
  88. result.setModels(models == null ? new ArrayList<>(0) : models);
  89. return result;
  90. }
  91. public static <T> Result<T> createWithPaging(String message, List<T> models, PageInfo pagingInfo) {
  92. Result result = createWithModels(message, models == null ? new ArrayList<>(0) : models);
  93. result.setPageInfo(pagingInfo);
  94. return result;
  95. }
  96. public static <T> Result<T> createWithPaging(List<T> models, PageInfo pagingInfo) {
  97. Result result = createWithModels(models == null ? new ArrayList<>(0) : models);
  98. result.setPageInfo(pagingInfo);
  99. return result;
  100. }
  101. public static <T> Result<T> createWithErrorMessage(String message, String errorCode) {
  102. Result result = createWithSuccessFlag(ResultConstants.NO);
  103. result.setMessage(message);
  104. result.setResultCode(errorCode);
  105. return result;
  106. }
  107. public static <T> Result<T> createWithErrorMessage(ErrorEnum errorEnum) {
  108. return createWithErrorMessage(errorEnum.getMsg(errorEnum.getCode()), errorEnum.getCode());
  109. }
  110. public static <T> Result<T> createWithError() {
  111. return createWithErrorMessage(ErrorEnum.ERROR);
  112. }
  113. }