WithdrawEnum.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. namespace app\common\Enum;
  3. /**
  4. * 提现相关枚举类
  5. */
  6. class WithdrawEnum
  7. {
  8. // 提现状态
  9. const STATUS_CANCELED = -3; // 撤销提现
  10. const STATUS_FAILED = -2; // 提现失败
  11. const STATUS_REJECTED = -1; // 已拒绝
  12. const STATUS_PENDING = 0; // 待审核
  13. const STATUS_PROCESSING = 1; // 处理中
  14. const STATUS_COMPLETED = 2; // 已处理
  15. // 提现类型
  16. const TYPE_WECHAT = 'wechat'; // 微信零钱
  17. const TYPE_ALIPAY = 'alipay'; // 支付宝账户
  18. const TYPE_BANK = 'bank'; // 银行卡
  19. // 微信转账状态
  20. const WECHAT_TRANSFER_ACCEPTED = 'ACCEPTED'; // 单据已受理,请稍等
  21. const WECHAT_TRANSFER_PROCESSING = 'PROCESSING'; // 单据处理中,请稍等
  22. const WECHAT_TRANSFER_SUCCESS = 'SUCCESS'; // 转账成功
  23. const WECHAT_TRANSFER_FAIL = 'FAIL'; // 转账失败
  24. const WECHAT_TRANSFER_CANCELING = 'CANCELING'; // 单据撤销中
  25. const WECHAT_TRANSFER_CANCELLED = 'CANCELLED'; // 单据已撤销
  26. const WECHAT_TRANSFER_WAIT_USER_CONFIRM = 'WAIT_USER_CONFIRM'; // 待收款用户确认
  27. const WECHAT_TRANSFER_TRANSFERING = 'TRANSFERING'; // 转账中
  28. const WECHAT_TRANSFER_NOT_FOUND = 'NOT_FOUND'; // 未申请微信提现
  29. /**
  30. * 获取状态列表
  31. * @return array
  32. */
  33. public static function getStatusList()
  34. {
  35. return [
  36. self::STATUS_CANCELED => '撤销提现',
  37. self::STATUS_FAILED => '提现失败',
  38. self::STATUS_REJECTED => '已拒绝',
  39. self::STATUS_PENDING => '待审核',
  40. self::STATUS_PROCESSING => '处理中',
  41. self::STATUS_COMPLETED => '已处理'
  42. ];
  43. }
  44. /**
  45. * 获取状态名称
  46. * @param int $status
  47. * @return string
  48. */
  49. public static function getStatusName($status)
  50. {
  51. $list = self::getStatusList();
  52. return isset($list[$status]) ? $list[$status] : '';
  53. }
  54. /**
  55. * 获取类型列表
  56. * @return array
  57. */
  58. public static function getTypeList()
  59. {
  60. return [
  61. // self::TYPE_WECHAT => '微信零钱',
  62. // self::TYPE_ALIPAY => '支付宝账户',
  63. self::TYPE_BANK => '银行卡'
  64. ];
  65. }
  66. /**
  67. * 获取类型名称
  68. * @param string $type
  69. * @return string
  70. */
  71. public static function getTypeName($type)
  72. {
  73. $list = self::getTypeList();
  74. return isset($list[$type]) ? $list[$type] : '';
  75. }
  76. /**
  77. * 获取微信转账状态列表
  78. * @return array
  79. */
  80. public static function getWechatTransferStateList()
  81. {
  82. return [
  83. self::WECHAT_TRANSFER_ACCEPTED => '单据已受理,请稍等',
  84. self::WECHAT_TRANSFER_PROCESSING => '单据处理中,请稍等',
  85. self::WECHAT_TRANSFER_SUCCESS => '转账成功',
  86. self::WECHAT_TRANSFER_FAIL => '转账失败',
  87. self::WECHAT_TRANSFER_CANCELING => '单据撤销中',
  88. self::WECHAT_TRANSFER_CANCELLED => '单据已撤销',
  89. self::WECHAT_TRANSFER_WAIT_USER_CONFIRM => '待收款用户确认',
  90. self::WECHAT_TRANSFER_TRANSFERING => '转账中',
  91. self::WECHAT_TRANSFER_NOT_FOUND => '未申请微信提现'
  92. ];
  93. }
  94. /**
  95. * 获取微信转账状态名称
  96. * @param string $state
  97. * @return string
  98. */
  99. public static function getWechatTransferStateName($state)
  100. {
  101. $list = self::getWechatTransferStateList();
  102. return isset($list[$state]) ? $list[$state] : $state;
  103. }
  104. /**
  105. * 获取可以安全退还佣金的微信转账状态
  106. * @return array
  107. */
  108. public static function getCanCancelStates()
  109. {
  110. return [
  111. self::WECHAT_TRANSFER_FAIL,
  112. self::WECHAT_TRANSFER_WAIT_USER_CONFIRM,
  113. self::WECHAT_TRANSFER_CANCELLED
  114. ];
  115. }
  116. /**
  117. * 获取状态样式类名 (用于label标签)
  118. * @param int $status
  119. * @return string
  120. */
  121. public static function getStatusStyle($status)
  122. {
  123. $styles = [
  124. self::STATUS_CANCELED => 'default', // 撤销提现
  125. self::STATUS_FAILED => 'danger', // 提现失败
  126. self::STATUS_REJECTED => 'danger', // 已拒绝
  127. self::STATUS_PENDING => 'info', // 待审核
  128. self::STATUS_PROCESSING => 'warning', // 处理中
  129. self::STATUS_COMPLETED => 'success' // 已处理
  130. ];
  131. return isset($styles[$status]) ? $styles[$status] : 'default';
  132. }
  133. /**
  134. * 获取状态文本样式类名 (用于文本颜色)
  135. * @param int $status
  136. * @return string
  137. */
  138. public static function getStatusTextStyle($status)
  139. {
  140. $styles = [
  141. self::STATUS_CANCELED => 'text-muted', // 撤销提现
  142. self::STATUS_FAILED => 'text-danger', // 提现失败
  143. self::STATUS_REJECTED => 'text-danger', // 已拒绝
  144. self::STATUS_PENDING => 'text-info', // 待审核
  145. self::STATUS_PROCESSING => 'text-warning', // 处理中
  146. self::STATUS_COMPLETED => 'text-success' // 已处理
  147. ];
  148. return isset($styles[$status]) ? $styles[$status] : 'text-muted';
  149. }
  150. }