prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$user = $stmt->fetch();
$msg_success = '';
$msg_error = '';
// =========================================================
// ОБРАБОТКА БАНКОВСКИХ ОПЕРАЦИЙ (POST)
// =========================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['bank_action'])) {
// 1. СИМУЛЯЦИЯ ПОПОЛНЕНИЯ КАРТОЙ
if ($_POST['bank_action'] === 'replenish') {
$amount = (int)$_POST['amount'];
if ($amount >= 10 && $amount <= 50000) {
// Начисляем деньги в основную таблицу маркетплейса
$pdo->prepare("UPDATE users SET balance = balance + ? WHERE id = ?")->execute([$amount, $user_id]);
// Записываем трансляцию в историю банка
$pdo->prepare("INSERT INTO bank_transactions (user_id, type, amount, description) VALUES (?, 'replenish', ?, 'Пополнение через WB-Bank (Виртуальная карта)')")
->execute([$user_id, $amount]);
// Пишем в общие логи системы для админки
$pdo->prepare("INSERT INTO site_logs (type, description) VALUES ('FINANCE', ?)")
->execute(["Пользователь {$user['email']} пополнил WB Кошелек на $ {$amount} через онлайн-банкинг."]);
header("Location: index.php?success=1"); exit;
} else { $msg_error = "Сумма пополнения должна быть от $10 до $50 000."; }
}
// 2. РЕАЛЬНЫЙ ПЕРЕВОД ДРУГОМУ ПОЛЬЗОВАТЕЛЮ ПО EMAIL
if ($_POST['bank_action'] === 'transfer') {
$target_email = trim(strtolower($_POST['target_email']));
$amount = (int)$_POST['amount'];
if ($target_email === strtolower($user['email'])) {
$msg_error = "Вы не можете переводить средства самому себе.";
} elseif ($amount <= 0 || $amount > $user['balance']) {
$msg_error = "Недостаточно средств на балансе или указана неверная сумма.";
} else {
// Ищем получателя в единой базе
$stmtTarget = $pdo->prepare("SELECT id FROM users WHERE LOWER(email) = ?");
$stmtTarget->execute([$target_email]);
$target_id = $stmtTarget->fetchColumn();
if ($target_id) {
// Списываем у отправителя
$pdo->prepare("UPDATE users SET balance = balance - ? WHERE id = ?")->execute([$amount, $user_id]);
// Начисляем получателю
$pdo->prepare("UPDATE users SET balance = balance + ? WHERE id = ?")->execute([$amount, $target_id]);
// Фиксируем транзакции для обоих участников
$pdo->prepare("INSERT INTO bank_transactions (user_id, type, amount, description) VALUES (?, 'transfer_out', ?, ?)")
->execute([$user_id, $amount, "Перевод пользователю " . htmlspecialchars($target_email)]);
$pdo->prepare("INSERT INTO bank_transactions (user_id, type, amount, description) VALUES (?, 'transfer_in', ?, ?)")
->execute([$target_id, $amount, "Получен перевод от " . htmlspecialchars($user['email'])]);
// Лог для админ-панели
$pdo->prepare("INSERT INTO site_logs (type, description) VALUES ('FINANCE', ?)")
->execute(["Банковский перевод: {$user['email']} перевел $ {$amount} пользователю с Email: {$target_email}"]);
header("Location: index.php?success=2"); exit;
} else {
$msg_error = "Пользователь с таким Email не найден в системе WBrbx.";
}
}
}
}
if (isset($_GET['success'])) {
if ($_GET['success'] == '1') $msg_success = "Баланс успешно пополнен!";
if ($_GET['success'] == '2') $msg_success = "Перевод успешно отправлен получателю!";
}
// Загружаем историю транзакций банкинга
$stmtTransactions = $pdo->prepare("SELECT * FROM bank_transactions WHERE user_id = ? ORDER BY id DESC LIMIT 20");
$stmtTransactions->execute([$user_id]);
$transactions = $stmtTransactions->fetchAll();
?>