новый дизайн
This commit is contained in:
@@ -2,24 +2,66 @@
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Concerns\BuildsPortalProps;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Admin\AdjustBalanceRequest;
|
||||
use App\Services\AzerothCoreAccountService;
|
||||
use App\Services\BalanceService;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
use Inertia\Inertia;
|
||||
use Inertia\Response;
|
||||
use InvalidArgumentException;
|
||||
|
||||
class BalanceController extends Controller
|
||||
{
|
||||
public function index(Request $request, BalanceService $balances): View
|
||||
use BuildsPortalProps;
|
||||
|
||||
public function index(Request $request, BalanceService $balances): Response
|
||||
{
|
||||
$search = trim((string) $request->query('search', ''));
|
||||
|
||||
return view('admin.balances.index', [
|
||||
'transactions' => $balances->adminTransactions($search !== '' ? $search : null),
|
||||
$transactions = $balances->adminTransactions($search !== '' ? $search : null)
|
||||
->map(function ($transaction): array {
|
||||
$metadata = $transaction->metadata ?? [];
|
||||
|
||||
return [
|
||||
'id' => $transaction->id,
|
||||
'username' => $transaction->username ?: 'Аккаунт удалён',
|
||||
'account_id' => $transaction->account_id,
|
||||
'created_at' => $transaction->created_at?->format('d.m.Y H:i:s'),
|
||||
'type_label' => match ($transaction->type) {
|
||||
'deposit' => 'Пополнение',
|
||||
'spend' => 'Покупка в игре',
|
||||
'admin_credit' => 'Начисление администратором',
|
||||
'admin_debit' => 'Списание администратором',
|
||||
default => $transaction->type,
|
||||
},
|
||||
'description' => $metadata['reason'] ?? $metadata['description'] ?? $transaction->reference,
|
||||
'admin' => isset($metadata['admin_username']) ? [
|
||||
'username' => $metadata['admin_username'],
|
||||
'account_id' => $metadata['admin_account_id'],
|
||||
] : null,
|
||||
'amount' => (string) $transaction->amount,
|
||||
'formatted_amount' => number_format((float) $transaction->amount, 2, ',', ' '),
|
||||
'is_positive' => (float) $transaction->amount >= 0,
|
||||
'formatted_balance_after' => number_format((float) $transaction->balance_after, 2, ',', ' '),
|
||||
];
|
||||
})
|
||||
->values()
|
||||
->all();
|
||||
|
||||
return Inertia::render('Admin/Balances', [
|
||||
...$this->portalProps($request),
|
||||
'transactions' => $transactions,
|
||||
'search' => $search,
|
||||
'adjustUrl' => route('admin.balances.adjust'),
|
||||
'old' => [
|
||||
'account' => $request->old('account', ''),
|
||||
'direction' => $request->old('direction', 'credit'),
|
||||
'amount' => $request->old('amount', ''),
|
||||
'reason' => $request->old('reason', ''),
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user