'青铜', self::JUNIOR => '白银', self::INTERMEDIATE => '黄金', self::SENIOR => '钻石', self::EXPERT => '至尊', self::MASTER => '合伙人', }; } /** * 获取等级描述 */ public function getDescription(): string { return match($this) { self::NONE => '普通用户,无达人等级', self::JUNIOR => '初级达人,享有基础推广收益', self::INTERMEDIATE => '中级达人,享有更高推广收益', self::SENIOR => '高级达人,享有优质推广收益', self::EXPERT => '资深达人,享有专业推广收益', self::MASTER => '顶级达人,享有最高推广收益', }; } /** * 获取所有等级 */ public static function getAllLevels(): array { return [ self::NONE->value => self::NONE->getName(), self::JUNIOR->value => self::JUNIOR->getName(), self::INTERMEDIATE->value => self::INTERMEDIATE->getName(), self::SENIOR->value => self::SENIOR->getName(), self::EXPERT->value => self::EXPERT->getName(), self::MASTER->value => self::MASTER->getName(), ]; } /** * 检查是否为有效等级 */ public static function isValidLevel(int $level): bool { return in_array($level, [ self::NONE->value, self::JUNIOR->value, self::INTERMEDIATE->value, self::SENIOR->value, self::EXPERT->value, self::MASTER->value, ]); } /** * 获取最高等级 */ public static function getMaxLevel(): int { return self::MASTER->value; } /** * 检查是否为达人等级(非0级) */ public function isTalent(): bool { return $this !== self::NONE; } /** * 从整数创建枚举实例 */ public static function fromInt(int $level): ?self { return match($level) { 0 => self::NONE, 1 => self::JUNIOR, 2 => self::INTERMEDIATE, 3 => self::SENIOR, 4 => self::EXPERT, 5 => self::MASTER, default => null, }; } /** * 根据等级值获取等级名称 */ public static function getLevelName(int $level): string { $enum = self::fromInt($level); return $enum ? $enum->getName() : '未知等级'; } }