feat: 增强管理员 API 鉴权,新增 token 有效天数配置,更新相关异常处理与错误码引用
This commit is contained in:
@@ -3,35 +3,87 @@
|
||||
namespace App\Lottery;
|
||||
|
||||
/**
|
||||
* HTTP JSON 中与 `ApiResponse` 对齐的业务码常量(对齐 docs/04 §10)。
|
||||
* SSO 等特殊场景仍由各模块直接写整数(如 EnsurePlayerApi 使用的 8001)。
|
||||
* HTTP JSON 业务码 `code`(与 `ApiResponse`、docs/04 §10 对齐)。
|
||||
*
|
||||
* 区间约定:0 成功;1000–1999 钱包;2000–2999 下注;8000–8999 SSO/权限;9000–9999 系统。
|
||||
* 新增错误时在此登记,业务代码引用本枚举,勿散落魔法数字。
|
||||
*/
|
||||
enum ErrorCode: int
|
||||
{
|
||||
/** 管理端 API:未登录或 Token 无效 */
|
||||
/* ========== 成功 ========== */
|
||||
|
||||
/** 业务成功(与 `ApiResponse::success` 默认一致) */
|
||||
case Success = 0;
|
||||
|
||||
/* ========== 1000–1999 钱包 / 转账 ========== */
|
||||
|
||||
/** PRD:余额不足 */
|
||||
case WalletInsufficientBalance = 1001;
|
||||
|
||||
/** PRD:处理中(转账) */
|
||||
case WalletTransferPending = 1002;
|
||||
|
||||
/** PRD:金额超出限制 */
|
||||
case WalletAmountExceedsLimit = 1003;
|
||||
|
||||
/**
|
||||
* PRD:钱包查询等场景下请求参数无效;当前用于 `currency` 非法(与 1003 语义区分)。
|
||||
*/
|
||||
case WalletInvalidCurrency = 1005;
|
||||
|
||||
/* ========== 2000–2999 下注 / 注单(PRD 保留,业务未实现时亦可提前登记) ========== */
|
||||
|
||||
/** PRD:当期已封盘 */
|
||||
case DrawClosed = 2001;
|
||||
|
||||
/** PRD:玩法已关闭 */
|
||||
case PlayModeClosed = 2002;
|
||||
|
||||
/** PRD:下注语境余额不足(可与 1001 同语义) */
|
||||
case BetInsufficientBalance = 2003;
|
||||
|
||||
/* ========== 8000–8999 玩家 SSO / Bearer 鉴权 ========== */
|
||||
|
||||
/** 无 Bearer / 格式错误 / token 为空 */
|
||||
case PlayerAuthorizationInvalid = 8001;
|
||||
|
||||
/** JWT 无效或过期、dev: 格式错误、缺少站点或玩家标识等 */
|
||||
case PlayerTokenInvalid = 8002;
|
||||
|
||||
/** 库中无对应玩家(未建档) */
|
||||
case PlayerNotRegistered = 8003;
|
||||
|
||||
/** 未配置 `MAIN_SITE_SSO_JWT_SECRET`(通常 HTTP 503) */
|
||||
case PlayerSsoSecretNotConfigured = 8004;
|
||||
|
||||
/* ========== 8100–8199 管理端 API ========== */
|
||||
|
||||
/** 未登录或 Token 无效 */
|
||||
case AdminUnauthenticated = 8110;
|
||||
|
||||
/** 管理端登录:验证码错误或过期 */
|
||||
/** 登录:验证码错误或过期 */
|
||||
case AdminCaptchaInvalid = 8111;
|
||||
|
||||
/** 管理端登录:账号或密码不匹配(对外统一措辞) */
|
||||
/** 登录:账号或密码不匹配(对外统一措辞) */
|
||||
case AdminCredentialsInvalid = 8112;
|
||||
|
||||
/** 管理端登录:账号已禁用 */
|
||||
/** 登录:账号已禁用 */
|
||||
case AdminAccountDisabled = 8113;
|
||||
|
||||
/** 表单 / Query 校验失败(见 ValidationException → 422) */
|
||||
/* ========== 9000–9999 系统 / 框架 ========== */
|
||||
|
||||
/** 表单或 Query 校验失败(ValidationException → 422) */
|
||||
case ValidationFailed = 9001;
|
||||
|
||||
/** 资源或路由不存在 */
|
||||
/** 模型或路由不存在 */
|
||||
case NotFound = 9004;
|
||||
|
||||
/** `abort(4xx)` 等客户端类 Http 异常归类 */
|
||||
case ClientHttpError = 9010;
|
||||
|
||||
/** 请求过于频繁 */
|
||||
case TooManyRequests = 9031;
|
||||
|
||||
/** `abort(4xx)` 等客户端类 Http 异常(HTTP 状态码见响应头;本码作业务归类) */
|
||||
case ClientHttpError = 9010;
|
||||
|
||||
/** 未分类服务端异常(生产环境不向客户端暴露细节) */
|
||||
/** 未分类服务端异常 */
|
||||
case InternalError = 9999;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user