package com.ycwl.basic.utils; import com.fasterxml.jackson.annotation.JsonIgnore; import com.ycwl.basic.enums.BizCodeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; /** * 所有接口返回数据的携带对象 * * @param * @version 1.0.0 */ @ApiModel(value = "通用返回数据对象") public class ApiResponse implements Serializable { private static final long serialVersionUID = 1L; /** * 返回CODE码,详见{@link ApiConst.Code}中常量定义 */ @ApiModelProperty(value = "状态码") private int code; /** * 返回message */ @ApiModelProperty(value = "数据描述") private String msg; /** * 成功返回数据 */ @ApiModelProperty(value = "数据") private T data; public ApiResponse() { } /** * 构建成功返回数据对象 * * @param data 返回数据内容 * @return */ public static ApiResponse buildSuccessResponse(T data) { ApiResponse response = new ApiResponse(); response.setCode(ApiConst.Code.CODE_SUCCESS.code()); response.setData(data); return response; } /** * 构建空返回对象 * * @return */ public static ApiResponse buildEmptyResponse() { ApiResponse response = new ApiResponse(); response.setCode(ApiConst.Code.CODE_CONTENT_EMPTY.code()); return response; } /** * 构建常规错误返回对象 * * @param msg * @return */ public static ApiResponse buildCommonErrorResponse(String msg) { return buildResponse(ApiConst.Code.CODE_COMMON_ERROR, msg); } /** * 构建自定义CODE码对象 * * @param code * @param data * @param msg * @return */ public static ApiResponse buildResponse(int code, T data, String msg) { ApiResponse response = new ApiResponse(); response.setCode(code); response.setData(data); response.setMsg(msg); return response; } /** * 根据返回值构建结果 * * @param flag * @param * @return */ public static ApiResponse buildFlagResponse(boolean flag, T data) { ApiResponse response = new ApiResponse(); if (flag) { response.setCode(ApiConst.Code.CODE_SUCCESS.code()); response.setData(data); response.setMsg("成功"); return response; } response.setCode(ApiConst.Code.CODE_COMMON_ERROR.code()); response.setData(data); response.setMsg("失败"); return response; } /** * 构建CODE码和提示信息对象 * * @param code * @param msg * @return */ public static ApiResponse buildResponse(ApiConst.Code code, String msg) { ApiResponse response = new ApiResponse(); response.setCode(code.code()); response.setMsg(msg); return response; } /** * 构建用户自定义CODE码和提示信息对象 * * @param code * @param msg * @return */ public static ApiResponse buildResponse(int code, String msg) { ApiResponse response = new ApiResponse(); response.setCode(code); response.setMsg(msg); return response; } public static ApiResponse buildResult(BizCodeEnum bizCodeEnum) { ApiResponse apiResponse = new ApiResponse(); apiResponse.setCode(bizCodeEnum.code); apiResponse.setMsg(bizCodeEnum.message); return apiResponse; } /** * 是否执行成功 * * @return */ @JsonIgnore public boolean isSuccess() { return ApiConst.Code.CODE_SUCCESS.code() == this.code; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("[code=").append(code).append(", msg=").append(msg).append(", data=").append(data) .append("]"); return builder.toString(); } }