main
Jing Li 2024-04-16 14:43:06 +08:00
parent 170267740a
commit e94c349a3e
1 changed files with 21 additions and 28 deletions

View File

@ -43,14 +43,31 @@ class StatisticsController extends Controller
//--------------------------------------------------------------------------
// 近 30 天趋势数据
//--------------------------------------------------------------------------
$start = $yesterday->copy()->subDays(29);
$end = $yesterday->copy();
$startAt = $yesterday->copy()->subDays(29);
$endAt = $yesterday->copy();
/** @var \Illuminate\Database\Eloquent\Collection */
$ledgers30days = (clone $query)
->whereBetween('date', [$start, $end])
->whereBetween('date', [$startAt, $endAt])
->get(['date', 'sales', 'expenditure'])
->keyBy('date');
$trend = collect();
while ($startAt->lte($endAt)) {
$ledger = $ledgers30days->get(
$date = $startAt->format('Y-m-d')
);
$trend->push([
'date' => $date,
'sales' => trim_zeros($ledger->sales ?? 0),
'expenditure' => trim_zeros($ledger->expenditure ?? 0),
]);
$startAt->addDay();
}
return [
// 本月总账录入
'current_month_ledger' => [
@ -66,7 +83,7 @@ class StatisticsController extends Controller
'expenditure' => trim_zeros($yesterdayLedger->expenditure ?? 0),
],
// 近30天趋势数据
'trend_data_of_30days' => $this->prepareTrendData($start->copy(), $end->copy(), $ledgers30days),
'trend_data_of_30days' => $trend,
];
}
@ -190,30 +207,6 @@ class StatisticsController extends Controller
return $data->all();
}
/**
* 准备趋势数据
*/
protected function prepareTrendData(Carbon $start, Carbon $end, Collection $ledgers): array
{
$data = collect();
do {
$ledger = $ledgers->get(
$date = $start->format('Y-m-d')
);
$data->push([
'date' => $date,
'sales' => trim_zeros($ledger->sales ?? 0),
'expenditure' => trim_zeros($ledger->expenditure ?? 0),
]);
$start->addDay();
} while ($start->lte($end));
return $data->all();
}
/**
* 处理区域和门店过滤条件
*/