CallbackStatus.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Module\Transfer\Enums;
  3. use UCore\Enum\EnumCore;
  4. use UCore\Enum\EnumExpression;
  5. use UCore\Enum\EnumToInt;
  6. /**
  7. * 回调状态枚举
  8. */
  9. enum CallbackStatus: int
  10. {
  11. use EnumToInt, EnumCore, EnumExpression;
  12. /**
  13. * 待发送 - 等待发送回调
  14. */
  15. case PENDING = 0;
  16. /**
  17. * 已发送 - 回调已发送
  18. */
  19. case SENT = 1;
  20. /**
  21. * 成功 - 回调成功
  22. */
  23. case SUCCESS = 2;
  24. /**
  25. * 失败 - 回调失败
  26. */
  27. case FAILED = -1;
  28. /**
  29. * 获取状态描述
  30. */
  31. public function getDescription(): string
  32. {
  33. return match ($this) {
  34. self::PENDING => '待发送',
  35. self::SENT => '已发送',
  36. self::SUCCESS => '成功',
  37. self::FAILED => '失败',
  38. };
  39. }
  40. /**
  41. * 获取状态颜色
  42. */
  43. public function getColor(): string
  44. {
  45. return match ($this) {
  46. self::PENDING => 'info',
  47. self::SENT => 'warning',
  48. self::SUCCESS => 'success',
  49. self::FAILED => 'danger',
  50. };
  51. }
  52. /**
  53. * 判断是否需要重试
  54. */
  55. public function needRetry(): bool
  56. {
  57. return $this === self::FAILED;
  58. }
  59. }