6
0
Fork 0
jiqu-library-server/app/Actions/Dealer/CalculatePurchaseAmount.php

36 lines
1.0 KiB
PHP

<?php
namespace App\Actions\Dealer;
use App\Models\Dealer;
use App\Models\DealerPurchaseLog;
use Illuminate\Support\Carbon;
class CalculatePurchaseAmount
{
/**
* 计算经销商的进货业绩
*
* @param \App\Models\Dealer $dealer
* @param \Illuminate\Support\Carbon|null $start
* @param \Illuminate\Support\Carbon|null $end
* @return string
*/
public function handle(Dealer $dealer, ?Carbon $start = null, ?Carbon $end = null): string
{
$query = DealerPurchaseLog::query();
if ($start && $end) {
$query->whereBetween('order_completed_at', [$start, $end]);
} else {
$query->when($start, function ($query, $start) {
$query->where('order_completed_at', '>=', $start);
})->when($end, function ($query, $end) {
$query->where('order_completed_at', '<=', $end);
});
}
return $query->where('path', 'like', "{$dealer->userInfo->full_path}%")->sum('total_amount');
}
}