update dashboard

This commit is contained in:
Edward Yang 2022-08-05 14:30:52 +08:00
parent 4e16cf4e16
commit b64d3b223f
3 changed files with 56 additions and 27 deletions

View File

@ -10,10 +10,10 @@ class HomeController extends Controller
public function index()
{
$data = [
'product' => DashboardRepo::getProductData(),
'order' => DashboardRepo::getOrderData(),
'customer' => DashboardRepo::getCustomerData(),
'total' => DashboardRepo::getTotalData(),
'views' => DashboardRepo::getCustomerViewData(),
'orders' => DashboardRepo::getOrderData(),
'customers' => DashboardRepo::getCustomerData(),
'order_totals' => DashboardRepo::getTotalData(),
];
return view('admin::pages.home', $data);

View File

@ -31,14 +31,15 @@ class DashboardRepo
/**
* 获取订单基础统计, 总数和今日昨日比较
*
* 获取客户访问统计今日昨日比较
* @return array
* @todo
*
*/
public static function getOrderData(): array
public static function getCustomerViewData(): array
{
$today = OrderRepo::getListBuilder(['start' => today(), 'end' => today()->addDay()])->count();
$yesterday = OrderRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->count();
$today = 10;
$yesterday = 8;
$difference = $today - $yesterday;
if ($difference && $yesterday) {
$percentage = round(($difference / $yesterday) * 100);
@ -47,21 +48,21 @@ class DashboardRepo
}
return [
'total' => quantity_format(Product::query()->count()),
'total' => $today,
'percentage' => $percentage,
];
}
/**
* 获取客户基础统计, 总数和今日昨日比较
* 获取订单基础统计, 总数和今日昨日比较
*
* @return array
*/
public static function getCustomerData(): array
public static function getOrderData(): array
{
$today = CustomerRepo::getListBuilder(['start' => today(), 'end' => today()->addDay()])->count();
$yesterday = CustomerRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->count();
$today = OrderRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->count();
$yesterday = OrderRepo::getListBuilder(['start' => today()->subDays(2), 'end' => today()->subDay()])->count();
$difference = $today - $yesterday;
if ($difference && $yesterday) {
$percentage = round(($difference / $yesterday) * 100);
@ -70,7 +71,35 @@ class DashboardRepo
}
return [
'total' => quantity_format(Customer::query()->count()),
'total' => $today,
'percentage' => $percentage,
'reports' => [
'latest_month' => '',
'latest_week' => '',
'latest_year' => '',
]
];
}
/**
* 获取客户注册今日昨日比较
*
* @return array
*/
public static function getCustomerData(): array
{
$today = CustomerRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->count();
$yesterday = CustomerRepo::getListBuilder(['start' => today()->subDays(2), 'end' => today()->subDay()])->count();
$difference = $today - $yesterday;
if ($difference && $yesterday) {
$percentage = round(($difference / $yesterday) * 100);
} else {
$percentage = 0;
}
return [
'total' => $today,
'percentage' => $percentage,
];
}
@ -83,8 +112,8 @@ class DashboardRepo
*/
public static function getTotalData(): array
{
$today = OrderRepo::getListBuilder(['start' => today(), 'end' => today()->addDay()])->sum('total');
$yesterday = OrderRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->sum('total');
$today = OrderRepo::getListBuilder(['start' => today()->subDay(), 'end' => today()])->sum('total');
$yesterday = OrderRepo::getListBuilder(['start' => today()->subDays(2), 'end' => today()->subDay()])->sum('total');
$difference = $today - $yesterday;
if ($difference && $yesterday) {
$percentage = round(($difference / $yesterday) * 100);
@ -93,7 +122,7 @@ class DashboardRepo
}
return [
'total' => quantity_format(Customer::query()->count()),
'total' => currency_format($today),
'percentage' => $percentage,
];
}

View File

@ -18,11 +18,11 @@
{{-- <h6 class="text-uppercase text-black-50 mb-3">{{ __('admin/dashboard.customer_view') }}</h6> --}}
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<div class="fs-2 lh-1 fw-bold">{{ $product['total'] }}</div>
<div class="fs-2 lh-1 fw-bold">{{ $views['total'] }}</div>
</div>
{{-- <div><i class="fs-4 bi bi-cart"></i></div> --}}
</div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-success">-24</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-success">{{ $views['percentage'] }}%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
</div>
</div>
</div>
@ -36,11 +36,11 @@
{{-- <h6 class="text-uppercase text-black-50 mb-3">{{ __('admin/dashboard.order_total') }}</h6> --}}
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<div class="fs-2 lh-1 fw-bold">{{ $order['total'] }}</div>
<div class="fs-2 lh-1 fw-bold">{{ $orders['total'] }}</div>
</div>
{{-- <div><i class="fs-4 bi bi-journal-text"></i></div> --}}
</div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-success">-21%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-success">{{ $orders['percentage'] }}%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
</div>
</div>
</div>
@ -54,11 +54,11 @@
{{-- <h6 class="text-uppercase text-black-50 mb-3">{{ __('admin/dashboard.customer_new') }}</h6> --}}
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<div class="fs-2 lh-1 fw-bold">{{ $customer['total'] }}</div>
<div class="fs-2 lh-1 fw-bold">{{ $customers['total'] }}</div>
</div>
{{-- <div><i class="fs-4 bi bi-person"></i></div> --}}
</div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-danger">+30%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-danger">{{ $customers['percentage'] }}%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
</div>
</div>
</div>
@ -72,11 +72,11 @@
{{-- <h6 class="text-uppercase text-black-50 mb-3">{{ __('admin/dashboard.order_amount') }}</h6> --}}
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<div class="fs-2 lh-1 fw-bold">{{ $total['total'] }}</div>
<div class="fs-2 lh-1 fw-bold">{{ $order_totals['total'] }}</div>
</div>
{{-- <div><i class="fs-4 bi bi-person"></i></div> --}}
</div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-danger">+140%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
<div class="mt-3 d-flex align-items-center lh-1"><span class="text-danger">{{ $order_totals['percentage'] }}%</span> <span class="vr mx-2"></span> <span class="text-muted">{{ __('admin/dashboard.day_before') }}</span></div>
</div>
</div>
</div>
@ -276,4 +276,4 @@
upDate(ordersChart, labels, data);
});
</script>
@endpush
@endpush