OrderLog.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\order;
  11. use app\model\member\Member;
  12. use app\model\system\User;
  13. /**
  14. * 普通(快递)订单
  15. *
  16. * @author Administrator
  17. *
  18. */
  19. class OrderLog extends OrderCommon
  20. {
  21. public function addLog($params)
  22. {
  23. $action = $params[ 'action' ];//操作类型
  24. $is_auto = $params[ 'is_auto' ] ?? false;//是否是自动任务,如果是自动任务的话调用的时候就需要传递此值
  25. $site_id = $params[ 'site_id' ];//站点id
  26. $order_id = $params[ 'order_id' ];//订单id
  27. $member_id = $params[ 'member_id' ] ?? 0;//操作会员id
  28. $member_model = new Member();
  29. $scene = $params[ 'scene' ] ?? '';//场景值 shop 店铺管理员 store 门店管理员 member 会员操作 cron 自动任务
  30. if ($is_auto) {
  31. $actioner_mode = '3';
  32. $actioner_id = 0;
  33. $actioner_name = '系统任务';
  34. } else {
  35. //todo 散客日志
  36. $actioner_mode = 1;
  37. $actioner_id = 0;
  38. $actioner_name = '';
  39. if ($member_id > 0) {
  40. $member_condition = array (
  41. [ 'member_id', '=', $member_id ],
  42. );
  43. $member_info = $member_model->getMemberInfo($member_condition, 'nickname,headimg')[ 'data' ] ?? [];
  44. $actioner_mode = '1';
  45. $actioner_id = $member_id;
  46. $actioner_name = $member_info[ 'nickname' ] ?? '';
  47. }
  48. $operater_array = $params[ 'operater' ] ?? [];//操作管理员id
  49. if (!empty($operater_array)) {
  50. $user_model = new User();
  51. $operater = $operater_array[ 'uid' ];
  52. $user_condition = array (
  53. [ 'uid', '=', $operater ],
  54. [ 'site_id', '=', $site_id ]
  55. );
  56. $user_info = $user_model->getUserInfo($user_condition, 'username')[ 'data' ] ?? [];
  57. $actioner_mode = 2;
  58. $actioner_id = $operater;
  59. $actioner_name = $user_info[ 'username' ];
  60. }
  61. }
  62. $order_info = $this->getOrderDetail($order_id)[ 'data' ] ?? [];
  63. if (empty($order_info))
  64. return $this->error([], '订单不存在!');
  65. // $balance_money = $order_info['balance_money'];//余额
  66. // $coupon_money = $order_info['coupon_money'];//优惠券金额
  67. // $point_money = $order_info['point_money'];//积分抵扣金额
  68. // $hongbao_money = $order_info['hongbao_money'];//红包金额
  69. $buyer_id = $order_info[ 'member_id' ];//买家
  70. if (!empty($member_info) && $buyer_id == $member_id) {
  71. $buyer_name = $member_info[ 'nickname' ];
  72. } else {
  73. $buyer_member_condition = array (
  74. [ 'member_id', '=', $member_id ],
  75. );
  76. $buyer_member_info = $member_model->getMemberInfo($buyer_member_condition, 'nickname,headimg')[ 'data' ] ?? [];
  77. $buyer_name = $buyer_member_info[ 'nickname' ] ?? '';
  78. }
  79. // $shipping_money = $order_info['delivery_money'];//运费
  80. // $order_money = $order_info['order_money'];//订单金额
  81. // $pay_money = $order_info['pay_money'];//支付金额
  82. // $adjust_money = $order_info['adjust_money'];//调整金额
  83. $close_time = time_to_date($order_info[ 'close_time' ]);
  84. // $trade_time = time_to_date($order_info['trade_time']);
  85. // $send_time = time_to_date($order_info['send_time']);
  86. $complete_time = time_to_date($order_info[ 'finish_time' ]);
  87. // $pay_type_name = $order_info['pay_type_name'];
  88. $remark = $order_info[ 'remark' ];
  89. // $trade_type = $order_info['trade_type'];
  90. $close_cause = $order_info[ 'close_cause' ] ?? '';
  91. $order_scene = $order_info[ 'order_scene' ];
  92. // $full_address = $order_info['full_address'];//详细地址
  93. $order_info[ 'action' ] = $action;
  94. $order_log = event('OrderLog', $order_info, true);
  95. if ($buyer_id > 0) {
  96. if (!empty($buyer_name)) {
  97. $buyer_name = '买家' . '【' . $buyer_name . '】';
  98. } else {
  99. $buyer_name = '买家';
  100. }
  101. } else {
  102. $buyer_name = '散客';
  103. }
  104. if (empty($order_log)) {
  105. switch ( $action ) {
  106. case 'create'://订单创建
  107. $content = $buyer_name . '下单了';
  108. break;
  109. case 'close'://订单关闭
  110. $content = "订单被关闭";
  111. if (!empty($close_cause)) {
  112. $content .= '关闭原因';
  113. }
  114. break;
  115. // case 'editaddress'://修改地址
  116. // $content = "订单修改收货地址,新收货地址为:{$full_address}";
  117. // break;
  118. // case 'adjust'://订单调价
  119. // $content = "卖家操作订单调价,调整金额:{$adjust_money},当前订单总额为:{$order_money}";
  120. // break;
  121. case 'pay'://订单支付
  122. if (isset($params[ 'operater' ]) && !empty($params[ 'operater' ])) {
  123. $content = '收银员【' . $actioner_name . '】收款,订单支付成功';
  124. } else {
  125. $content = $buyer_name . '已支付订单';
  126. }
  127. break;
  128. // case 'delivery'://发货
  129. // $content = '卖家已发货,发货时间:' . $send_time;
  130. // break;
  131. // case 'receive'://收货
  132. // $content = '买家已收货,收货时间:' . $trade_time;
  133. // break;
  134. // case 'local'://配送
  135. // $content = '订单已经开始配送';
  136. // break;
  137. // case 'takelocal'://接收配送
  138. // $content = '买家已接收配送';
  139. // break;
  140. // case 'store'://提货
  141. // $content = '已提货';
  142. // break;
  143. case 'complete'://完成
  144. $content = '订单已完成';
  145. break;
  146. case 'remark'://卖家备注
  147. $content = '卖家备注:' . $remark;
  148. break;
  149. case 'refund':
  150. $content = $params[ 'content' ] ?? '';
  151. break;
  152. }
  153. } else {
  154. if ($order_log[ 'code' ] < 0) {
  155. return $order_log;
  156. }
  157. $content = $order_log[ 'data' ][ 'content' ];
  158. }
  159. $order_status_name = $order_info[ 'order_status_name' ];
  160. $order_status = $order_info[ 'order_status' ];
  161. $data = [
  162. 'order_id' => $order_id,
  163. 'order_status' => $order_status,
  164. 'order_status_name' => $order_status_name,
  165. 'action_way' => $actioner_mode,
  166. 'uid' => $actioner_id,
  167. 'nick_name' => $actioner_name,
  168. 'action_time' => time(),
  169. 'action' => $content,
  170. ];
  171. $res = model('order_log')->add($data);
  172. return $this->success();
  173. }
  174. }