ResponseData.java 2.13 KB
package com.wondertek.util;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.wondertek.enums.GlobalCodeEnum;
import lombok.Data;
import lombok.ToString;

@Data
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResponseData<T> {

    /**
     * 返回代码
     */
    private String resultCode;
    /**
     * 返回信息
     */
    private String returnMessage;
    /**
     * 返回结果
     */
    private T data;

    public <K> ResponseData() {
    }

    public ResponseData(String code, String msg) {
        this.resultCode = code;
        this.returnMessage = msg;
    }

    public ResponseData(String code, String msg, T result) {
        this.resultCode = code;
        this.returnMessage = msg;
        this.data = result;
    }

    public static <T> ResponseData<T> ok() {
        return new ResponseData<>(GlobalCodeEnum.SUCCESS.getCode(), GlobalCodeEnum.SUCCESS.getMsg());
    }

    public static <T> ResponseData<T> ok(String msg) {
        return new ResponseData<T>(GlobalCodeEnum.SUCCESS.getCode(), msg);
    }

    public static <T> ResponseData<T> ok(T result) {
        return new ResponseData<T>(GlobalCodeEnum.SUCCESS.getCode(), GlobalCodeEnum.SUCCESS.getMsg(), result);
    }

    public Boolean isSuccess() {
        return GlobalCodeEnum.SUCCESS.getCode().equals(this.resultCode);
    }

    public static <T> ResponseData<T> error() {
        return new ResponseData<T>(GlobalCodeEnum.FAILURE.getCode(), GlobalCodeEnum.FAILURE.getMsg());
    }

    public static <T> ResponseData<T> error(String msg) {
        return new ResponseData<T>(GlobalCodeEnum.FAILURE.getCode(), msg);
    }

    public static <T> ResponseData<T> error(String code, String msg) {
        return new ResponseData<T>(code, msg);
    }

    public static <K> ResponseData<K> error(String code, String msg, K k) {
        return new ResponseData<K>(code, msg, k);
    }

    public void setCodeAndMsg(GlobalCodeEnum globalCodeEnum) {
        setCodeAndMsg(globalCodeEnum.getCode(), globalCodeEnum.getMsg());
    }

    public void setCodeAndMsg(String code, String msg) {
        this.resultCode = code;
        this.returnMessage = msg;
    }
}