Springboot项目返回数据统一封装

22 阅读1分钟

代码

//接口 ErrorCode
package error;

public interface ErrorCode {

    /*
    * 获取结果码
    * */
    String getCode();

    //获取结果码描述信息
    String getMessage();
}
//枚举实现类
package error;

public enum ErrorEnum implements ErrorCode{
    SUCCESS("SUCCESS","成功"),
    DATA_NOT_FOUND("DATA_NOT_FOUND","数据不存在");

    private String code;

    private String message;

    ErrorEnum(String code,String message){
        this.code = code;
        this.message = message;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }


}
//响应数据返回类
package response;

import com.fasterxml.jackson.annotation.JsonIgnore;
import error.ErrorCode;
import error.ErrorEnum;
import lombok.Data;

@Data
public class Result<T> {

    private String code;
    private String msg;
    private T data;

    @JsonIgnore
    public boolean getSuccess(){
        return this.code.equals(ErrorEnum.SUCCESS.getCode());
    }

    private Result(String code,String msg,T data){
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    private Result(ErrorEnum errorEnum,T data){
        this.code = errorEnum.getCode();
        this.msg = errorEnum.getMessage();
        this.data = data;
    }

    public static <T> Result<T> Result(ErrorEnum errorEnum,T data){
        return new Result<>(errorEnum,data);
    }

    public static <T> Result<T> Result(String code,String msg,T data){
        return new Result<>(code,msg,data);
    }
}
//UserService 根据用户名查找用户数据接口
public User queryUserByName(String username){
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("username",username);
    return userDao.selectOne(queryWrapper);
}
//UserController.java
@RequestMapping("/login")
public Result<User> login(String username,String password){
    System.out.println("用户名"+username);
    System.out.println("密码"+password);
    User user = userService.queryUserByName(username);
    System.out.println(user);
    if(user == null){
        return Result.Result(ErrorEnum.DATA_NOT_FOUND,null);
    }
    return Result.Result(ErrorEnum.SUCCESS,user);
}

效果

image.png

image.png