PointExchangeOrderCreate.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\store\event;
  11. use addon\pointexchange\model\Exchange;
  12. use addon\pointexchange\model\Order;
  13. use addon\store\model\StoreMember as StoreMemberModel;
  14. use addon\store\model\StoreGoodsSku;
  15. /**
  16. * 积分兑换订单创建之后
  17. */
  18. class PointExchangeOrderCreate
  19. {
  20. // 行为扩展的执行入口必须是run
  21. public function handle($data)
  22. {
  23. $order_model = new Order();
  24. $order_info = $order_model->getOrderInfo([ [ 'order_id', '=', $data[ 'order_id' ] ] ], 'site_id,member_id,delivery_store_id,exchange_goods_id,num')[ 'data' ];
  25. if (!empty($order_info) && !empty($order_info[ 'delivery_store_id' ])) {
  26. //添加店铺关注记录
  27. $shop_member_model = new StoreMemberModel();
  28. $res = $shop_member_model->addStoreMember($order_info[ 'delivery_store_id' ], $order_info[ 'member_id' ]);
  29. if ($res[ "code" ] < 0) {
  30. return $res;
  31. }
  32. $goods_info = ( new Exchange() )->getExchangeInfo($order_info[ 'exchange_goods_id' ])[ 'data' ];
  33. if (empty($goods_info)) return error(-1, '未获取到兑换商品信息', '');
  34. $store_goods_sku_model = new StoreGoodsSku();
  35. $stock_result = $store_goods_sku_model->decStock([ "store_id" => $order_info[ "delivery_store_id" ], "sku_id" => $goods_info[ "sku_id" ], 'stock' => $order_info[ "num" ] ]);
  36. if ($stock_result[ "code" ] < 0) {
  37. return $store_goods_sku_model->error([], '当前门店库存不足,请选择其他门店');
  38. }
  39. return $stock_result;
  40. }
  41. }
  42. }