OrderHelper.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. namespace addons\TinyShop\common\helpers;
  3. use common\helpers\Html;
  4. use addons\TinyShop\common\enums\RefundStatusEnum;
  5. use addons\TinyShop\common\enums\RefundTypeEnum;
  6. /**
  7. * Class OrderHelper
  8. * @package addons\TinyShop\common\helpers
  9. * @author jianyan74 <751393839@qq.com>
  10. */
  11. class OrderHelper
  12. {
  13. /**
  14. * 退款操作 - 按钮
  15. *
  16. * @param $id
  17. * @param $status
  18. * @return string
  19. */
  20. public static function refundOperation($id, $status, $refundType, $urlPrefix = 'after-sale/')
  21. {
  22. $data = [
  23. RefundStatusEnum::APPLY => [
  24. 'name' => '买家' . RefundTypeEnum::getValue($refundType) . '申请',
  25. 'desc' => '发起了退款申请,等待卖家处理',
  26. 'operation' => [
  27. [
  28. 'name' => '同意',
  29. 'class' => 'green m-r orderProductAgree'
  30. ],
  31. [
  32. 'name' => '拒绝',
  33. 'class' => 'red orderProductRefuse'
  34. ]
  35. ]
  36. ],
  37. RefundStatusEnum::SALES_RETURN => [
  38. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::SALES_RETURN),
  39. 'desc' => '卖家已同意退款申请,等待买家退货',
  40. 'operation' => []
  41. ],
  42. RefundStatusEnum::AFFIRM_SALES_RETURN => [
  43. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::AFFIRM_SALES_RETURN),
  44. 'desc' => '买家已退货,等待卖家确认收货',
  45. 'operation' => [
  46. [
  47. 'name' => '确认收货',
  48. 'class' => 'green m-r orderProductTakeDelivery'
  49. ]
  50. ]
  51. ],
  52. RefundStatusEnum::AFFIRM_SHIPMENTS => [
  53. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::AFFIRM_SHIPMENTS),
  54. 'desc' => '等待卖家发货',
  55. 'operation' => [
  56. [
  57. 'name' => '发货',
  58. 'class' => 'green m-r orderProductDelivery'
  59. ]
  60. ]
  61. ],
  62. RefundStatusEnum::SHIPMENTS => [
  63. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::SHIPMENTS),
  64. 'desc' => '等待买家收到商品',
  65. 'operation' => []
  66. ],
  67. RefundStatusEnum::MEMBER_AFFIRM => [
  68. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::MEMBER_AFFIRM),
  69. 'desc' => '换货完成',
  70. 'operation' => []
  71. ],
  72. RefundStatusEnum::AFFIRM_RETURN_MONEY => [
  73. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::AFFIRM_RETURN_MONEY),
  74. 'desc' => '卖家同意退款',
  75. 'operation' => [
  76. [
  77. 'name' => '确认退款',
  78. 'class' => 'green m-r'
  79. ]
  80. ]
  81. ],
  82. RefundStatusEnum::CONSENT => [
  83. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::CONSENT),
  84. 'desc' => '卖家退款给买家,本次维权结束',
  85. 'operation' => []
  86. ],
  87. RefundStatusEnum::NO_PASS_ALWAYS => [
  88. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::NO_PASS_ALWAYS),
  89. 'desc' => '卖家拒绝本次退款,本次维权结束',
  90. 'operation' => []
  91. ],
  92. RefundStatusEnum::CANCEL => [
  93. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::CANCEL),
  94. 'desc' => '主动撤销退款,退款关闭',
  95. 'operation' => []
  96. ],
  97. RefundStatusEnum::NO_PASS => [
  98. 'name' => RefundStatusEnum::getValue(RefundStatusEnum::NO_PASS),
  99. 'desc' => '拒绝了本次退款申请,等待买家修改',
  100. 'operation' => []
  101. ]
  102. ];
  103. $html = '';
  104. if (isset($data[$status])) {
  105. $input = $data[$status];
  106. $html .= '<div style="text-align: center" class="p-xxs">';
  107. $html .= "<small id='$id'>";
  108. $html .= Html::a($input['name'], [$urlPrefix . 'detail', 'id' => $id], [
  109. 'class' => 'cyan'
  110. ]);
  111. $html .= "</br>";
  112. // 其他按钮
  113. foreach ($input['operation'] as $item) {
  114. // 确认退款
  115. if ($status == RefundStatusEnum::AFFIRM_RETURN_MONEY) {
  116. $html .= Html::linkButton([$urlPrefix . 'affirm-return', 'id' => $id], $item['name'], [
  117. 'class' => $item['class'],
  118. 'data-toggle' => 'modal',
  119. 'data-target' => '#ajaxModal',
  120. ]);
  121. } elseif ($status == RefundStatusEnum::AFFIRM_SHIPMENTS) {
  122. $html .= Html::linkButton([$urlPrefix . 'deliver', 'id' => $id], $item['name'], [
  123. 'class' => $item['class'],
  124. 'data-toggle' => 'modal',
  125. 'data-target' => '#ajaxModal',
  126. ]);
  127. } else {
  128. $html .= "<a href='javascript:void (0);' class='{$item['class']}'>{$item['name']}</a>";
  129. }
  130. }
  131. $html .= '</small>';
  132. $html .= '</div>';
  133. }
  134. return $html;
  135. }
  136. }
粤ICP备19079148号