From 2a8e00d4f1cafb18f769bc5f7b833a879566e7de Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Tue, 25 Jan 2022 16:42:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B7=BB=E5=8A=A0=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E7=94=A8=E6=88=B7=E4=BD=99=E9=A2=9D=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/DealerController.php | 12 +++++-- .../Renderable/DealerWalletLogSimpleTable.php | 33 +++++++++++++++++++ app/Models/Dealer.php | 5 +++ app/Models/DealerWalletLog.php | 2 ++ resources/lang/zh_CN/dealer.php | 3 ++ 5 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 app/Admin/Renderable/DealerWalletLogSimpleTable.php diff --git a/app/Admin/Controllers/DealerController.php b/app/Admin/Controllers/DealerController.php index 82dbb6b4..bd95826d 100644 --- a/app/Admin/Controllers/DealerController.php +++ b/app/Admin/Controllers/DealerController.php @@ -6,6 +6,7 @@ use App\Admin\Actions\Grid\DealerBonds; use App\Admin\Actions\Grid\DealerEditLvl; use App\Admin\Renderable\DealerEarningSimpleTable; use App\Admin\Renderable\DealerUserProductLogSimpleTable; +use App\Admin\Renderable\DealerWalletLogSimpleTable; use App\Admin\Repositories\Dealer; use App\Enums\DealerLvl; use App\Models\Dealer as DealerModel; @@ -29,7 +30,7 @@ class DealerController extends AdminController */ protected function grid() { - $builder = Dealer::with(['user', 'userInfo', 'userInfo.inviterInfo.user', 'userInfo.realInviterInfo.user']); + $builder = Dealer::with(['user', 'userInfo', 'userInfo.inviterInfo.user', 'userInfo.realInviterInfo.user', 'wallet']); return Grid::make($builder, function (Grid $grid) { // $grid->column('id')->sortable(); $grid->column('user.phone')->copyable(); @@ -40,6 +41,9 @@ class DealerController extends AdminController $grid->column('lvl')->display(function () { return $this->lvl_text; }); + $grid->column('wallet.balance')->display(function ($value) { + return $value??0; + })->prepend('¥'); $grid->column('is_sale') ->if(function () { return Admin::user()->can('dcat.admin.dealers.update'); @@ -63,7 +67,7 @@ class DealerController extends AdminController $grid->column('bonds')->prepend('¥')->filter( Grid\Column\Filter\Between::make() ); - $grid->column('created_at')->sortable(); + // $grid->column('created_at')->sortable(); $grid->actions(function (Grid\Displayers\Actions $actions) { if (Admin::user()->can('dcat.admin.dealers.show')) { @@ -187,7 +191,11 @@ class DealerController extends AdminController $grid->disableActions(); $grid->disablePagination(); }); + $tab->add('剩余库存', $productGrid); + + $tab->add('余额记录', new DealerWalletLogSimpleTable(['id'=>$dealer->user_id])); + // $tab->add('升级记录', ''); // 上级列表 // $tab->add('上级列表', ''); $column->row(Box::make('用户记录', $tab)); diff --git a/app/Admin/Renderable/DealerWalletLogSimpleTable.php b/app/Admin/Renderable/DealerWalletLogSimpleTable.php new file mode 100644 index 00000000..05d0ffde --- /dev/null +++ b/app/Admin/Renderable/DealerWalletLogSimpleTable.php @@ -0,0 +1,33 @@ +payload['id']??0; + $builder = DealerWalletLog::query(); + $builder->where('user_id', $userId); + return Grid::make($builder, function (Grid $grid) { + $grid->column('remarks', '备注'); + $grid->column('change_balance', '变动金额(元)')->display(function ($value) { + $value = bcdiv($value, 100, 2); + return $value; + }); + $grid->column('before_balance', '变动前(元)')->display(function ($value) { + $value = bcdiv($value, 100, 2); + return $value; + }); + $grid->column('created_at', '变动时间'); + // $grid->withBorder(); + $grid->model()->orderBy('created_at', 'desc'); + $grid->disableRefreshButton(); + $grid->disableActions(); + }); + } +} diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php index ce1cbfb2..ff773e66 100644 --- a/app/Models/Dealer.php +++ b/app/Models/Dealer.php @@ -52,6 +52,11 @@ class Dealer extends Model return $this->hasOne(UserInfo::class, 'user_id', 'user_id'); } + public function wallet() + { + return $this->hasOne(DealerWallet::class, 'user_id', 'user_id'); + } + /** * 属于此经销商的管理者津贴 */ diff --git a/app/Models/DealerWalletLog.php b/app/Models/DealerWalletLog.php index 828094a8..5dfcd610 100644 --- a/app/Models/DealerWalletLog.php +++ b/app/Models/DealerWalletLog.php @@ -3,10 +3,12 @@ namespace App\Models; use App\Enums\DealerWalletAction; +use Dcat\Admin\Traits\HasDateTimeFormatter; use Illuminate\Database\Eloquent\Model; class DealerWalletLog extends Model { + use HasDateTimeFormatter; /** * @var array */ diff --git a/resources/lang/zh_CN/dealer.php b/resources/lang/zh_CN/dealer.php index 35cd20f9..9d1802df 100644 --- a/resources/lang/zh_CN/dealer.php +++ b/resources/lang/zh_CN/dealer.php @@ -28,6 +28,9 @@ return [ ], ], ], + 'wallet' => [ + 'balance' => '余额', + ], 'lvl' => '经销商等级', 'is_sale' => '是否可销售', 'is_manager' => '是否是管理者',