ResponseResult.java
3.68 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
package com.infoloop.tianting.model.common;
import com.infoloop.tianting.constant.ConfigConstants;
import com.infoloop.tianting.exception.BaseEnum;
import com.infoloop.tianting.exception.ErrorCodeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.slf4j.MDC;
import java.io.Serializable;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "请求结果响应体")
public final class ResponseResult<T> implements Serializable {
@ApiModelProperty("响应时间戳")
private final long timestamp = System.currentTimeMillis();
@ApiModelProperty("提示码")
private int code;
@ApiModelProperty("提示消息")
private String message;
@ApiModelProperty("数据结果体")
private T data;
@ApiModelProperty("请求追踪ID(用于查找日志)")
private String traceId;
public static <T> ResponseResult<T> ok() {
return restResult(ErrorCodeEnum.SUCCESS.getCode(), ErrorCodeEnum.SUCCESS.getMessage(), null);
}
public static <T> ResponseResult<T> ok(T data) {
return restResult(ErrorCodeEnum.SUCCESS.getCode(), ErrorCodeEnum.SUCCESS.getMessage(), data);
}
public static <T> ResponseResult<T> failed(int code, String msg, T data) {
return restResult(code, msg, data);
}
public static <T> ResponseResult<T> failed(int code, String msg) {
return restResult(code, msg, null);
}
public static <T> ResponseResult<T> failed(String msg) {
return restResult(ErrorCodeEnum.FAILED.getCode(), msg, null);
}
public static <T> ResponseResult<T> failed(BaseEnum baseEnum, T data) {
return restResult(baseEnum.getCode(), baseEnum.getMessage(), data);
}
public static <T> ResponseResult<T> failed(BaseEnum baseEnum) {
return restResult(baseEnum.getCode(), baseEnum.getMessage(), null);
}
/**
* 参数验证失败返回结果
*/
public static <T> ResponseResult<T> validateFailed(String message) {
return restResult(ErrorCodeEnum.VALIDATE_FAILED.getCode(), message, null);
}
/**
* 未登录返回结果
*/
public static <T> ResponseResult<T> unauthorized(String message) {
return restResult(ErrorCodeEnum.UNAUTHORIZED.getCode(), message, null);
}
/**
* 未授权返回结果
*/
public static <T> ResponseResult<T> forbidden(String message) {
return restResult(ErrorCodeEnum.FORBIDDEN.getCode(), message, null);
}
/**
* 方法不允许
*/
public static <T> ResponseResult<T> notAllowed(String message) {
return restResult(ErrorCodeEnum.NOT_ALLOWED.getCode(), message, null);
}
/**
* 资源未找到
*/
public static <T> ResponseResult<T> notFound(String message) {
return restResult(ErrorCodeEnum.RESOURCE_NOT_FOUND.getCode(), message, null);
}
/**
* 请求超时
*/
public static <T> ResponseResult<T> requestTimeout(String message) {
return restResult(ErrorCodeEnum.REQUEST_TIMEOUT.getCode(), message, null);
}
/**
* 资源被锁定
*/
public static <T> ResponseResult<T> locked(String message) {
return restResult(ErrorCodeEnum.LOCKED.getCode(), message, null);
}
private static <T> ResponseResult<T> restResult(int code, String msg, T data) {
final var apiResult = new ResponseResult<T>();
apiResult.setCode(code);
apiResult.setData(data);
apiResult.setMessage(msg);
apiResult.setTraceId(MDC.get(ConfigConstants.LOGGING_TRACING_ID));
return apiResult;
}
}