ResultCode.java
3.6 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
package com.aigeo.common.result;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 返回状态码枚举
*
* @author AIGEO Team
* @since 1.0.0
*/
@Getter
public enum ResultCode {
// 成功
SUCCESS(200, "操作成功"),
// 客户端错误
BAD_REQUEST(400, "请求参数错误"),
UNAUTHORIZED(401, "未授权访问"),
FORBIDDEN(403, "禁止访问"),
NOT_FOUND(404, "资源未找到"),
METHOD_NOT_ALLOWED(405, "请求方法不允许"),
CONFLICT(409, "资源冲突"),
VALIDATION_FAILED(422, "参数校验失败"),
TOO_MANY_REQUESTS(429, "请求过于频繁"),
// 服务端错误
INTERNAL_SERVER_ERROR(500, "系统内部错误"),
BAD_GATEWAY(502, "网关错误"),
SERVICE_UNAVAILABLE(503, "服务不可用"),
GATEWAY_TIMEOUT(504, "网关超时"),
// 业务错误码 (6000-6999)
BUSINESS_ERROR(6000, "业务处理失败"),
// 认证相关 (6100-6199)
LOGIN_FAILED(6101, "登录失败"),
PASSWORD_ERROR(6102, "密码错误"),
ACCOUNT_LOCKED(6103, "账号已锁定"),
ACCOUNT_EXPIRED(6104, "账号已过期"),
TOKEN_INVALID(6105, "令牌无效"),
TOKEN_EXPIRED(6106, "令牌已过期"),
// 用户相关 (6200-6299)
USER_NOT_FOUND(6201, "用户不存在"),
USER_ALREADY_EXISTS(6202, "用户已存在"),
USERNAME_EXISTS(6203, "用户名已存在"),
EMAIL_EXISTS(6204, "邮箱已存在"),
EMAIL_ALREADY_EXISTS(6205, "邮箱已被注册"),
USER_DISABLED(6206, "用户已禁用"),
PARAM_ERROR(6207, "参数错误"),
DATA_NOT_FOUND(6208, "数据不存在"),
DATA_ALREADY_EXISTS(6209, "数据已存在"),
SYSTEM_ERROR(6210, "系统错误"),
// 公司相关 (6300-6399)
COMPANY_NOT_FOUND(6301, "公司不存在"),
COMPANY_SUSPENDED(6302, "公司已暂停"),
COMPANY_DISABLED(6303, "公司已禁用"),
QUOTA_EXCEEDED(6304, "配额已超限"),
// 文件相关 (6400-6499)
FILE_NOT_FOUND(6401, "文件不存在"),
FILE_TYPE_NOT_ALLOWED(6402, "文件类型不允许"),
FILE_SIZE_EXCEEDED(6403, "文件大小超限"),
UPLOAD_FAILED(6404, "文件上传失败"),
// AI相关 (6500-6599)
AI_SERVICE_ERROR(6501, "AI服务异常"),
AI_CONFIG_NOT_FOUND(6502, "AI配置不存在"),
AI_QUOTA_EXCEEDED(6503, "AI调用配额已用完"),
PROMPT_TEMPLATE_ERROR(6504, "提示模板错误"),
// 发布相关 (6600-6699)
PLATFORM_NOT_CONFIGURED(6601, "发布平台未配置"),
PUBLISH_FAILED(6602, "发布失败"),
SCHEDULE_CONFLICT(6603, "发布时间冲突"),
// 数据相关 (6700-6799)
DATA_NOT_EXISTS(6701, "数据不存在"),
DATA_DUPLICATE(6702, "数据重复"),
DATA_INTEGRITY_ERROR(6703, "数据完整性错误"),
// 外部服务相关 (6800-6899)
EXTERNAL_SERVICE_ERROR(6801, "外部服务错误"),
RATE_LIMIT_EXCEEDED(6802, "调用频率超限"),
API_KEY_INVALID(6803, "API密钥无效");
private final Integer code;
private final String message;
ResultCode(Integer code, String message) {
this.code = code;
this.message = message;
}
/**
* 根据状态码获取枚举
*/
/**
* 根据状态码获取枚举
*/
/**
* 根据状态码获取枚举
*/
/**
* 根据状态码获取枚举
*/
/**
* 根据状态码获取枚举
*/
public static ResultCode getByCode(Integer code) {
if (code == null) {
return INTERNAL_SERVER_ERROR;
}
for (ResultCode resultCode : values()) {
if (resultCode.getCode().equals(code)) {
return resultCode;
}
}
return INTERNAL_SERVER_ERROR;
}
}