| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- namespace App\Module\Point\Enums;
- use UCore\Enum\EnumCore;
- use UCore\Enum\EnumToInt;
- /**
- * 外部状态枚举
- *
- * 定义积分操作的外部状态,用于标识操作的处理状态
- */
- enum EXTERNAL_STATUS: int
- {
- use EnumToInt, EnumCore;
- /**
- * 待处理
- */
- case PENDING = 0;
- /**
- * 处理中
- */
- case PROCESSING = 1;
- /**
- * 已完成
- */
- case COMPLETED = 2;
- /**
- * 已失败
- */
- case FAILED = 3;
- /**
- * 已取消
- */
- case CANCELLED = 4;
- /**
- * 获取状态名称
- *
- * @return string 状态名称
- */
- public function getStatusName(): string
- {
- return match($this) {
- self::PENDING => '待处理',
- self::PROCESSING => '处理中',
- self::COMPLETED => '已完成',
- self::FAILED => '已失败',
- self::CANCELLED => '已取消',
- };
- }
- /**
- * 获取状态描述
- *
- * @return string 状态描述
- */
- public function getDescription(): string
- {
- return match($this) {
- self::PENDING => '操作已提交,等待处理',
- self::PROCESSING => '操作正在处理中',
- self::COMPLETED => '操作已成功完成',
- self::FAILED => '操作处理失败',
- self::CANCELLED => '操作已被取消',
- };
- }
- /**
- * 判断是否为最终状态
- *
- * @return bool 是否为最终状态
- */
- public function isFinalStatus(): bool
- {
- return match($this) {
- self::COMPLETED,
- self::FAILED,
- self::CANCELLED => true,
- default => false,
- };
- }
- /**
- * 获取所有状态
- *
- * @return array 所有状态数组
- */
- public static function getAllStatuses(): array
- {
- return [
- self::PENDING->value => self::PENDING->getStatusName(),
- self::PROCESSING->value => self::PROCESSING->getStatusName(),
- self::COMPLETED->value => self::COMPLETED->getStatusName(),
- self::FAILED->value => self::FAILED->getStatusName(),
- self::CANCELLED->value => self::CANCELLED->getStatusName(),
- ];
- }
- }
|