From 71d287fbf486b2dd7f9c532a5412911a9cb9488e Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Tue, 7 Jun 2022 10:38:12 +0800 Subject: [PATCH] order --- app/Admin/Controllers/OrderController.php | 20 +++++++-- .../Controllers/Store/OrderController.php | 44 +++++++++++++++---- .../Controllers/Store/ProductController.php | 35 ++++++++++++++- ...derDistribute.php => OrderGrowthValue.php} | 8 ++-- app/Listeners/OrderDistribute.php | 42 ++++++++++++++++++ app/Models/Order.php | 16 ++++--- app/Providers/EventServiceProvider.php | 1 + app/Services/DistributeService.php | 24 ++++++++-- resources/lang/zh_CN/store-order.php | 1 + 9 files changed, 166 insertions(+), 25 deletions(-) rename app/Console/Commands/{OrderDistribute.php => OrderGrowthValue.php} (86%) create mode 100644 app/Listeners/OrderDistribute.php diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php index 71bfa386..c6057d90 100644 --- a/app/Admin/Controllers/OrderController.php +++ b/app/Admin/Controllers/OrderController.php @@ -122,7 +122,7 @@ class OrderController extends AdminController */ protected function grid() { - $grid = new Grid(Order::with(['user', 'tags'])); + $grid = new Grid(Order::with(['user', 'userInfo', 'tags'])); $grid->setResource('orders'); $grid->model()->orderBy('id', 'desc'); @@ -138,7 +138,16 @@ class OrderController extends AdminController $grid->column('tags', '标签')->display(function ($tags) { return $tags->implode('name'); })->label(); - $grid->column('user.phone')->copyable(); + $grid->column('user_id')->display(function () { + $nickname = $this->userInfo->nickname ?? '---'; + $avatar = $this->userInfo->avatar ?? 'https://via.placeholder.com/45x45.png'; + $phone = $this->user->phone; + return <<
+ {$nickname} + {$phone} + HTML; + }); $grid->column('total_amount')->display(function ($value) { return bcdiv($value, 100, 2); })->prepend('¥'); @@ -183,7 +192,12 @@ class OrderController extends AdminController $grid->filter(function (Grid\Filter $filter) { $filter->panel(); $filter->like('sn')->width(3); - $filter->like('user.phone')->width(3); + $filter->where('user_id', function ($q) { + $q->where(function ($q) { + $q->whereHas('user', fn($q) => $q->where('phone', 'like', '%'.$this->input.'%')) + ->orWhereHas('userInfo', fn($q) => $q->where('nickname', 'like', '%'.$this->input.'%')); + }); + })->width(3)->placeholder('昵称/手机号'); $filter->where('tags', function ($query) { $query->whereHas('tags', function ($q) { $q->whereIn('tags.id', $this->input); diff --git a/app/Admin/Controllers/Store/OrderController.php b/app/Admin/Controllers/Store/OrderController.php index 862f2d0b..1f61834a 100644 --- a/app/Admin/Controllers/Store/OrderController.php +++ b/app/Admin/Controllers/Store/OrderController.php @@ -32,7 +32,7 @@ class OrderController extends AdminController protected function grid() { - $grid = new Grid(Order::with(['user', 'inviter', 'store'])); + $grid = new Grid(Order::with(['user', 'userInfo', 'inviter', 'inviterInfo', 'store'])); $user = Admin::user(); $canAdmin = $this->canAdmin(); @@ -45,8 +45,26 @@ class OrderController extends AdminController $grid->column('store.title', '门店'); $grid->column('sn')->copyable(); - $grid->column('user.phone')->copyable(); - $grid->column('inviter.phone')->copyable(); + $grid->column('user_id')->display(function () { + $nickname = $this->userInfo->nickname ?? '---'; + $avatar = $this->userInfo->avatar ?? 'https://via.placeholder.com/45x45.png'; + $phone = $this->user->phone; + return <<