Result.java
3.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.aigeo.common.result;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* 统一返回结果
*
* @author AIGEO Team
* @since 1.0.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Result<T> {
/**
* 状态码
*/
private Integer code;
/**
* 返回消息
*/
private String message;
/**
* 返回数据
*/
private T data;
/**
* 时间戳
*/
private LocalDateTime timestamp;
/**
* 请求ID(用于追踪)
*/
private String traceId;
public Result() {
this.timestamp = LocalDateTime.now();
}
public Result(Integer code, String message) {
this();
this.code = code;
this.message = message;
}
public Result(Integer code, String message, T data) {
this(code, message);
this.data = data;
}
/**
* 成功返回
*/
public static <T> Result<T> success() {
return new Result<>(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage());
}
public static <T> Result<T> success(T data) {
return new Result<>(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);
}
public static <T> Result<T> success(String message, T data) {
return new Result<>(ResultCode.SUCCESS.getCode(), message, data);
}
/**
* 失败返回
*/
public static <T> Result<T> error() {
return new Result<>(ResultCode.INTERNAL_SERVER_ERROR.getCode(), ResultCode.INTERNAL_SERVER_ERROR.getMessage());
}
public static <T> Result<T> error(String message) {
return new Result<>(ResultCode.INTERNAL_SERVER_ERROR.getCode(), message);
}
public static <T> Result<T> error(Integer code, String message) {
return new Result<>(code, message);
}
public static <T> Result<T> error(ResultCode resultCode) {
return new Result<>(resultCode.getCode(), resultCode.getMessage());
}
public static <T> Result<T> error(ResultCode resultCode, String message) {
return new Result<>(resultCode.getCode(), message);
}
/**
* 参数错误
*/
public static <T> Result<T> badRequest(String message) {
return new Result<>(ResultCode.BAD_REQUEST.getCode(), message);
}
/**
* 未授权
*/
public static <T> Result<T> unauthorized(String message) {
return new Result<>(ResultCode.UNAUTHORIZED.getCode(), message);
}
/**
* 禁止访问
*/
public static <T> Result<T> forbidden(String message) {
return new Result<>(ResultCode.FORBIDDEN.getCode(), message);
}
/**
* 资源未找到
*/
public static <T> Result<T> notFound(String message) {
return new Result<>(ResultCode.NOT_FOUND.getCode(), message);
}
/**
* 业务异常
*/
public static <T> Result<T> business(String message) {
return new Result<>(ResultCode.BUSINESS_ERROR.getCode(), message);
}
/**
* 判断是否成功
*/
public boolean isSuccess() {
return ResultCode.SUCCESS.getCode().equals(this.code);
}
}