* @created 2022-07-22 17:58:25 * @modified 2022-07-22 17:58:25 */ namespace Beike\Shop\Services\TotalServices; use Beike\Shop\Services\TotalService; use Beike\Shop\Services\CheckoutService; class SubtotalService { /** * @param CheckoutService $checkout * @return array */ public static function getTotal(CheckoutService $checkout) { $totalService = $checkout->totalService; $amount = self::getAmount($totalService); $totalData = [ 'code' => 'sub_total', 'title' => trans('shop/carts.product_total'), 'amount' => $amount, 'amount_format' => currency_format($amount) ]; $totalService->amount += $totalData['amount']; $totalService->totals[] = $totalData; return $totalData; } public static function getAmount(TotalService $totalService) { $carts = $totalService->cartProducts; return collect($carts)->sum('subtotal'); } }