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' => '是否是管理者',