Refund.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace app\shop\controller\order;
  3. use app\shop\controller\Controller;
  4. use app\shop\model\order\Order as OrderModel;
  5. use app\shop\model\order\OrderRefund as OrderRefundModel;
  6. use app\shop\model\settings\ReturnAddress as ReturnAddressModel;
  7. use app\shop\model\settings\Express as ExpressModel;
  8. /**
  9. * 售后管理
  10. */
  11. class Refund extends Controller
  12. {
  13. /**
  14. * 售后列表
  15. */
  16. public function index()
  17. {
  18. $model = new OrderRefundModel;
  19. $params = $this->postData();
  20. //列表数据
  21. $list = $model->getList($params);
  22. //重要数字
  23. $num_arr = $model->groupCount($params);
  24. $arr = [];
  25. foreach ($num_arr as $key => $val) {
  26. $k = $val['status']['value'];
  27. $arr[$k] = $val;
  28. }
  29. return $this->renderSuccess('', compact('list', 'arr'));
  30. }
  31. /**
  32. * 售后单详情
  33. */
  34. public function detail($order_refund_id)
  35. {
  36. // 售后单详情
  37. $detail = OrderRefundModel::detail($order_refund_id);
  38. if (isset($detail['send_time']) && $detail['send_time'] > 0) {
  39. $detail['send_time'] = date('Y-m-d H:i:s', $detail['send_time']);
  40. }
  41. if (isset($detail['deliver_time']) && $detail['deliver_time'] > 0) {
  42. $detail['deliver_time'] = date('Y-m-d H:i:s', $detail['deliver_time']);
  43. }
  44. // 订单详情
  45. $order = OrderModel::detail($detail['order_id']);
  46. // 退货地址
  47. $address = (new ReturnAddressModel)->getAll();
  48. // 物流公司列表
  49. $model = new ExpressModel();
  50. $expressList = $model->getAll();
  51. return $this->renderSuccess('', compact('detail', 'order', 'address', 'expressList'));
  52. }
  53. /**
  54. * 商家审核
  55. */
  56. public function audit($order_refund_id)
  57. {
  58. $model = OrderRefundModel::detail($order_refund_id);
  59. if ($model->audit($this->postData())) {
  60. return $this->renderSuccess('操作成功');
  61. }
  62. return $this->renderError($model->getError() ?: '操作失败');
  63. }
  64. /**
  65. * 确认收货并退款
  66. */
  67. public function receipt($order_refund_id)
  68. {
  69. if (!$this->request->isPost()) {
  70. return false;
  71. }
  72. $model = OrderRefundModel::detail($order_refund_id);
  73. if ($model->receipt($this->postData())) {
  74. return $this->renderSuccess('操作成功');
  75. }
  76. return $this->renderError($model->getError() ?: '操作失败');
  77. }
  78. }