1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.persagy.proxy.adm.request;
- import cn.hutool.core.collection.CollUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.persagy.proxy.adm.utils.AdmEntityTransferUtil;
- import com.persagy.proxy.common.entity.DmpResult;
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * ADM 通用返回结果
- * @author Charlie Yu
- * @date 2021-08-16
- */
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- public class AdmResponse {
- private final static String SUCCESS = "success";
- private final static String FAILURE = "failure";
- /** 结果 */
- private String result;
- /** 消息 */
- private String message;
- /** 符合条件的总记录数 */
- private Long total;
- private Long count;
- /** 页码 */
- private Integer pageNumber;
- /** 每页条数 */
- private Integer pageSize;
- /** 查询到的数据列表 */
- private List<?> content;
- public static AdmResponse success() {
- return new AdmResponse(SUCCESS, "", 0L,null, 1, 500, new ArrayList<>(1));
- }
- public static AdmResponse failure(String message) {
- return new AdmResponse(FAILURE, message, null, null, null, null, new ArrayList<>(1));
- }
- public static AdmResponse success(List<?> content) {
- return new AdmResponse(SUCCESS, "", CollUtil.isEmpty(content) ? 0L :content.size()*1L,null, 1, 500, CollUtil.isEmpty(content) ? new ArrayList<>(1): content);
- }
- /**
- * 从数据中台结果转换
- * @param admRequest
- * @param dmpResult
- * @param clazz
- * @param <T>
- * @return
- */
- public static <T> AdmResponse fromDmp(AdmQueryCriteria admRequest, DmpResult<JSONArray> dmpResult, Class<T> clazz) {
- if(!DmpResult.SUCCESS.equals(dmpResult.getResult())) {
- return failure("调用中台查询接口出错:" + dmpResult.getMessage());
- }
- // 转换为结果
- List<T> admVOs = AdmEntityTransferUtil.toAdmMultiEntity(dmpResult.getData(), admRequest.getProjection(), clazz);
- Long total = dmpResult.getCount() == null ? null : dmpResult.getCount().longValue();
- Integer pageNo = admRequest == null ? null : admRequest.getPageNumber();
- Integer pageSize = admRequest == null ? null : admRequest.getPageSize();
- if(admRequest.isOnlyCount()){
- return new AdmResponse(SUCCESS, null, null,total, pageNo, pageSize, CollUtil.isEmpty(admVOs) ? new ArrayList<>(1) : admVOs);
- }else {
- return new AdmResponse(SUCCESS, null, total,null, pageNo, pageSize, CollUtil.isEmpty(admVOs) ? new ArrayList<>(1) : admVOs);
- }
- }
- }
|