Java统一结果返回

本文最后更新于:2025年6月25日 晚上

一、根据前端定义状态码返回信息等枚举值,创建枚举类:ResponseEnum.java

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;

@Getter
@AllArgsConstructor
@ToString
public enum ResponseEnum {
    SUCCESS(0, "成功!"),
    ERROR(-1, "失败!"),

    //-1xx 服务器错误
    BAD_SQL_GRAMMAR_ERROR(-101, "sql语法错误"),
    SERVLET_ERROR(-102, "servlet请求异常"),
    UPLOAD_ERROR(-103, "文件上传错误"),
    EXPORT_DATA_ERROR(104, "数据导出失败"),


    //-2xx 参数校验
    BORROW_AMOUNT_NULL_ERROR(-201, "借款额度不能为空"),
    MOBILE_NULL_ERROR(-202, "手机号码不能为空"),
    MOBILE_ERROR(-203, "手机号码不正确"),
    PASSWORD_NULL_ERROR(204, "密码不能为空"),
    CODE_NULL_ERROR(205, "验证码不能为空"),
    CODE_ERROR(206, "验证码错误"),
    MOBILE_EXIST_ERROR(207, "手机号已被注册"),
    LOGIN_MOBILE_ERROR(208, "用户不存在"),
    LOGIN_PASSWORD_ERROR(209, "密码错误"),
    LOGIN_LOKED_ERROR(210, "用户被锁定"),
    LOGIN_AUTH_ERROR(-211, "未登录"),


    USER_BIND_IDCARD_EXIST_ERROR(-301, "身份证号码已绑定"),
    USER_NO_BIND_ERROR(302, "用户未绑定"),
    USER_NO_AMOUNT_ERROR(303, "用户信息未审核"),
    USER_AMOUNT_LESS_ERROR(304, "您的借款额度不足"),
    LEND_INVEST_ERROR(305, "当前状态无法投标"),
    LEND_FULL_SCALE_ERROR(306, "已满标,无法投标"),
    NOT_SUFFICIENT_FUNDS_ERROR(307, "余额不足,请充值"),

    PAY_UNIFIEDORDER_ERROR(401, "统一下单错误"),

    ALIYUN_SMS_LIMIT_CONTROL_ERROR(-502, "短信发送过于频繁"),//业务限流
    ALIYUN_SMS_ERROR(-503, "短信发送失败"),//其他失败

    WEIXIN_CALLBACK_PARAM_ERROR(-601, "回调参数不正确"),
    WEIXIN_FETCH_ACCESSTOKEN_ERROR(-602, "获取access_token失败"),
    WEIXIN_FETCH_USERINFO_ERROR(-603, "获取用户信息失败"),
    ;

    private Integer code;   // 状态码
    private String message; // 消息
}

二、定义统一返回结果类:Result.java

import lombok.Data;
import java.util.HashMap;

/**
 * @author Smile
 * @version 1.0
 * @description: 统一返回结果
 * @date 2022/3/29 17:50
 */

@Data
public class Result {
    // 构造私有
    private Result() {
    }

    private Integer code;
    private String message;
    private HashMap<String, Object> data = new HashMap<>();

    public static Result success(){
        Result result = new Result();
        result.code = ResponseEnum.SUCCESS.getCode();
        result.message = ResponseEnum.SUCCESS.getMessage();
        return result;
    }

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

    public Result data(HashMap<String, Object> map) {
        this.setData(map);
        return this;
    }

    public static Result fail(){
        Result result = new Result();
        result.code = ResponseEnum.ERROR.getCode();
        result.message = ResponseEnum.ERROR.getMessage();
        return result;
    }

    public Result message(Integer code, String message) {
        this.code = code;
        this.message = message;
        return this;
    }

    public Result message(String message) {
        this.message = message;
        return this;
    }
}

使用

项目中Controller层返回

成功

失败


Java统一结果返回
https://codeofhh.cn/2022/07/16/Java统一结果返回/
作者
hhu
发布于
2022年7月16日
许可协议