统计美化
This commit is contained in:
61
src/main/java/cn/van/business/model/ApiResponse.java
Normal file
61
src/main/java/cn/van/business/model/ApiResponse.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package cn.van.business.model;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
|
||||
public class ApiResponse<T> {
|
||||
// 状态码(建议使用 HTTP 状态码或自定义业务状态码)
|
||||
private int code;
|
||||
// 返回消息
|
||||
private String message;
|
||||
// 业务数据(使用泛型支持不同类型)
|
||||
private T data;
|
||||
// 时间戳(毫秒)
|
||||
@JSONField(name = "timestamp")
|
||||
private long timestamp;
|
||||
|
||||
// 常用状态码常量
|
||||
public static final int CODE_SUCCESS = 200;
|
||||
public static final int CODE_BAD_REQUEST = 400;
|
||||
public static final int CODE_UNAUTHORIZED = 401;
|
||||
public static final int CODE_SERVER_ERROR = 500;
|
||||
|
||||
// 构造方法私有化,通过静态工厂方法创建
|
||||
private ApiResponse(int code, String message, T data) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
this.data = data;
|
||||
this.timestamp = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
// 成功响应(带数据)
|
||||
public static <T> ApiResponse<T> success(T data) {
|
||||
return new ApiResponse<>(CODE_SUCCESS, "success", data);
|
||||
}
|
||||
|
||||
// 成功响应(无数据)
|
||||
public static ApiResponse<?> success() {
|
||||
return success(null);
|
||||
}
|
||||
|
||||
// 错误响应(自定义状态码和消息)
|
||||
public static ApiResponse<?> error(int code, String message) {
|
||||
return new ApiResponse<>(code, message, null);
|
||||
}
|
||||
|
||||
// 快速错误响应(预定义类型)
|
||||
public static ApiResponse<?> badRequest() {
|
||||
return error(CODE_BAD_REQUEST, "Bad Request");
|
||||
}
|
||||
|
||||
public static ApiResponse<?> unauthorized() {
|
||||
return error(CODE_UNAUTHORIZED, "Unauthorized");
|
||||
}
|
||||
|
||||
// getters 需要保留用于序列化
|
||||
public int getCode() { return code; }
|
||||
public String getMessage() { return message; }
|
||||
public T getData() { return data; }
|
||||
public long getTimestamp() { return timestamp; }
|
||||
|
||||
// setters 可省略或设为私有,根据实际需求
|
||||
}
|
||||
Reference in New Issue
Block a user