package com.example.demo.domain.vo; import com.example.demo.Util.BusinessException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.HashMap; @Data @NoArgsConstructor @AllArgsConstructor public class Result implements Serializable { private static final long serialVersionUID = 1L; private Integer code; // 响应码,200 代表成功;401 代表未授权 private String msg; // 响应消息 private Object data; // 返回的数据 // 成功响应(不需要给前端返回数据) public static Result success() { return new Result(200, "success", new HashMap<>()); } // 查询成功响应(把查询结果作为返回数据响应给前端) public static Result success(Object data) { return new Result(200, "success", data); } // 失败响应 public static Result error(String msg) { return new Result(0, msg, new HashMap<>()); } // 失败响应,可以自定义错误码 public static Result error(int code, String msg) { return new Result(code, msg, new HashMap<>()); } // 成功响应,可以自定义消息和数据 public static Result success(String msg, HashMap resultData) { return new Result(200, msg, resultData); // 返回成功响应,状态码为 200 } // 未授权响应,可以自定义错误码 public static Result unauthorized(int code, String msg) { return new Result(code, msg, new HashMap<>()); } // 错误响应,状态码为200,code为401 public static Result unauthorized(String msg) { return new Result(401, msg, new HashMap<>()); } //失败响应 自定义状态码 默认为500 public static Result error(BusinessException e) { Result response = new Result(); // 定义默认错误码映射 final int defaultErrorCode = 400; // 检查 getCode() 是否为 null(如果是 Integer) Integer code = e.getCode(); if (code == null || code == 0) { response.setCode(defaultErrorCode); // 默认错误码 } else { response.setCode(code); } response.setMsg(e.getMessage()); return response; } public String toJson() throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.writeValueAsString(this); } }