MexConfigGroup.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Module\Mex\Enums;
  3. /**
  4. * Mex配置分组枚举
  5. */
  6. enum MexConfigGroup: string
  7. {
  8. case SYSTEM = 'system'; // 系统配置
  9. case TRADING = 'trading'; // 交易配置
  10. case MATCHING = 'matching'; // 撮合配置
  11. case WAREHOUSE = 'warehouse'; // 仓库配置
  12. case SECURITY = 'security'; // 安全配置
  13. case PERFORMANCE = 'performance'; // 性能配置
  14. case NOTIFICATION = 'notification'; // 通知配置
  15. case ADMIN = 'admin'; // 管理员配置
  16. case MARKET = 'market'; // 市场配置
  17. case PRICING = 'pricing'; // 定价配置
  18. /**
  19. * 获取分组标签
  20. */
  21. public function getLabel(): string
  22. {
  23. return match ($this) {
  24. self::SYSTEM => '系统配置',
  25. self::TRADING => '交易配置',
  26. self::MATCHING => '撮合配置',
  27. self::WAREHOUSE => '仓库配置',
  28. self::SECURITY => '安全配置',
  29. self::PERFORMANCE => '性能配置',
  30. self::NOTIFICATION => '通知配置',
  31. self::ADMIN => '管理员配置',
  32. self::MARKET => '市场配置',
  33. self::PRICING => '定价配置',
  34. };
  35. }
  36. /**
  37. * 获取分组描述
  38. */
  39. public function getDescription(): string
  40. {
  41. return match ($this) {
  42. self::SYSTEM => '系统基础功能配置',
  43. self::TRADING => '交易相关功能配置',
  44. self::MATCHING => '订单撮合相关配置',
  45. self::WAREHOUSE => '仓库管理相关配置',
  46. self::SECURITY => '安全防护相关配置',
  47. self::PERFORMANCE => '性能优化相关配置',
  48. self::NOTIFICATION => '通知推送相关配置',
  49. self::ADMIN => '管理员操作相关配置',
  50. self::MARKET => '市场调控相关配置',
  51. self::PRICING => '价格策略相关配置',
  52. };
  53. }
  54. /**
  55. * 获取所有分组选项
  56. */
  57. public static function getOptions(): array
  58. {
  59. return [
  60. self::SYSTEM->value => self::SYSTEM->getLabel(),
  61. self::TRADING->value => self::TRADING->getLabel(),
  62. self::MATCHING->value => self::MATCHING->getLabel(),
  63. self::WAREHOUSE->value => self::WAREHOUSE->getLabel(),
  64. self::SECURITY->value => self::SECURITY->getLabel(),
  65. self::PERFORMANCE->value => self::PERFORMANCE->getLabel(),
  66. self::NOTIFICATION->value => self::NOTIFICATION->getLabel(),
  67. self::ADMIN->value => self::ADMIN->getLabel(),
  68. self::MARKET->value => self::MARKET->getLabel(),
  69. self::PRICING->value => self::PRICING->getLabel(),
  70. ];
  71. }
  72. /**
  73. * 获取分组的排序权重
  74. */
  75. public function getSortOrder(): int
  76. {
  77. return match ($this) {
  78. self::SYSTEM => 1,
  79. self::TRADING => 2,
  80. self::MATCHING => 3,
  81. self::WAREHOUSE => 4,
  82. self::SECURITY => 5,
  83. self::PERFORMANCE => 6,
  84. self::NOTIFICATION => 7,
  85. self::ADMIN => 8,
  86. self::MARKET => 9,
  87. self::PRICING => 10,
  88. };
  89. }
  90. }