关于spring:统一响应模板

34次阅读

共计 2704 个字符,预计需要花费 7 分钟才能阅读完成。

2021 年 03 月 11 日 16:19

package com.fedtech.common.util.result;

import cn.hutool.json.JSONUtil;
import com.fedtech.common.constants.Result.ResponseCodeConstants;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 全局对立响应模板
 *
 * @author <a href="mailto:njpkhuan@gmail.com">huan</a>
 * @version 1.0.0
 * @date 2021/1/9
 */
@SuppressWarnings("rawtypes")
@Data
public class R<T> implements Serializable {

    private static final long serialVersionUID = 6426193889384507066L;
    private Boolean status;

    private Integer code;

    private String message;

    private boolean jsonData = Boolean.FALSE;

    private Map<String, Object> data = new HashMap<>();

    private R() {}

    public static R success() {R r = new R();
        r.setStatus(true);
        r.setCode(ResponseCodeConstants.SUCCESS);
        r.setMessage("申请胜利!");
        return r;
    }

    public static <T> R<T> success(String message) {R<T> r = new R<>();
        r.setStatus(true);
        r.setCode(ResponseCodeConstants.SUCCESS);
        r.setMessage(message);
        return r;
    }

    public static <T> R<T> fail() {R<T> r = new R<>();
        r.setStatus(false);
        r.setCode(ResponseCodeConstants.ERROR);
        r.setMessage("申请失败!");
        return r;
    }

    public static <T> R<T> fail(String key, Object value) {R<T> r = new R<>();
        r.setStatus(false);
        r.data.put(key, value);
        r.setCode(ResponseCodeConstants.ERROR);
        r.setMessage("申请失败!");
        return r;
    }

    public static <T> R<T> fail(String message) {R<T> r = new R<>();
        r.setStatus(false);
        r.setCode(ResponseCodeConstants.ERROR);
        r.setMessage(message);
        return r;
    }

    public static <T> R<T> fail(String message, Integer code) {R<T> r = new R<>();
        r.setStatus(false);
        r.setCode(code);
        r.setMessage(message);
        return r;
    }

    public static <T> R<T> successWithJsonData(T data) {R<T> r = new R<>();
        r.setStatus(Boolean.TRUE);
        r.setCode(ResponseCodeConstants.SUCCESS);
        r.data.put("data", data);
        r.jsonData = Boolean.TRUE;
        return r;
    }

    public static <T> R<T> successWithData(T data) {R<T> r = new R<>();
        r.setStatus(Boolean.TRUE);
        r.setCode(ResponseCodeConstants.SUCCESS);
        r.data.put("data", data);
        return r;
    }

    public static <T> R<T> failedWithJsonData(T data) {R<T> r = new R<>();
        r.setStatus(Boolean.FALSE);
        r.setCode(ResponseCodeConstants.ERROR);
        r.data.put("data", data);
        r.jsonData = Boolean.TRUE;
        return r;
    }

    public static <T> R<T> failedWithData(T data) {R<T> r = new R<>();
        r.setStatus(Boolean.FALSE);
        r.setCode(ResponseCodeConstants.ERROR);
        r.data.put("data", data);
        return r;
    }

    public R message(String message) {setMessage(message);
        return this;
    }

    public R code(Integer code) {setCode(code);
        return this;
    }

    public R data(String key, Object value) {data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> map) {setData(map);
        return this;
    }

    public String toJson() {if (jsonData) {String tem = String.valueOf(data.get("data"));
            data.remove("data");
            String jsonStr = JSONUtil.toJsonPrettyStr(this);
            return StringUtils.replace(jsonStr, jsonStr.substring(30, 38), tem);
        }
        return JSONUtil.toJsonPrettyStr(this);
    }
}

本文由博客群发一文多发等经营工具平台 OpenWrite 公布

正文完
 0