From e94c349a3e67bf309d31259cf038ccb7b9325904 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Tue, 16 Apr 2024 14:43:06 +0800 Subject: [PATCH] Update --- .../Controllers/Api/StatisticsController.php | 49 ++++++++----------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/Api/StatisticsController.php b/app/Http/Controllers/Api/StatisticsController.php index b7853b1..8cb454c 100644 --- a/app/Http/Controllers/Api/StatisticsController.php +++ b/app/Http/Controllers/Api/StatisticsController.php @@ -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(); - } - /** * 处理区域和门店过滤条件 */