Cashierorderrefund.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\store\shopapi\controller;
  13. use addon\store\model\cashier\CashierOrderRefund as CashierOrderRefundModel;
  14. class Cashierorderrefund extends BaseStoreApi
  15. {
  16. /**
  17. * 商品计算
  18. * @return false|string
  19. */
  20. public function getRefundApplyData()
  21. {
  22. $token = $this->checkToken();
  23. if ($token[ 'code' ] < 0) return $this->response($token);
  24. $order_refund_model = new CashierOrderRefundModel();
  25. $data = [
  26. 'site_id' => $this->site_id,//站点id
  27. 'member_id' => $this->params[ 'member_id' ] ?? 0,//购买会员(可有可无)
  28. 'app_module' => $this->site_type,
  29. 'store_id' => $this->store_id,
  30. 'refund_array' => empty($this->params[ 'refund_array' ]) ? [] : json_decode($this->params[ 'refund_array' ], true),// {"order_id":['order_goods_id1','order_goods_id2','order_goods_id2']}
  31. ];
  32. $res = $order_refund_model->getRefundApplyData($data);
  33. return $this->response($res);
  34. }
  35. public function refund(){
  36. $token = $this->checkToken();
  37. if ($token[ 'code' ] < 0) return $this->response($token);
  38. $order_refund_model = new CashierOrderRefundModel();
  39. $data = [
  40. 'site_id' => $this->site_id,//站点id
  41. 'member_id' => $this->params[ 'member_id' ] ?? 0,//购买会员(可有可无)
  42. 'app_module' => $this->site_type,
  43. 'store_id' => $this->store_id,
  44. 'refund_transfer_type' => $this->params[ 'refund_transfer_type' ] ?? '',
  45. 'refund_array' => empty($this->params[ 'refund_array' ]) ? [] : json_decode($this->params[ 'refund_array' ], true),// {"order_id":['order_goods_id1':{'refund_transfer_money':10}]},
  46. 'refund_reason' => $this->params[ 'refund_reason' ] ?? '',
  47. 'refund_remark' => $this->params[ 'refund_remark' ] ?? '',
  48. 'operator' => $this->user_info,//操作人员,
  49. ];
  50. $res = $order_refund_model->refund($data);
  51. return $this->response($res);
  52. }
  53. public function lists()
  54. {
  55. $page_index = $this->params[ 'page' ] ?? 1;
  56. $page_size = $this->params[ 'page_size' ] ?? PAGE_LIST_ROWS;
  57. $search_text = $this->params['search_text'] ?? '';
  58. $condition = [
  59. [ 'r.site_id', '=', $this->site_id ],
  60. [ 'r.store_id', '=', $this->store_id ]
  61. ];
  62. $join = [
  63. ['o2o_cashier_order o', 'o.order_id = r.order_id', 'left'],
  64. ['member m', 'm.member_id = r.member_id', 'left']
  65. ];
  66. if (!empty($search_text)) $condition[] = ['r.refund_no|o.order_no|m.nickname|m.mobile', 'like', '%'.$search_text.'%'];
  67. $field = 'r.refund_id,r.refund_no,r.member_id,r.refund_status_name,r.refund_money,m.nickname';
  68. $data = (new CashierOrderRefundModel())->getRefundPageList($condition, $field, 'r.create_time desc', $page_index, $page_size, 'r', $join);
  69. return $this->response($data);
  70. }
  71. public function detail()
  72. {
  73. $refund_id = $this->params['refund_id'] ?? 0;
  74. $model = new CashierOrderRefundModel();
  75. $condition = [
  76. [ 'r.site_id', '=', $this->site_id ],
  77. [ 'r.store_id', '=', $this->store_id ],
  78. [ 'r.refund_id', '=', $refund_id ]
  79. ];
  80. $join = [
  81. ['member m', 'm.member_id = r.member_id', 'left']
  82. ];
  83. $field = 'r.*,m.nickname';
  84. $data = $model->getRefundInfo($condition, $field, 'r', $join);
  85. if (!empty($data['data'])) {
  86. $data['data']['item_list'] = $model->getRefundGoodsList([ [ 'refund_id', '=', $refund_id ] ])['data'];
  87. }
  88. return $this->response($data);
  89. }
  90. /**
  91. * 查询余额可退
  92. * @return false|string
  93. */
  94. public function getMemberBalanceRefundData(){
  95. $token = $this->checkToken();
  96. if ($token[ 'code' ] < 0) return $this->response($token);
  97. $order_refund_model = new CashierOrderRefundModel();
  98. $data = [
  99. 'site_id' => $this->site_id,//站点id
  100. 'member_id' => $this->params[ 'member_id' ] ?? 0,//购买会员(可有可无)
  101. 'app_module' => $this->site_type,
  102. 'store_id' => $this->store_id,
  103. ];
  104. $res = $order_refund_model->getMemberBalanceRefundData($data);
  105. return $this->response($res);
  106. }
  107. /**
  108. * 余额退款(清理)
  109. * @return false|string
  110. */
  111. public function memberRefundBalance(){
  112. $token = $this->checkToken();
  113. if ($token[ 'code' ] < 0) return $this->response($token);
  114. $order_refund_model = new CashierOrderRefundModel();
  115. $data = [
  116. 'site_id' => $this->site_id,//站点id
  117. 'member_id' => $this->params[ 'member_id' ] ?? 0,//购买会员(可有可无)
  118. 'app_module' => $this->site_type,
  119. 'store_id' => $this->store_id,
  120. 'refund_balance' => $this->params[ 'refund_balance' ] ?? 0,
  121. 'refund_transfer_type' => $this->params[ 'refund_transfer_type' ] ?? '',
  122. 'refund_reason' => $this->params[ 'refund_reason' ] ?? '',
  123. 'refund_remark' => $this->params[ 'refund_remark' ] ?? '',
  124. 'operator' => $this->user_info,//操作人员,
  125. ];
  126. $res = $order_refund_model->memberRefundBalance($data);
  127. return $this->response($res);
  128. }
  129. }