ResultCode.java 3.6 KB
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;
}




}