通用返回类

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * @author 小怪
 */
@ApiModel("Return message body 返回消息体")
public class ResponseDto extends Dto {
    @JsonIgnore
    @ApiModelProperty(value = "Thread No 线程编号")
    private String traceId;
    @JsonIgnore
    @ApiModelProperty(value = "Request No 请求编号")
    private String sourceId;
    @JsonIgnore
    @ApiModelProperty(value = "Corresponding description of request number 请求编号对应描述")
    private String sourceName;
    @ApiModelProperty(value = "Return state object 返回状态对象")
    private Status status;
    @ApiModelProperty(value = "Business message object 业务消息对象")
    private Object body;


    public static ResponseDto failure(ResponseStatus responseStatus){
       return  new ResponseDto(responseStatus,"");
    }
    public static ResponseDto failure(ResponseStatus responseStatus,String msg){
        return  new ResponseDto(responseStatus,msg);
    }
    public static ResponseDto failure(ResponseStatus responseStatus,String msg,String msgCn){
       return  new ResponseDto(responseStatus,msg,msgCn);
    }
    public static ResponseDto failure(String msgCn,ResponseStatus responseStatus){
       return  new ResponseDto(responseStatus,"",msgCn);
    }
    public static ResponseDto failure(String msgCn,ResponseStatus responseStatus,String msg){
       return  new ResponseDto(responseStatus,msg,msgCn);
    }
    public static ResponseDto success() {
        return new ResponseDto(ResponseStatus.SUCCESS,"");
    }
    public static ResponseDto success(ResponseStatus responseStatus,Object body) {
        return new ResponseDto(responseStatus,"","",body);
    }
    public static ResponseDto success(Object body) {
        return new ResponseDto(ResponseStatus.SUCCESS,"","",body);
    }
    public static ResponseDto success(Object body,String sourceId,String sourceName) {
        ResponseDto responseDto =  new ResponseDto(ResponseStatus.SUCCESS,"","",body);
        responseDto.setSourceId(sourceId);
        responseDto.setSourceName(sourceName);
        return responseDto;
    }

    public ResponseDto(ResponseStatus responseStatus, String customMessage) {
        this(responseStatus, customMessage, "", null);
    }
    public ResponseDto(ResponseStatus responseStatus, String customMessage, String customMessageCn) {
        this(responseStatus, customMessage, customMessageCn, null);
    }

    public ResponseDto(ResponseStatus responseStatus, String customMessage, String customMessageCn, Object body) {
        String msg = StringUtils.isBlank(customMessage) ? responseStatus.getMsg() : customMessage;
        String msgCn = StringUtils.isBlank(customMessageCn) ? responseStatus.getMsgCn() : customMessageCn;
        this.status = new Status(responseStatus.getCode(), msg, msgCn);
        this.body = body;
    }

    public String getTraceId() {
        return traceId;
    }

    public void setTraceId(String traceId) {
        this.traceId = traceId;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public Object getBody() {
        return body;
    }

    public void setBody(Object body) {
        this.body = body;
    }

    public void setCode(String code) {
        status = status == null ? new Status() : status;
        status.setCode(code);
    }

    public void setMsg(String msg) {
        status = status == null ? new Status() : status;
        status.setMsg(msg);
    }

    @ApiModel("Return state volume 返回状态体")
    public  class Status implements Serializable {
        @ApiModelProperty(value = "Return state coding 返回状态编码")
        private String code;
        @ApiModelProperty(value = "Return state description 返回状态描述")
        private String msg;
        @ApiModelProperty(value = "Return status description in Chinese 返回状态中文描述")
        private String msgCn;

        Status() {
        }

        Status(String code, String msg, String msgCn) {
            this.code = code;
            this.msg = msg;
            this.msgCn = msgCn;
        }

        public String getCode() {
            return code;
        }

        public void setCode(String code) {
            this.code = code;
        }

        public String getMsg() {
            return msg;
        }

        public void setMsg(String msg) {
            this.msg = msg;
        }

        public String getMsgCn() {
            return msgCn;
        }

        public void setMsgCn(String msgCn) {
            this.msgCn = msgCn;
        }

        @Override
        public String toString() {
            return "Status{" +
                    "code='" + code + '\'' +
                    ", msg='" + msg + '\'' +
                    ", msgCn='" + msgCn + '\'' +
                    '}';
        }
    }

    @Override
    public String toString() {
        return "ResponseDto{" +
                "traceId='" + traceId + '\'' +
                ", status=" + status +
                ", body=" + body +
                '}';
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public String getSourceName() {
        return sourceName;
    }

    public void setSourceName(String sourceName) {
        this.sourceName = sourceName;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值