SDKResult.java 2.49 KB
package com.hotent.sdk.commom;

import cn.hutool.json.JSONUtil;

import java.io.Serializable;
import java.util.StringJoiner;

/**
 * sdk调用响应
 *
 * @author liangjc
 * @company 广州宏天软件股份有限公司
 * @email liangjc@jee-soft.cn
 * @date 2023-07-18 15:15
 */
public class SDKResult<E> implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 状态 true:操作成功  false:操作失败
     */
    private Boolean state = true;

    /**
     * 提示信息
     */
    private String message;

    /**
     * 返回的数据
     */
    private E value;


    /**
     * 200, 400, 401, 500等
     */
    private Integer code = 200;

    public SDKResult(boolean state, String message, E value) {
        this.state = state;
        this.message = message;
        this.value = value;
    }

    public SDKResult() {
    }


    public Boolean getState() {
        return state;
    }

    public void setState(Boolean state) {
        this.state = state;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public E getValue() {
        return value;
    }

    public void setValue(E value) {
        this.value = value;
    }

    public Integer getCode() {
        return code;
    }

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


    /**
     * 成功返回数据接口
     *
     * @param e   响应数据
     * @param <E>
     * @return
     */
    public static <E> SDKResult<E> success(E e) {
        SDKResult<E> cr = new SDKResult<E>();
        cr.setState(true);
        cr.setValue(e);
        cr.setCode(200);
        return cr;
    }

    /**
     * commonResult转sdkResult
     *
     * @param commonResult
     * @return
     */
    public static SDKResult<String> trans(String commonResult) {
        return JSONUtil.toBean(commonResult, SDKResult.class);
    }

    /**
     * 失败
     *
     * @param message 异常信息
     * @return
     */
    public static <E> SDKResult<E> error(String message) {
        SDKResult<E> cr = new SDKResult<>(false, message, null);
        return cr;
    }

    @Override
    public String toString() {
        return new StringJoiner(", ", SDKResult.class.getSimpleName() + "[", "]")
                .add("state=" + state)
                .add("message='" + message + "'")
                .add("value=" + value)
                .add("code=" + code)
                .toString();
    }
}