原始result

是利用构造方法进行新建对象 controller里边的每个方法返回都会新建对象不太好

statue code 没有数据查询 正确或者空的时候是200

报错或者什么的 都不是 根据错误 返回对应的状态码

是否所有不成功 都会报错???????

data 没有值时 返回空""

如果是list返回空的[]

不应该是null

log.error("错误消息:{}",e.getMessage(),e);
e.getMessage() 可以返回message 中
code           http 通信状态(200)
status         (当前请求预期的结果是否正确 比如删除 增加)-success可以是boolean或者str (error)
message         (提示的消息)

data            (数据对象)(查询不到获取没有返回空)
package com.eagle.monitor.reportForms.surplus.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * @Author LiGuangLong
 * @Date 2021-11-16 9:58
 * @Version 1.0
 * 返回数据包装类
 **/
@Getter
@Setter
@ToString
public class ResultObj<T> {
    private boolean status;
    private Integer code;
    private String message;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long total;
    private T data;

    /**
     * 普通查询数据
     */
    public ResultObj(T data) {
        System.out.println(data);
        if (data==null){
            this.data = (T) "";
        }else {
            this.data = data;
        }
        this.code = 200;
        this.message = "操作成功";
        this.status = true;
    }
    /**
     * 普通查询数据(分页)
     */
    public ResultObj(T data,Long total) {
        this.data = data;
        this.code = 200;
        this.message = "操作成功";
        this.status = true;
        this.total = total;
    }
    /**
     * 对于一些 增删改 返回数据定义
     */
    public ResultObj(boolean bool) {
        if (bool){
            this.message = "操作成功";
        }else {
            this.message = "操作失败";
        }
        this.code = 200;
        this.status = bool;
    }
    /**
     * 对于一些 增删改 返回数据定义
     */
    public ResultObj(boolean bool,String message) {
        this.status = bool;
        this.code = 200;
        this.message = message;
    }
    
}
package com.eagle.opd.comm;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;

/**
 * Result: 响应前端数据对象
 *
 * @param <T>
 * @author wzhz
 * @version v1.0.0
 * @class: Result
 * @package: com.eagle.cloud.commons
 * @description: Result: 响应前端数据对象
 * @date 2019年6月28日 下午6:20:36
 */
@Data
@AllArgsConstructor
public class Result<T> implements Serializable {

    /**
     * @fields serialVersionUID : serialVersionUID
     */
    private static final long serialVersionUID = -4655308746258244420L;
    private T data;
    private Integer code;
    private Boolean status;
    private String msg;

    public Result() {

    }

    public Result(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
        this.status = 200 == code ? true : false;
    }

    public Result(CodeEnum codeEnum, T data) {
        this.code = codeEnum.getCode();
        this.msg = codeEnum.getMsg();
        this.status = 200 == codeEnum.getCode() ? true : false;
        this.data = data;
    }

    public Result(T data) {
        this.code = CodeEnum.SUCCESS.getCode();
        this.status = true;
        this.msg = CodeEnum.SUCCESS.getMsg();
        this.data = data;
    }

    public static Result success() {
        return new Result(CodeEnum.SUCCESS);
    }

    public static Result success(Object data) {
        return new Result(CodeEnum.SUCCESS, data);
    }
//
//    public static Result success(String msg) {
//        return new Result(CodeEnum.SUCCESS.getCode(), msg);
//    }

    public static Result error() {
        return new Result(CodeEnum._500_BUSINESS_ERROR);
    }

    public static Result error(String msg) {
        return new Result(CodeEnum._999_UNKNOWN_ERROR.getCode(), msg);
    }

    public static Result error(CodeEnum codeEnum, String errorMsg) {
        return new Result(codeEnum.getCode(), codeEnum.getMsg()+":" + errorMsg );
    }

    public static Result result(CodeEnum codeEnum) {
        return result(codeEnum, null);
    }

    public static Result result(CodeEnum codeEnum, Object data) {
        return new Result(codeEnum, data);
    }

}
package com.eagle.common.api;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;


/**
 * @author Erin
 */
@Data
public class ResponseDTO<T> {

    private String status;
    private Integer code;
    private String message;
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long total;
    private T data;

    /**
     * 普通查询数据
     * @param data boj
     */
    public ResponseDTO(T data) {
        this.data = data;
        this.code = 200;
        this.message = "成功";
        this.status = "SUCCESS";
    }

    /**
     * 分页的数据查询
     * @param data dto
     * @param total 总页码
     */
    public ResponseDTO(T data,Long total) {
        this.total = total;
        this.data = data;
        this.code = 200;
        this.message = "成功";
        this.status = "SUCCESS";
    }

    /**
     * 对于一些查询 异常 返回空 不报错
     * @param errorEnum
     */
    public ResponseDTO(ErrorEnum errorEnum){
        if (errorEnum == null){
            //如果接收是null 返回空数据不报错
            System.out.println("ResponseDTO 对象实例化参数为 null 默认返回空数据 不报错");
            this.data = (T) "";
            this.code = 200;
            this.message = "成功";
            this.status = "SUCCESS";
        }else{
            this.status = errorEnum.name();
            this.code = errorEnum.getErrorCode();
            this.message = errorEnum.getErrorMsg();
        }

    }

    /**
     * 对于一些 增删改 返回数据定义
     * @param bool type
     */
    public ResponseDTO(boolean bool) {
        if (bool){
            this.message = "操作成功";
        }else {
            this.message = "操作失败";
        }
        this.code = 200;
        this.status = "SUCCESS";
    }
    /**
     * 对于一些 增删改 返回数据定义
     * @param bool type
     * @param message 自定义的message
     */
    public ResponseDTO(boolean bool,String message) {
        if (bool){
            this.status = "SUCCESS";
        }else {
            this.status = "error";
        }
        this.code = 200;
        this.message = message;
    }
    public ResponseDTO(int code, String message){
        this.status = "error";
        this.code = code;
        this.message = message;
    }
    public ResponseDTO(ErrorEnum errorEnum, String message){
        this.status = errorEnum.name();
        this.code = errorEnum.getErrorCode();
        this.message = message;
    }

    public ResponseDTO(String status, int code, String message) {
        this.status = status;
        this.code = code;
        this.message = message;
    }
}

若依这种形式好像对于swagger 的返回值 注解就失效了

package com.ruoyi.common.core.domain;

import java.util.HashMap;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.utils.StringUtils;

/**
 * 操作消息提醒
 * 
 * @author ruoyi
 */
public class AjaxResult extends HashMap<String, Object>
{
    private static final long serialVersionUID = 1L;

    /** 状态码 */
    public static final String CODE_TAG = "code";

    /** 返回内容 */
    public static final String MSG_TAG = "msg";

    /** 数据对象 */
    public static final String DATA_TAG = "data";

    /**
     * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
     */
    public AjaxResult()
    {
    }

    /**
     * 初始化一个新创建的 AjaxResult 对象
     * 
     * @param code 状态码
     * @param msg 返回内容
     */
    public AjaxResult(int code, String msg)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
    }

    /**
     * 初始化一个新创建的 AjaxResult 对象
     * 
     * @param code 状态码
     * @param msg 返回内容
     * @param data 数据对象
     */
    public AjaxResult(int code, String msg, Object data)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
        if (StringUtils.isNotNull(data))
        {
            super.put(DATA_TAG, data);
        }
    }

    /**
     * 返回成功消息
     * 
     * @return 成功消息
     */
    public static AjaxResult success()
    {
        return AjaxResult.success("操作成功");
    }

    /**
     * 返回成功数据
     * 
     * @return 成功消息
     */
    public static AjaxResult success(Object data)
    {
        return AjaxResult.success("操作成功", data);
    }

    /**
     * 返回成功消息
     * 
     * @param msg 返回内容
     * @return 成功消息
     */
    public static AjaxResult success(String msg)
    {
        return AjaxResult.success(msg, null);
    }

    /**
     * 返回成功消息
     * 
     * @param msg 返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static AjaxResult success(String msg, Object data)
    {
        return new AjaxResult(HttpStatus.SUCCESS, msg, data);
    }

    /**
     * 返回错误消息
     * 
     * @return
     */
    public static AjaxResult error()
    {
        return AjaxResult.error("操作失败");
    }

    /**
     * 返回错误消息
     * 
     * @param msg 返回内容
     * @return 警告消息
     */
    public static AjaxResult error(String msg)
    {
        return AjaxResult.error(msg, null);
    }

    /**
     * 返回错误消息
     * 
     * @param msg 返回内容
     * @param data 数据对象
     * @return 警告消息
     */
    public static AjaxResult error(String msg, Object data)
    {
        return new AjaxResult(HttpStatus.ERROR, msg, data);
    }

    /**
     * 返回错误消息
     * 
     * @param code 状态码
     * @param msg 返回内容
     * @return 警告消息
     */
    public static AjaxResult error(int code, String msg)
    {
        return new AjaxResult(code, msg, null);
    }

    /**
     * 方便链式调用
     *
     * @param key 键
     * @param value 值
     * @return 数据对象
     */
    @Override
    public AjaxResult put(String key, Object value)
    {
        super.put(key, value);
        return this;
    }
}