make(StoreOrderCreateServices::class); if ($cartInfo && $priceData) { /** @var StoreOrderCartInfoServices $cartServices */ $cartServices = app()->make(StoreOrderCartInfoServices::class); [$cartInfo, $spread_ids] = $createService->computeOrderProductTruePrice($cartInfo, $priceData, $addressId, $uid, $orderInfo); $cartServices->updateCartInfo($orderId, $cartInfo); } $orderData = []; $spread_uid = $spread_two_uid = 0; /** @var UserServices $userServices */ $userServices = app()->make(UserServices::class); if ($spread_ids) { [$spread_uid, $spread_two_uid] = $spread_ids; $orderData['spread_uid'] = $spread_uid; $orderData['spread_two_uid'] = $spread_two_uid; } else { $spread_uid = $userServices->getSpreadUid($uid); $orderData = ['spread_uid' => 0, 'spread_two_uid' => 0]; if ($spread_uid) { $orderData['spread_uid'] = $spread_uid; } if ($spread_uid > 0 && sys_config('brokerage_level') == 2) { $spread_two_uid = $userServices->getSpreadUid($spread_uid, [], false); if ($spread_two_uid) { $orderData['spread_two_uid'] = $spread_two_uid; } } } $isCommission = 0; if ($orderInfo['combination_id']) { //检测拼团是否参与返佣 /** @var StoreCombinationServices $combinationServices */ $combinationServices = app()->make(StoreCombinationServices::class); $isCommission = $combinationServices->value(['id' => $orderInfo['combination_id']], 'is_commission'); } if ($cartInfo && (!$activity || $isCommission)) { /** @var StoreOrderComputedServices $orderComputed */ $orderComputed = app()->make(StoreOrderComputedServices::class); if ($userServices->checkUserPromoter($spread_uid)) $orderData['one_brokerage'] = $orderComputed->getOrderSumPrice($cartInfo, 'one_brokerage', false); if ($userServices->checkUserPromoter($spread_two_uid)) $orderData['two_brokerage'] = $orderComputed->getOrderSumPrice($cartInfo, 'two_brokerage', false); $orderData['staff_brokerage'] = $orderComputed->getOrderSumPrice($cartInfo, 'staff_brokerage', false); $orderData['agent_brokerage'] = $orderComputed->getOrderSumPrice($cartInfo, 'agent_brokerage', false); $orderData['division_brokerage'] = $orderComputed->getOrderSumPrice($cartInfo, 'division_brokerage', false); } $createService->update(['id' => $orderId], $orderData); } catch (\Throwable $e) { Log::error('计算订单实际优惠、积分、邮费、佣金失败,原因:' . $e->getMessage()); } return true; } }