diff --git a/app/Admin/Controllers/DealerController.php b/app/Admin/Controllers/DealerController.php index 8499a29a..eaaff19a 100644 --- a/app/Admin/Controllers/DealerController.php +++ b/app/Admin/Controllers/DealerController.php @@ -118,6 +118,9 @@ class DealerController extends AdminController $column->row(Show::make($id, $builder, function (Show $show) { // $show->field('id'); $show->field('user.phone'); + $show->field('userInfo.nickname')->as(function () { + return $this->userInfo->nickname; + }); $show->field('lvl')->as(function () { return $this->lvl->text(); }); diff --git a/app/Admin/Controllers/DealerWalletToBankLogController.php b/app/Admin/Controllers/DealerWalletToBankLogController.php index 9be4f41f..f037f506 100644 --- a/app/Admin/Controllers/DealerWalletToBankLogController.php +++ b/app/Admin/Controllers/DealerWalletToBankLogController.php @@ -26,7 +26,7 @@ class DealerWalletToBankLogController extends AdminController */ protected function grid() { - $builder = DealerWalletToBankLog::with(['user']); + $builder = DealerWalletToBankLog::with(['user', 'managerUserInfo']); return Grid::make($builder, function (Grid $grid) { $grid->tools(function (Grid\Tools $tools) { $tools->append(new DealerWalletWithdraw()); @@ -37,6 +37,13 @@ class DealerWalletToBankLogController extends AdminController $grid->column('rate')->append('%'); $grid->column('service_amount')->prepend('¥'); $grid->column('account_amount')->prepend('¥'); + $grid->column('manager_id')->display(function () { + if ($this->managerUserInfo) { + $href = admin_route('dealers.show', ['dealer_user' => $this->manager_id]); + + return "{$this->managerUserInfo->nickname}"; + } + }); $grid->column('status')->display(function ($v) { $text = $v->text(); $background = $v->color(); diff --git a/app/Endpoint/Api/Http/Controllers/Dealer/WalletController.php b/app/Endpoint/Api/Http/Controllers/Dealer/WalletController.php index 2652b765..d6949cea 100644 --- a/app/Endpoint/Api/Http/Controllers/Dealer/WalletController.php +++ b/app/Endpoint/Api/Http/Controllers/Dealer/WalletController.php @@ -90,6 +90,7 @@ class WalletController extends Controller 'rate' => $rate, 'service_amount' => bcdiv($serviceAmount, 100, 2), 'account_amount' => bcdiv($amount - $serviceAmount, 100, 2), + 'manager_id' => $user->dealer->firstManager()?->user_id, ]); //减去用户可提金额 diff --git a/app/Models/Dealer.php b/app/Models/Dealer.php index 8ab571d1..612e3753 100644 --- a/app/Models/Dealer.php +++ b/app/Models/Dealer.php @@ -136,6 +136,24 @@ class Dealer extends Model })->all(); } + /** + * 获取经销商最近的管理者 + * + * @return static|null + */ + public function firstManager(): ?static + { + if (empty($pids = $this->userInfo->parent_ids)) { + return null; + } + + $manager = UserInfo::whereHas('dealer', function ($builder) { + $builder->where('is_manager', true); + })->whereIn('user_id', $pids)->latest('depth')->first(); + + return $manager?->dealer; + } + /** * 获取直属金牌经销商数量 * diff --git a/app/Models/DealerWalletToBankLog.php b/app/Models/DealerWalletToBankLog.php index 52132eed..e05e5581 100644 --- a/app/Models/DealerWalletToBankLog.php +++ b/app/Models/DealerWalletToBankLog.php @@ -43,6 +43,7 @@ class DealerWalletToBankLog extends Model 'pay_way', 'pay_at', 'failed_reason', + 'manager_id', ]; /** @@ -59,6 +60,11 @@ class DealerWalletToBankLog extends Model return $this->belongsTo(Dealer::class, 'user_id', 'user_id'); } + public function managerUserInfo() + { + return $this->belongsTo(UserInfo::class, 'manager_id', 'user_id'); + } + /** * 待打款状态 * diff --git a/database/migrations/2022_04_22_172136_add_manager_id_to_dealer_wallet_to_bank_logs_table.php b/database/migrations/2022_04_22_172136_add_manager_id_to_dealer_wallet_to_bank_logs_table.php new file mode 100644 index 00000000..eb58c117 --- /dev/null +++ b/database/migrations/2022_04_22_172136_add_manager_id_to_dealer_wallet_to_bank_logs_table.php @@ -0,0 +1,32 @@ +unsignedBigInteger('manager_id')->nullable()->comment('管理者UID'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('dealer_wallet_to_bank_logs', function (Blueprint $table) { + $table->dropColumn(['manager_id']); + }); + } +} diff --git a/resources/lang/zh_CN/dealer-wallet-to-bank-log.php b/resources/lang/zh_CN/dealer-wallet-to-bank-log.php index 2b959ddc..5eb8caac 100644 --- a/resources/lang/zh_CN/dealer-wallet-to-bank-log.php +++ b/resources/lang/zh_CN/dealer-wallet-to-bank-log.php @@ -19,6 +19,7 @@ return [ 'remarks' => '备注', 'failed_reason' => '失败原因', 'pay_way' => '支付方式', + 'manager_id' => '管理者', ], 'options' => [ ],