package com.estate.expert.common.rpc; import com.estate.expert.common.utils.LogUtils; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.*; /** * @author code */ @Data @Builder @NoArgsConstructor @AllArgsConstructor @ApiModel("接口返回结果") public class Result { @ApiModelProperty("接口返回数据") private T data; @ApiModelProperty("接口返回状态") private Status status; @ApiModelProperty("异常错误信息") private String errorMsg; @ApiModelProperty("追踪ID") private String traceId; @JsonIgnore public boolean isSuccess() { return Status.OK == this.status; } public static Result success() { return Result.builder() .status(Status.OK) .build(); } public static Result success(T content) { return Result.builder() .status(Status.OK) .data(content) .build(); } public static Result error(ApiResultCode resultCode) { return Result.builder() .status(Status.ERROR) .traceId(LogUtils.getTraceId()) .errorMsg(resultCode.getErrorMsg()) .build(); } public static Result error(String customErrorMsg) { return Result.builder() .status(Status.ERROR) .errorMsg(customErrorMsg) .traceId(LogUtils.getTraceId()) .build(); } public static Result error(String errorCode, String errorMsg) { return Result.builder() .status(Status.ERROR) .traceId(LogUtils.getTraceId()) .errorMsg(errorMsg) .build(); } @Override public Result clone() { return Result.builder() .status(status) .data(data) .errorMsg(errorMsg) .build(); } @Getter @ApiModel("接口返回状态") public static enum Status { /** 接口返回状态 */ OK, ERROR, ; } }