package com.supervision.common.domain; import com.supervision.common.constant.Constants; import com.supervision.common.enums.ResultStatusEnum; import lombok.Data; import java.io.Serializable; import java.util.*; /** * 响应信息主体 * * @author qimaoyu */ @Data public class R implements Serializable { private static final long serialVersionUID = 1L; public static final String TOTAL_COUNT = "total"; public static final String RESULT_LIST = "result"; /** 成功 */ public static final int SUCCESS = Constants.SUCCESS; /** 失败 */ public static final int FAIL = Constants.FAIL; private int code; private String msg; private T data; public static R ok() { return restResult(null, SUCCESS, null); } public static R okMsg(String msg) { return restResult(null, SUCCESS, msg); } public static R ok(T data) { return restResult(data, SUCCESS, null); } public static R ok(T data, String msg) { return restResult(data, SUCCESS, msg); } public static R fail() { return restResult(null, FAIL, null); } public static R fail(String msg) { return restResult(null, FAIL, msg); } public static R fail(T data) { return restResult(data, FAIL, null); } public static R fail(T data, String msg) { return restResult(data, FAIL, msg); } public static R fail(int code, String msg) { return restResult(null, code, msg); } public static R fail(ResultStatusEnum resultStatusEnum) { return restResult(resultStatusEnum); } public static R fail(ResultStatusEnum resultStatusEnum, T data) {return restResult(resultStatusEnum,data);} private static R restResult(ResultStatusEnum resultStatusEnum, T data) { R apiResult = new R<>(); apiResult.setCode(resultStatusEnum.getCode()); apiResult.setData(data); apiResult.setMsg(resultStatusEnum.getMessage()); return apiResult; } private static R restResult(ResultStatusEnum resultStatusEnum) { R apiResult = new R<>(); apiResult.setCode(resultStatusEnum.getCode()); apiResult.setData(null); apiResult.setMsg(resultStatusEnum.getMessage()); return apiResult; } private static R restResult(T data, int code, String msg) { R apiResult = new R<>(); apiResult.setCode(code); apiResult.setData(data); apiResult.setMsg(msg); return apiResult; } public static Map buildDataMap(List list) { Map dataMap = new HashMap<>(); if (list == null) { dataMap.put(TOTAL_COUNT, 0); dataMap.put(RESULT_LIST, new ArrayList<>()); } else { dataMap.put(TOTAL_COUNT, list.size()); dataMap.put(RESULT_LIST, list); } return dataMap; } public static Map buildDataMap(List list, Long total) { Map dataMap = new HashMap<>(); dataMap.put(TOTAL_COUNT, total); dataMap.put(RESULT_LIST, list); return dataMap; } public static Map buildDataMap(Set list) { Map dataMap = new HashMap<>(); if (list == null) { dataMap.put(TOTAL_COUNT, 0); dataMap.put(RESULT_LIST, new ArrayList<>()); } else { dataMap.put(TOTAL_COUNT, list.size()); dataMap.put(RESULT_LIST, list); } return dataMap; } public static Map buildDataMap(Object object) { if (object == null) { return null; } List resultList = new ArrayList<>(); resultList.add(object); Map dataMap = new HashMap<>(); dataMap.put(TOTAL_COUNT, resultList.size()); dataMap.put(RESULT_LIST, resultList); return dataMap; } }