OrderCreate.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\form\event;
  11. use addon\form\model\Form;
  12. /**
  13. * 订单待付款
  14. */
  15. class OrderCreate
  16. {
  17. /**
  18. * @return multitype:number unknown
  19. */
  20. public function handle($data)
  21. {
  22. $create_data = $data['create_data'] ?? [];
  23. if (isset($create_data['form_data']) && !empty($create_data['form_data'])) {
  24. // 添加订单表单
  25. $form = new Form();
  26. if (isset($create_data['form_data']['form_data'])) {
  27. $res = $form->addFormData([
  28. 'site_id' => $create_data['site_id'],
  29. 'form_id' => $create_data['form_data']['form_id'],
  30. 'member_id' => $create_data['member_id'],
  31. 'relation_id' => $data['order_id'],
  32. 'form_data' => $create_data['form_data']['form_data'],
  33. 'scene' => 'order'
  34. ]);
  35. if ($res['code'] != 0) return $res;
  36. }
  37. // 添加商品表单
  38. if (isset($create_data['form_data']['goods_form'])) {
  39. $goods_list = array_column($create_data['shop_goods_list']['goods_list'], null, 'sku_id');
  40. foreach ($create_data['form_data']['goods_form'] as $sku_id => $form_item) {
  41. $res = $form->addFormData([
  42. 'site_id' => $create_data['site_id'],
  43. 'form_id' => $form_item['form_id'],
  44. 'member_id' => $create_data['member_id'],
  45. 'relation_id' => isset($goods_list[ $sku_id ]) && isset($goods_list[ $sku_id ]['order_goods_id']) ? $goods_list[ $sku_id ]['order_goods_id'] : 0,
  46. 'form_data' => $form_item['form_data'],
  47. 'scene' => 'goods'
  48. ]);
  49. if ($res['code'] != 0) return $res;
  50. }
  51. }
  52. }
  53. return success();
  54. }
  55. }