package com.highdatas.mdm.pojo;

import lombok.Getter;
import lombok.Setter;

/**
 * @author kimi
 * @description
 * @date 2019-12-11 14:38
 */


public class Result<T> {
    @Getter @Setter
    private Integer status;
    @Getter @Setter
    private Boolean success;
    @Getter @Setter
    private String message;
    @Getter @Setter
    private T data;

    private Result(T data){
        this.status = 2000;
        this.success = true;
        this.message = "获取信息成功";
        this.data = data;
    }

    private Result(String message,T data){
        this.status = 2000;
        this.message = message;
        this.data = data;
        this.success = true;
    }

    private Result(CodeMsg cm){
        if(cm==null){
            this.success = false;
            return;
        }else {
            this.status = cm.getCode();
            this.message = cm.getMsg();
            this.data = null;
            this.success = cm.isSuccess();
        }
    }

    public static <T> Result<T> success(T data){
        return new Result<T>(data);
    }
    public static <T> Result<T> success(CodeMsg codeMsg){
        return new Result<T>(CodeMsg.SUCCESS);
    }
    public static <T> Result<T> success(String message, T data){
        return new Result<T>(message, data);
    }

    public static <T> Result<T> error(CodeMsg cm){
        return new Result<T>(cm);
    }



}