argument('user_id'); $amount = $this->argument('amount'); // find user $user = User::findOrFail($user_id); $balance = new Balance(); $this->info($user->name . ', 当前余额: ' . $user->balance); if (!$this->confirm('确认充值 ' . $amount . ' 元?')) { $this->info('已取消。'); return; } $data = [ 'user_id' => $user->id, 'amount' => $amount, 'payment' => 'console', ]; $balance = $balance->create($data); $transaction = new Transaction(); DB::beginTransaction(); try { $balance->user->increment('balance', $amount); $description = '控制台充值 ' . $amount . ' 元'; $transaction->addIncomeBalance($balance->user_id, 'console', $amount, $description); $balance->update([ 'paid_at' => now(), ]); DB::commit(); $this->info('充值成功。'); $user->refresh(); $this->info($user->name . ', 当前余额: ' . $user->balance); } catch (\Exception $e) { DB::rollBack(); $this->error('充值失败。' . $e->getMessage()); return; } } }