fixed totals
This commit is contained in:
parent
2d8ff03822
commit
ef3e5dc70d
|
|
@ -145,13 +145,14 @@ class CartService
|
|||
$selected = collect($carts)->where('selected', 1);
|
||||
$quantity = $selected->sum('quantity');
|
||||
$amount = $selected->sum('subtotal');
|
||||
$totalService = new TotalService($carts);
|
||||
|
||||
$data = [
|
||||
'carts' => $carts,
|
||||
'quantity' => $quantity,
|
||||
'amount' => $amount,
|
||||
'amount_format' => currency_format($amount),
|
||||
'totals' => TotalService::getTotals(),
|
||||
'totals' => $totalService->getTotals(),
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
namespace Beike\Shop\Services;
|
||||
|
||||
use \Beike\Shop\Services\TotalServices;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class TotalService
|
||||
|
|
@ -23,16 +22,27 @@ class TotalService
|
|||
'total'
|
||||
];
|
||||
|
||||
public array $carts;
|
||||
public array $totals;
|
||||
|
||||
public function __construct($carts)
|
||||
{
|
||||
$this->carts = $carts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function getTotals(): array
|
||||
public function getTotals(): array
|
||||
{
|
||||
$totals = [];
|
||||
foreach (self::TOTAL_CODES as $code) {
|
||||
$serviceName = Str::studly($code);
|
||||
$service = "TotalServices\{$serviceName}";
|
||||
$totals[] = $service::getTotal();
|
||||
$serviceName = Str::studly($code) . 'Service';
|
||||
$service = "\Beike\\Shop\\Services\\TotalServices\\{$serviceName}";
|
||||
if (!class_exists($service) || !method_exists($service, 'getTotal')) {
|
||||
continue;
|
||||
}
|
||||
$this->totals[] = $service::getTotal($this);
|
||||
}
|
||||
|
||||
return $totals;
|
||||
|
|
|
|||
|
|
@ -14,8 +14,12 @@ namespace Beike\Shop\Services\TotalServices;
|
|||
|
||||
class SubtotalService
|
||||
{
|
||||
public static function getTotal()
|
||||
public static function getTotal($totalService)
|
||||
{
|
||||
|
||||
$carts = $totalService->carts;
|
||||
return [
|
||||
'code' => 'sub_total',
|
||||
'value' => collect($carts)->sum('total')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue