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 天趋势数据 // 近 30 天趋势数据
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------
$start = $yesterday->copy()->subDays(29); $startAt = $yesterday->copy()->subDays(29);
$end = $yesterday->copy(); $endAt = $yesterday->copy();
/** @var \Illuminate\Database\Eloquent\Collection */ /** @var \Illuminate\Database\Eloquent\Collection */
$ledgers30days = (clone $query) $ledgers30days = (clone $query)
->whereBetween('date', [$start, $end]) ->whereBetween('date', [$startAt, $endAt])
->get(['date', 'sales', 'expenditure']) ->get(['date', 'sales', 'expenditure'])
->keyBy('date'); ->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 [ return [
// 本月总账录入 // 本月总账录入
'current_month_ledger' => [ 'current_month_ledger' => [
@ -66,7 +83,7 @@ class StatisticsController extends Controller
'expenditure' => trim_zeros($yesterdayLedger->expenditure ?? 0), 'expenditure' => trim_zeros($yesterdayLedger->expenditure ?? 0),
], ],
// 近30天趋势数据 // 近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(); 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();
}
/** /**
* 处理区域和门店过滤条件 * 处理区域和门店过滤条件
*/ */