fixed latest month

This commit is contained in:
Edward Yang 2022-08-05 16:27:01 +08:00
parent e66d5f115b
commit ff10ec9370
4 changed files with 44 additions and 12 deletions

View File

@ -3,7 +3,8 @@
namespace Beike\Admin\Http\Controllers;
use App\Http\Controllers\Controller;
use Beike\Repositories\DashboardRepo;
use Beike\Admin\Repositories\DashboardRepo;
use Beike\Admin\Repositories\Report\OrderReportRepo;
class HomeController extends Controller
{
@ -14,6 +15,11 @@ class HomeController extends Controller
'orders' => DashboardRepo::getOrderData(),
'customers' => DashboardRepo::getCustomerData(),
'order_totals' => DashboardRepo::getTotalData(),
'order_trends' => [
'latest_month' => OrderReportRepo::getLatestMonth(),
'latest_week' => '',
'latest_year' => '',
]
];
return view('admin::pages.home', $data);

View File

@ -9,10 +9,11 @@
* @modified 2022-08-03 18:16:53
*/
namespace Beike\Repositories;
namespace Beike\Admin\Repositories;
use Beike\Models\Product;
use Beike\Models\Customer;
use Beike\Repositories\OrderRepo;
use Beike\Repositories\CustomerRepo;
class DashboardRepo
{
@ -73,11 +74,6 @@ class DashboardRepo
return [
'total' => $today,
'percentage' => $percentage,
'reports' => [
'latest_month' => '',
'latest_week' => '',
'latest_year' => '',
]
];
}

View File

@ -0,0 +1,30 @@
<?php
/**
* OrderRepo.php
*
* @copyright 2022 opencart.cn - All Rights Reserved
* @link http://www.guangdawangluo.com
* @author Edward Yang <yangjin@opencart.cn>
* @created 2022-08-05 14:33:49
* @modified 2022-08-05 14:33:49
*/
namespace Beike\Admin\Repositories\Report;
use Beike\Models\Order;
use Beike\Repositories\OrderRepo;
use Illuminate\Support\Facades\DB;
class OrderReportRepo
{
public static function getLatestMonth()
{
$orders = OrderRepo::getListBuilder(['start' => today()->subDays(30), 'end' => today()->subDay()])
->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as total'))
->groupBy('date')
->get()
->keyBy('date');
return $orders;
}
}

View File

@ -26,7 +26,7 @@ class OrderRepo
*/
public static function getListAll(): LengthAwarePaginator
{
$builder = self::getListBuilder();
$builder = self::getListBuilder()->orderByDesc('created_at');
return $builder->paginate();
}
@ -39,7 +39,7 @@ class OrderRepo
*/
public static function getListByCustomer($customer): LengthAwarePaginator
{
$builder = self::getListBuilder(['customer' => $customer]);
$builder = self::getListBuilder(['customer' => $customer])->orderByDesc('created_at');
return $builder->paginate();
}
@ -50,7 +50,7 @@ class OrderRepo
*/
public static function filterOrders(array $filters = []): LengthAwarePaginator
{
$builder = self::getListBuilder($filters);
$builder = self::getListBuilder($filters)->orderByDesc('created_at');
return $builder->paginate();
}
@ -61,7 +61,7 @@ class OrderRepo
*/
public static function getListBuilder(array $filters = []): Builder
{
$builder = Order::query()->orderByDesc('created_at');
$builder = Order::query();
$customer = $filters['customer'] ?? null;
if ($customer) {