无关风月
2024-07-11 eb6b6dbb35a9f029e0b7d269773685c19fd40976
cloud-server-other/src/main/java/com/dsh/other/util/ResultUtil.java
New file
@@ -0,0 +1,203 @@
package com.dsh.other.util;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 定义统一返回对象
 */
@ApiModel(value = "统一返回结果集")
@Data
public class ResultUtil<T> {
    public static final Integer SUCCESS = 200;
    public static final Integer PARAM_ERROR = 300;
    public static final Integer RUNTIME_ERROR = 400;
    public static final Integer ERROR = 500;
    public static final Integer TOKEN_ERROR = 600;
    public static final Integer SIGN_ERROR = 700;
    public static final String Token = "TOKEN_INVALID";
    public static final String SIGN = "SIGN_INVALID";
    @ApiModelProperty(name = "code", value = "业务状态码 200:成功,300:参数错误,400:运行异常,500:其他异常, 600:token无效,需重新登录,700:签名无效")
    private Integer code;//备用状态码
    @ApiModelProperty(name = "msg", value = "返回结果说明")
    private String msg;//返回说明
    @ApiModelProperty(name = "data", value = "返回结果值")
    private T data;//返回数据
    public String getMsg() {
        return msg;
    }
    public T getData() {
        return data;
    }
    public Integer getCode() {
        return code;
    }
    public ResultUtil(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    private ResultUtil(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg) {
        return new ResultUtil<>(code, msg);
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data) {
        return new ResultUtil<>(code, msg, data);
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static ResultUtil error(String mag) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, new JSONObject());
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static <T> ResultUtil<T> error(String mag, T obj) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, obj);
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr() {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, ResultUtil.Token, new JSONObject());
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr(String msg) {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, msg, new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static ResultUtil paranErr(String ages) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "【" + ages + "】参数异常", new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static <T> ResultUtil<T> paranErr(T data) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "PARAM_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static ResultUtil runErr() {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", new JSONObject());
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T> ResultUtil<T> runErr(T data) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T> ResultUtil<T> runErr(T data, String msg) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, msg, data);
    }
    /**
     * 返回成功
     *
     * @param
     * @return
     */
    public static ResultUtil success() {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", new JSONObject());
    }
    /**
     * 返回成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", data);
    }
    /**
     * 返回成功
     *
     * @param msg
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(String msg, T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, msg, data);
    }
    /**
     * 签名无效
     *
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> sign() {
        return ResultUtil.getResult(ResultUtil.SIGN_ERROR, SIGN);
    }
}