Result.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package sqgxy.xxydz.vo;
  2. import sqgxy.xxydz.enums.ResultCode;
  3. import lombok.Data;
  4. import java.io.Serializable;
  5. /**
  6. * @author xmp
  7. * @date 2022-11-19 12:21
  8. * 封装接口返回数据的统一结构
  9. */
  10. @Data
  11. public class Result implements Serializable {
  12. private Integer code;
  13. private boolean success;
  14. private String msg;
  15. private Object data;
  16. private String cookie;
  17. public Result() {
  18. }
  19. public Result ok() {
  20. return field(this, ResultCode.OK);
  21. }
  22. public Result fail() {
  23. return field(this, ResultCode.FAIL);
  24. }
  25. public Result fail(String msg) {
  26. Result fail = fail();
  27. fail.setMsg(msg);
  28. return fail;
  29. }
  30. public Result insufficientPermissions() {
  31. return field(this, ResultCode.PERMISSION);
  32. }
  33. public Result insufficientPermissions(String msg) {
  34. Result insufficientPermissions = insufficientPermissions();
  35. insufficientPermissions.setMsg(msg);
  36. return insufficientPermissions;
  37. }
  38. public Result notFound() {
  39. return field(this, ResultCode.NOTFOUND);
  40. }
  41. // 链式编程
  42. public Result data(Object data) {
  43. this.data = data;
  44. return this;
  45. }
  46. public Result cookie(String cookie) {
  47. this.cookie = cookie;
  48. return this;
  49. }
  50. private Result field(Result result, ResultCode code) {
  51. result.setCode(code.getCode());
  52. result.setSuccess(code.getSuccess());
  53. result.setMsg(code.getMsg());
  54. return result;
  55. }
  56. }