Order.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php namespace Place_interface\Api;
  2. use Dever;
  3. use Place;
  4. use Place_interface\Lib\Core;
  5. use Place_act\Lib\Core as Act;
  6. class Order extends Core
  7. {
  8. protected $login = true;
  9. protected $entry = true;
  10. # 获取订单列表
  11. public function list()
  12. {
  13. $status = Dever::input('status');
  14. $data = Dever::load('source/order', 'place_order')->getList(Place::$uid, $status);
  15. return ['list' => $data];
  16. }
  17. # 获取订单详情
  18. public function info()
  19. {
  20. $info = $this->getInfo();
  21. $info = Dever::load('source/order', 'place_order')->getInfo($info, true);
  22. $data = ['info' => $info, 'refund_desc_type' => Dever::db('source_refund', 'place_order')->value('desc_type'), 'refund_type' => Dever::db('source_refund', 'place_order')->value('type')];
  23. if (isset($info['refund']) && $info['refund'] && $info['refund']['type'] == 1 && $info['refund']['status'] == 2) {
  24. $data['refund_delivery'] = [Dever::call("sector/delivery.getList", 1)];
  25. }
  26. return $data;
  27. }
  28. # 确认收货
  29. public function finish()
  30. {
  31. $info = $this->getInfo();
  32. Dever::load('source/order', 'place_order')->finish(1, $info);
  33. return 'ok';
  34. }
  35. # 取消订单
  36. public function cancel()
  37. {
  38. $info = $this->getInfo();
  39. Dever::load('source/order', 'place_order')->cancel($info);
  40. return 'ok';
  41. }
  42. # 再次支付
  43. public function pay()
  44. {
  45. $info = $this->getInfo();
  46. if ($info['pay_money_cash'] > 0) {
  47. $result['pay'] = Dever::load('account', 'place')->pay($info);
  48. if (isset($result['pay']['link']) && $result['pay']['link']) {
  49. return $result;
  50. }
  51. $result['order_id'] = $info['id'];
  52. $result['order_num'] = $info['order_num'];
  53. return $result;
  54. } else {
  55. Dever::error('无需支付');
  56. }
  57. }
  58. # 申请退款
  59. public function refund()
  60. {
  61. $info = $this->getInfo();
  62. /*
  63. $cash = Dever::input('cash');
  64. if (!$cash || $cash <= 0) {
  65. Dever::error('退款金额有误');
  66. }
  67. */
  68. $type = Dever::input('type');
  69. if (!$type || $type <= 0) {
  70. Dever::error('退款类型有误');
  71. }
  72. $desc_type = Dever::input('desc_type');
  73. if (!$desc_type || $desc_type <= 0) {
  74. Dever::error('退款原因有误');
  75. }
  76. $desc = Dever::input('desc');
  77. Dever::load('source/refund', 'place_order')->up([], $info, 1, Place::$uid, $type, 1, $desc_type, $desc);
  78. return 'ok';
  79. }
  80. # 申请退款发货
  81. public function refundExpress()
  82. {
  83. $info = $this->getInfo();
  84. $refund_id = Dever::input('refund_id');
  85. if (!$refund_id) {
  86. Dever::error('退款信息错误');
  87. }
  88. $delivery_id = Dever::input('delivery_id');
  89. if (!$delivery_id) {
  90. Dever::error('请选择快递公司');
  91. }
  92. $number = Dever::input('number');
  93. if (!$number) {
  94. Dever::error('请填写单号');
  95. }
  96. Dever::load('source/refund', 'place_order')->express($info, $refund_id, $delivery_id, $number);
  97. return 'ok';
  98. }
  99. # 获取订单信息
  100. private function getInfo()
  101. {
  102. $id = Dever::input('id');
  103. if (!$id) {
  104. Dever::error('订单信息有误');
  105. }
  106. $info = Dever::db('source', 'place_order')->find(['id' => $id, 'uid' => Place::$uid]);
  107. if (!$info) {
  108. Dever::error('订单信息有误');
  109. }
  110. return $info;
  111. }
  112. # 提交评价
  113. public function review_commit(){}
  114. public function review()
  115. {
  116. $info = $this->getInfo();
  117. if ($info['review_status'] != 2) {
  118. Dever::error('您现在不可以评价');
  119. }
  120. $data['pic'] = Dever::input('pic');
  121. if (!$data['pic']) {
  122. $data['pic'] = '';
  123. }
  124. $data['content'] = Dever::input('content', 'is_string', '内容');
  125. $data['rate'] = Dever::input('rate', 'is_numeric', '评分');
  126. if (!$data['rate']) {
  127. Dever::error('评分错误');
  128. }
  129. $data['rate'] = intval($data['rate']);
  130. if ($data['rate'] > 5 || $data['rate'] <= 0) {
  131. Dever::error('评分错误');
  132. }
  133. $data['open'] = Dever::input('open');
  134. if ($data['open'] == 'true') {
  135. $data['open'] = 1;
  136. } else {
  137. $data['open'] = 2;
  138. }
  139. $detail = Dever::db('source_detail', 'place_order')->select(['order_id' => $info['id']]);
  140. foreach ($detail as $v) {
  141. $act = Act::load('review', 1, $v['source_id'])->up($data, '请不要发布相同内容');
  142. }
  143. Dever::db('source', 'place_order')->update($info['id'], ['review_status' => 3]);
  144. return 'ok';
  145. }
  146. }