AdmResponse.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.persagy.proxy.adm.request;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.persagy.proxy.adm.utils.AdmEntityTransferUtil;
  4. import com.persagy.proxy.common.entity.DmpResult;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Data;
  7. import lombok.NoArgsConstructor;
  8. import java.util.List;
  9. /**
  10. * ADM 通用返回结果
  11. * @author Charlie Yu
  12. * @date 2021-08-16
  13. */
  14. @Data
  15. @NoArgsConstructor
  16. @AllArgsConstructor
  17. public class AdmResponse {
  18. private final static String SUCCESS = "success";
  19. private final static String FAILURE = "failure";
  20. /** 结果 */
  21. private String result;
  22. /** 消息 */
  23. private String message;
  24. /** 符合条件的总记录数 */
  25. private Long total;
  26. /** 页码 */
  27. private Integer pageNumber;
  28. /** 每页条数 */
  29. private Integer pageSize;
  30. /** 查询到的数据列表 */
  31. private List<?> content;
  32. public static AdmResponse success() {
  33. return new AdmResponse(SUCCESS, null, null, null, null, null);
  34. }
  35. public static AdmResponse failure(String message) {
  36. return new AdmResponse(FAILURE, message, null, null, null, null);
  37. }
  38. public static AdmResponse success(List<?> content) {
  39. return new AdmResponse(SUCCESS, null, null, null, null, content);
  40. }
  41. /**
  42. * 从数据中台结果转换
  43. * @param admRequest
  44. * @param dmpResult
  45. * @param clazz
  46. * @param <T>
  47. * @return
  48. */
  49. public static <T> AdmResponse fromDmp(AdmQueryCriteria admRequest, DmpResult<JSONArray> dmpResult, Class<T> clazz) {
  50. if(!DmpResult.SUCCESS.equals(dmpResult.getResult())) {
  51. return failure("调用中台查询接口出错:" + dmpResult.getMessage());
  52. }
  53. // 转换为结果
  54. List<T> admVOs = AdmEntityTransferUtil.toAdmMultiEntity(dmpResult.getData(), admRequest.getProjection(), clazz);
  55. Long total = dmpResult.getCount() == null ? null : dmpResult.getCount().longValue();
  56. Integer pageNo = admRequest == null ? null : admRequest.getPageNumber();
  57. Integer pageSize = admRequest == null ? null : admRequest.getPageSize();
  58. return new AdmResponse(SUCCESS, null, total, pageNo, pageSize, admVOs);
  59. }
  60. }