状态码封装--转载

53 阅读3分钟

文章目录


转载jeebase-WANGLEI并做补充

一. 常量封装

/**
 * @author jeebase-WANGLEI
 * @ClassName: PublicResultConstant
 * @Description: TODO
 * @date 2018年5月18日 下午11:49:45
 */
public enum ResponseConstant {
    /**
     * 成功 20x
     */
    // 成功 服务器已经成功处理了请求。通常,这表示服务器提供了请求的网页。
    SUCCESS_200(200, "success"),
    // 已创建 请求成功并且服务器创建了新的资源。
    SUCCESS_201(201, "success"),
    //已接受 服务器已接受请求,但尚未处理。
    SUCCESS_202(202, "尚未处理"),
    // 重置内容 服务器成功处理了请求,但没有返回任何内容。
    SUCCESS_205(205, "服务器成功处理了请求,但没有返回任何内容"),

    /**
     * 异常 40x
     */
    // 错误请求 服务器不理解请求的语法。
    FAILED_400(400, "错误请求"),
    // -未授权 请求要求身份验证。 token过期
    UNAUTHORIZED_401(401, "未授权"),
    // 禁止 服务器拒绝请求。
    FAILED_403(403, "服务器拒绝请求"),
    // 未找到 服务器到不到请求的网页。
    FAILED_404(404, "服务器到不到请求的网页"),
    // 408-请求超时 服务器等候请求时发生超时。
    FAILED_408(408, "请求超时"),
    /**
     * 服务器错误 50x
     */
    // 服务器内部错误
    SERVER_ERROR_500(500,"服务器内部错误"),
    //服务器不可用 服务器目前无法使用(由于超载或者停机维护)。
    SERVER_ERROR_503(503,"服务器不可用"),
    /**
     * 操作失败
     */
    ERROR(90000000, "操作失败"),
    /**
     * 参数错误
     */
    PARAM_ERROR(90000003, "参数错误"),
    /**
     * 验证码错误
     */
    INVALID_RE_VCODE(10000011, "验证码错误"),
    /**
     * 用户名或密码错误
     */
    INVALID_USERNAME_PASSWORD(10000003, "账号或密码错误"),
    /**
     *
     */
    INVALID_RE_PASSWORD(10000010, "两次输入密码不一致"),
    /**
     * 用户名或密码错误
     */
    INVALID_PASSWORD(10000009, "旧密码错误"),
    /**
     * 用户名重复
     */
    USERNAME_ALREADY_IN(10000002, "用户已存在"),
    /**
     * 用户不存在
     */
    INVALID_USER(10000001, "用户不存在"),
    /**
     * 角色不存在
     */
    INVALID_ROLE(10000004, "角色不存在"),
    /**
     * 角色不存在
     */
    ROLE_USER_USED(10000008, "角色使用中,不可删除"),
    /**
     * 参数错误-已存在
     */
    INVALID_PARAM_EXIST(10000005, "请求参数已存在"),
    /**
     * 参数错误
     */
    INVALID_PARAM_EMPTY(10000006, "请求参数为空"),
    /**
     * 没有权限
     */
    USER_NO_PERMITION(10000007, "当前用户无该接口权限");


    public int result;

    public String msg;

    ResponseConstant(int result, String msg) {
        this.result = result;
        this.msg = msg;
    }

    public int getResult() {
        return result;
    }

    public void setResult(int result) {
        this.result = result;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

二. 返回状态码封装

转载Acerola;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Acerola
 */
@Data
@AllArgsConstructor
public class Result<T> {

    private int code;

    private String msg;

    private T data;

    public Result() {

    }

    public Result(T data) {
        this.data = data;
    }

    /**
     * 返回成功
     */
    public Result<T> success() {
        return success("操作成功!");
    }

    /**
     * 返回成功
     */
    public Result<T> success(String message) {
        return success(200, message);
    }

    /**
     * 文件上传成功
     *
     * @param data
     * @param
     * @return
     */
    public Result<T> fileSuccess(T data) {
        Result<T> result = new Result<>(data);
        result.setCode(0);
        result.setMsg("成功");
        return result;
    }

    /**
     * 返回成功
     */
    public Result<T> success(ResponseConstant constant) {
        return success(constant.getResult(), constant.getMsg());
    }
    /**
     * 返回成功
     */
    public Result<T> success(int code, String message) {
        this.setCode(code);
        this.setMsg(message);
        return this;
    }

    /**
     * 返回失败
     */
    public Result<T> error() {
        return error("操作失败!");
    }

    /**
     * 返回失败
     */
    public Result<T> error(String messag) {
        return error(500, messag);
    }

    /**
     * 返回失败
     */
    public Result<T> error(int code, String message) {
        return success(code, message);
    }

    /**
     * 返回信息
     */
    public Result<T> error(ResponseConstant constant) {
        return success(constant.getResult(), constant.getMsg());
    }

    /**
     * 放入object
     */
    public Result<T> put(T object) {
        this.setData(object);
        return this;
    }

}