From 45fff9f005e64ccea453f19eceb6de5de4e837a3 Mon Sep 17 00:00:00 2001 From: "1163816051@qq.com" <1163816051@qq.com> Date: Thu, 26 May 2022 14:17:05 +0800 Subject: [PATCH] =?UTF-8?q?admin=20order=20=E5=BA=95=E9=83=A8=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/OrderController.php | 33 +++++++++++++++++-- .../Controllers/Store/OrderController.php | 30 +++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php index 77837946..368b3a92 100644 --- a/app/Admin/Controllers/OrderController.php +++ b/app/Admin/Controllers/OrderController.php @@ -13,9 +13,8 @@ use App\Admin\Actions\Show\OrderRemark; use App\Admin\Extensions\Grid\Tools\Order\ExportProduct; use App\Admin\Renderable\Grid\Filter\OrderStatusIn; use App\Admin\Renderable\PackageProductSimpleTable; -use App\Admin\Repositories\Order; use App\Enums\PayWay; -use App\Models\Order as OrderModel; +use App\Models\Order; use App\Models\OrderActivity; use App\Models\OrderLog; use App\Models\OrderPackage; @@ -246,6 +245,36 @@ class OrderController extends AdminController } }); + $grid->footer(function ($collection) use ($grid) { + $query = Order::query(); + $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { + if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { + return; + } + + $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); + }); + $count = $query->count(); + $total_amount = number_format($query->sum('total_amount') / 100); + $market_price = number_format($query->sum('market_price') / 100); + $cost_price = number_format($query->sum('cost_price') / 100); + $sales_value = number_format($query->sum('sales_value')); + return << + + + 统计 + 订单数: $count + 订单总额: $total_amount + 市场价: $market_price + 成本价: $cost_price + 成长值: $sales_value + + + + HTML; + }); + return $grid; } diff --git a/app/Admin/Controllers/Store/OrderController.php b/app/Admin/Controllers/Store/OrderController.php index c7214d33..862f2d0b 100644 --- a/app/Admin/Controllers/Store/OrderController.php +++ b/app/Admin/Controllers/Store/OrderController.php @@ -107,6 +107,36 @@ class OrderController extends AdminController ])->width(3); $filter->between('created_at')->dateTime()->width(6); }); + + $grid->footer(function ($collection) use ($grid) { + $query = Order::query(); + $grid->model()->getQueries()->unique()->each(function ($value) use (&$query) { + if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) { + return; + } + + $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); + }); + $count = $query->count(); + $total_amount = number_format($query->sum('total_amount') / 100); + $market_price = number_format($query->sum('market_price') / 100); + $cost_price = number_format($query->sum('cost_price') / 100); + $sales_value = number_format($query->sum('sales_value')); + return << + + + 统计 + 订单数: $count + 订单总额: $total_amount + 市场价: $market_price + 成本价: $cost_price + 成长值: $sales_value + + + + HTML; + }); return $grid; }