INTPR.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.malk.server.integration;
  2. import com.malk.server.common.McException;
  3. import com.malk.server.common.VenR;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6. import java.util.Map;
  7. /**
  8. * 集成平台统一响应包装
  9. * <p>
  10. * 服务端返回结构:
  11. * <pre>
  12. * {
  13. * "result": true|false,
  14. * "error": "ERROR_CODE",
  15. * "error_description": "可读错误描述",
  16. * "data": {...} | [...]
  17. * }
  18. * </pre>
  19. */
  20. @Data
  21. @NoArgsConstructor
  22. public class INTPR<T> extends VenR {
  23. /**
  24. * 业务成功标记
  25. */
  26. private boolean result;
  27. /**
  28. * 错误代码(result=false 时有值)
  29. */
  30. private String error;
  31. /**
  32. * 错误描述(result=false 时有值)
  33. */
  34. private String error_description;
  35. /**
  36. * 业务数据
  37. */
  38. private T data;
  39. /**
  40. * OAuth2 token endpoint 直接返回字段(非包装结构)
  41. */
  42. private String access_token;
  43. private String token_type;
  44. private Integer expires_in;
  45. private String scope;
  46. /**
  47. * 断言错误信息
  48. */
  49. @Override
  50. public void assertSuccess() {
  51. // ppExt: token endpoint 不走包装结构,access_token 非空即视为成功
  52. if (access_token != null) {
  53. return;
  54. }
  55. McException.assertException(!result, error, error_description, "integration");
  56. }
  57. /// ---------- 静态请求入口 ----------
  58. public static INTPR doPost(String url, Map header, Map param, Map body) {
  59. return (INTPR) VenR.doPost(url, header, param, body, VenR.RC_INTP);
  60. }
  61. public static INTPR doGet(String url, Map header, Map param) {
  62. return (INTPR) VenR.doGet(url, header, param, VenR.RC_INTP);
  63. }
  64. }