| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <?php
- namespace App\Module\UrsPromotion\Enums;
- /**
- * URS达人等级枚举
- *
- * 定义URS推广系统中的达人等级
- */
- enum UrsTalentLevel: int
- {
- /**
- * 非达人 - 默认等级
- */
- case NONE = 0;
- /**
- * 初级达人
- */
- case JUNIOR = 1;
- /**
- * 中级达人
- */
- case INTERMEDIATE = 2;
- /**
- * 高级达人
- */
- case SENIOR = 3;
- /**
- * 资深达人
- */
- case EXPERT = 4;
- /**
- * 顶级达人
- */
- case MASTER = 5;
- /**
- * 获取等级名称
- */
- public function getName(): string
- {
- return match($this) {
- self::NONE => '青铜',
- 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() : '未知等级';
- }
- }
|