Order.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\manjian\model;
  11. use addon\coupon\model\Coupon;
  12. use app\model\BaseModel;
  13. use app\model\member\MemberAccount;
  14. use app\model\order\Order as BaseOrder;
  15. class Order extends BaseModel
  16. {
  17. /**
  18. * 订单完成发放满减送所送积分
  19. * @param $order_id
  20. */
  21. public function orderComplete($order_id)
  22. {
  23. $order_info = model('order')->getInfo([ [ 'order_id', '=', $order_id ], [ 'order_status', '=', BaseOrder::ORDER_COMPLETE ] ], 'order_id,member_id');
  24. if (!empty($order_info)) {
  25. $member_id = $order_info[ 'member_id' ];
  26. //存在散客的情况
  27. if ($member_id > 0) {
  28. $mansong_record = model('promotion_mansong_record')->getList([ [ 'order_id', '=', $order_id ], [ 'status', '=', 0 ] ]);
  29. if (!empty($mansong_record)) {
  30. model('promotion_mansong_record')->startTrans();
  31. foreach ($mansong_record as $item) {
  32. try {
  33. // 发放积分
  34. if (!empty($item[ 'point' ])) {
  35. $member_account = new Memberaccount();
  36. $member_account->addMemberAccount($item[ 'site_id' ], $item[ 'member_id' ], 'point', $item[ 'point' ], 'manjian', $item[ 'manjian_id' ], "活动奖励发放");
  37. }
  38. // 发放优惠券
  39. if (!empty($item[ 'coupon' ])) {
  40. $coupon = new Coupon();
  41. $coupon_list = explode(',', $item[ 'coupon' ]);
  42. $coupon_num = explode(',', $item[ 'coupon_num' ]);
  43. $coupon_data = [];
  44. foreach ($coupon_list as $k => $cpupon_item) {
  45. array_push($coupon_data, [
  46. 'coupon_type_id' => $cpupon_item,
  47. 'num' => $coupon_num[ $k ] ?? 1
  48. ]);
  49. }
  50. $coupon->giveCoupon($coupon_data, $item[ 'site_id' ], $item[ 'member_id' ], 6);
  51. }
  52. // 变更发放状态
  53. model('promotion_mansong_record')->update([ 'status' => 1 ], [ [ 'id', '=', $item[ 'id' ] ] ]);
  54. model('promotion_mansong_record')->commit();
  55. } catch (\Exception $e) {
  56. model('promotion_mansong_record')->rollback();
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }