140 lines
4.2 KiB
PHP
140 lines
4.2 KiB
PHP
<?php
|
||
|
||
namespace App\Lottery;
|
||
|
||
/**
|
||
* HTTP JSON 业务码 `code`(与 `ApiResponse`、docs/04 §10 对齐)。
|
||
*
|
||
* 区间约定:0 成功;1000–1999 钱包;2000–2999 下注;8000–8999 SSO/权限;9000–9999 系统。
|
||
* 新增错误时在此登记,业务代码引用本枚举,勿散落魔法数字。
|
||
*/
|
||
enum ErrorCode: int
|
||
{
|
||
/* ========== 成功 ========== */
|
||
|
||
/** 业务成功(与 `ApiResponse::success` 默认一致) */
|
||
case Success = 0;
|
||
|
||
/* ========== 1000–1999 钱包 / 转账 ========== */
|
||
|
||
/** PRD:余额不足 */
|
||
case WalletInsufficientBalance = 1001;
|
||
|
||
/** PRD:处理中(转账) */
|
||
case WalletTransferPending = 1002;
|
||
|
||
/** PRD:金额超出限制 */
|
||
case WalletAmountExceedsLimit = 1003;
|
||
|
||
/** 后台关闭玩家转入(lottery_settings.wallet.transfer_in_enabled=false) */
|
||
case WalletTransferInDisabled = 1004;
|
||
|
||
/**
|
||
* PRD:钱包查询等场景下请求参数无效;当前用于 `currency` 非法(与 1003 语义区分)。
|
||
*/
|
||
case WalletInvalidCurrency = 1005;
|
||
|
||
/** 后台关闭玩家转出 */
|
||
case WalletTransferOutDisabled = 1006;
|
||
|
||
/** 彩票钱包已冻结,不可划转 */
|
||
case WalletLotteryFrozen = 1007;
|
||
|
||
/** 金额非法:须为正整数最小货币单位 */
|
||
case WalletInvalidAmount = 1008;
|
||
|
||
/** 主站钱包接口拒绝或不可用(扣款/加款失败) */
|
||
case WalletExternalRejected = 1009;
|
||
|
||
/** 幂等键与已有订单冲突(金额/币种/方向不一致) */
|
||
case WalletIdempotentConflict = 1010;
|
||
|
||
/* ========== 2000–2999 下注 / 注单(PRD 保留,业务未实现时亦可提前登记) ========== */
|
||
|
||
/** PRD:当期已封盘 */
|
||
case DrawClosed = 2001;
|
||
|
||
/** PRD:玩法已关闭 */
|
||
case PlayModeClosed = 2002;
|
||
|
||
/** PRD:下注语境余额不足(可与 1001 同语义) */
|
||
case BetInsufficientBalance = 2003;
|
||
|
||
/** 下注号码格式或长度不合法 */
|
||
case BetInvalidNumber = 2004;
|
||
|
||
/** 下注玩法不支持或参数缺失 */
|
||
case BetInvalidPlayInput = 2005;
|
||
|
||
/** 当前期号不存在或不是可下注期号 */
|
||
case BetInvalidDraw = 2006;
|
||
|
||
/** 当前玩法不存在或暂不支持下注 */
|
||
case BetPlayUnsupported = 2007;
|
||
|
||
/**
|
||
* 预览后玩法/赔率/封顶等配置版本已切换,需重新预览再提交。
|
||
*/
|
||
case BetConfigStale = 2008;
|
||
|
||
/** 风险池额度不足,号码已售罄 */
|
||
case RiskPoolSoldOut = 4001;
|
||
|
||
/** 配置版本不是草稿,无法整表替换 items 或发布 */
|
||
case ConfigVersionNotDraft = 2101;
|
||
|
||
/** items 中存在未知 play_code(未在 play_types 登记) */
|
||
case ConfigUnknownPlayCode = 2102;
|
||
|
||
/** 赔率 / 目录币种未启用或不可下注 */
|
||
case ConfigCurrencyInvalid = 2103;
|
||
|
||
/* ========== 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;
|
||
|
||
/** 账号已冻结或禁止登录(status ≠ active) */
|
||
case PlayerAccountSuspended = 8005;
|
||
|
||
/* ========== 8100–8199 管理端 API ========== */
|
||
|
||
/** 未登录或 Token 无效 */
|
||
case AdminUnauthenticated = 8110;
|
||
|
||
/** 登录:验证码错误或过期 */
|
||
case AdminCaptchaInvalid = 8111;
|
||
|
||
/** 登录:账号或密码不匹配(对外统一措辞) */
|
||
case AdminCredentialsInvalid = 8112;
|
||
|
||
/** 登录:账号已禁用 */
|
||
case AdminAccountDisabled = 8113;
|
||
|
||
/* ========== 9000–9999 系统 / 框架 ========== */
|
||
|
||
/** 表单或 Query 校验失败(ValidationException → 422) */
|
||
case ValidationFailed = 9001;
|
||
|
||
/** 模型或路由不存在 */
|
||
case NotFound = 9004;
|
||
|
||
/** `abort(4xx)` 等客户端类 Http 异常归类 */
|
||
case ClientHttpError = 9010;
|
||
|
||
/** 请求过于频繁 */
|
||
case TooManyRequests = 9031;
|
||
|
||
/** 未分类服务端异常 */
|
||
case InternalError = 9999;
|
||
}
|