DispatchOrderCollection.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/6/9
  8. * Time: 14:13
  9. */
  10. namespace app\frontend\modules\memberCart\services;
  11. use app\common\modules\memberCart\MemberCartCollection;
  12. use app\common\exceptions\AppException;
  13. use app\common\models\BaseModel;
  14. use app\common\models\Member;
  15. use app\common\services\Plugin;
  16. use app\framework\Http\Request;
  17. use app\frontend\modules\order\models\PreOrder;
  18. use app\frontend\modules\order\services\OrderService;
  19. class DispatchOrderCollection extends MemberCartCollection
  20. {
  21. /**
  22. * 根据自身创建plugin_id对应类型的订单,当member已经实例化时传入member避免重复查询
  23. * @param Member|null $member
  24. * @param Plugin|null $plugin
  25. * @param Request $request
  26. * @return PreOrder|bool
  27. * @throws AppException
  28. * @throws \Exception
  29. */
  30. public function getGroupOrder(Plugin $plugin = null,$member = null, $request = null)
  31. {
  32. $request = $request ?: request();
  33. if ($this->isEmpty()) {
  34. return false;
  35. }
  36. if (!isset($member)) {
  37. $member = $this->getMember();
  38. }
  39. $orderGoodsCollection = OrderService::getOrderGoods($this);
  40. /**
  41. * @var PreOrder $order
  42. */
  43. $app = $plugin && $plugin->app()->bound('OrderManager') ? $plugin->app() : app();
  44. $order = $app->make('OrderManager')->make('PreOrder');
  45. $order->setRequest($request);
  46. $order->setMember($member);
  47. $order->beforeCreating();
  48. $order->setOrderGoods($orderGoodsCollection);
  49. $order->afterCreating();
  50. // $order->init($member, $orderGoodsCollection, $request);
  51. return $order;
  52. }
  53. }