diff --git a/admin/chat_iframe.php b/admin/chat_iframe.php index 59ec7c0..c95b84d 100644 --- a/admin/chat_iframe.php +++ b/admin/chat_iframe.php @@ -5,39 +5,84 @@ require_once '../includes/currency_helper.php'; $pdo = db(); $user_id = $_GET['user_id'] ?? null; -if (!$user_id) die("User ID required"); +if (!$user_id) die("需要用户 ID"); -// Mark as read +// 标记为已读 $pdo->prepare("UPDATE messages SET is_read = 1 WHERE user_id = ? AND sender = 'user'")->execute([$user_id]); -// Handle Message Sending +// 处理消息发送 if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['message'])) { $msg = $_POST['message']; $pdo->prepare("INSERT INTO messages (user_id, sender, message, type) VALUES (?, 'admin', ?, 'text')")->execute([$user_id, $msg]); exit; } -// Handle Recharge Actions +// 处理充值/提现操作 if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['action'])) { $oid = $_POST['order_id']; - if ($_POST['action'] == 'match') { + if ($_POST['action'] == 'match_deposit') { $bank = $_POST['bank_name'] ?? ''; $name = $_POST['account_name'] ?? ''; $number = $_POST['account_number'] ?? ''; $remarks = $_POST['remarks'] ?? ''; $info = "🏦 银行名称:$bank\n👤 收款姓名:$name\n💳 收款账号:$number\n📝 备注说明:$remarks"; $pdo->prepare("UPDATE fiat_orders SET status = 'matched', bank_account_info = ? WHERE id = ?")->execute([$info, $oid]); + // 发送消息给用户 $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, $info]); - $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, "✅ 匹配成功!收款账户已下发。"]); + $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, "✅ 匹配成功!收款账户已下发,请在转账后上传凭证。"]); + echo ""; + exit; + } elseif ($_POST['action'] == 'send_withdraw_format') { + $format = "📋 请提供以下提现收款信息:\n\n1. 银行/钱包名称:\n2. 收款人姓名:\n3. 账号/地址:\n4. 支行/网络:"; + $pdo->prepare("UPDATE fiat_orders SET status = 'matched', bank_account_info = ? WHERE id = ?")->execute([$format, $oid]); + $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, $format]); + $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, "✅ 请按上述格式回复您的收款详情。"]); + echo ""; + exit; } elseif ($_POST['action'] == 'complete') { - $stmt = $pdo->prepare("SELECT amount, currency FROM fiat_orders WHERE id = ?"); + $stmt = $pdo->prepare("SELECT order_type, usdt_amount, currency FROM fiat_orders WHERE id = ?"); $stmt->execute([$oid]); $order = $stmt->fetch(); - $pdo->prepare("UPDATE users SET balance = balance + ? WHERE id = ?")->execute([$order['amount'], $user_id]); - $pdo->prepare("UPDATE fiat_orders SET status = 'completed' WHERE id = ?")->execute([$oid]); - $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, "🎉 充值已确认到账!"]); + + $pdo->beginTransaction(); + try { + if ($order['order_type'] === 'deposit') { + // 充值:增加余额 + $pdo->prepare("UPDATE users SET balance = balance + ? WHERE id = ?")->execute([$order['usdt_amount'], $user_id]); + $msg = "🎉 您的充值已确认到账!"; + } else { + // 提现:余额已在发起时扣除,这里仅标记完成 + $msg = "🎉 您的提现申请已处理完成,请查收!"; + } + $pdo->prepare("UPDATE fiat_orders SET status = 'completed' WHERE id = ?")->execute([$oid]); + $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, $msg]); + $pdo->commit(); + } catch (Exception $e) { + $pdo->rollBack(); + die($e->getMessage()); + } + echo ""; + exit; } elseif ($_POST['action'] == 'reject') { - $pdo->prepare("UPDATE fiat_orders SET status = 'rejected' WHERE id = ?")->execute([$oid]); + $stmt = $pdo->prepare("SELECT order_type, usdt_amount FROM fiat_orders WHERE id = ?"); + $stmt->execute([$oid]); + $order = $stmt->fetch(); + + $pdo->beginTransaction(); + try { + if ($order['order_type'] === 'withdrawal') { + // 提现拒绝:退还余额 + $pdo->prepare("UPDATE users SET balance = balance + ? WHERE id = ?")->execute([$order['usdt_amount'], $user_id]); + } + $pdo->prepare("UPDATE fiat_orders SET status = 'rejected' WHERE id = ?")->execute([$oid]); + $pdo->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)")->execute([$user_id, "❌ 您的申请已被拒绝,如有疑问请咨询客服。"]); + $pdo->commit(); + } catch (Exception $e) { + $pdo->rollBack(); + die($e->getMessage()); + } + echo ""; + exit; } } @@ -45,7 +90,7 @@ $user = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $user->execute([$user_id]); $userData = $user->fetch(); -$orders = $pdo->prepare("SELECT * FROM fiat_orders WHERE user_id = ? AND status IN ('matching', 'submitting', 'matched') ORDER BY id DESC"); +$orders = $pdo->prepare("SELECT * FROM fiat_orders WHERE user_id = ? AND status IN ('matching', 'matched', 'paid') ORDER BY id DESC"); $orders->execute([$user_id]); $pending_orders = $orders->fetchAll(); ?> @@ -55,82 +100,123 @@ $pending_orders = $orders->fetchAll();