From 7c4904baadf1e9b09e567ee8a5684955dc813e6e Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 11 Feb 2026 13:35:33 +0000 Subject: [PATCH] Autosave: 20260211-133533 --- admin/chat.php | 282 +++--- admin/chat_iframe.php | 188 ++++ admin/futures_orders.php | 155 +++ admin/index.php | 67 +- admin/kyc.php | 115 ++- admin/orders.php | 128 +-- admin/settings.php | 95 +- admin/spot_orders.php | 132 +++ admin/users.php | 229 ++++- api/check_order_status.php | 13 +- api/get_messages.php | 33 +- assets/pasted-20260211-115218-2bf8b7ce.png | Bin 0 -> 173130 bytes chat.php | 37 +- futures.php | 779 ++++++++------- login.php | 9 +- matching.php | 447 ++++----- spot.php | 1040 +++++++++++++------- 17 files changed, 2348 insertions(+), 1401 deletions(-) create mode 100644 admin/chat_iframe.php create mode 100644 admin/futures_orders.php create mode 100644 admin/spot_orders.php create mode 100644 assets/pasted-20260211-115218-2bf8b7ce.png diff --git a/admin/chat.php b/admin/chat.php index 93de82e..66489b7 100644 --- a/admin/chat.php +++ b/admin/chat.php @@ -1,203 +1,147 @@ prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)"); - $stmt->execute([$uid, $msg]); - } - header("Location: chat.php?user_id = " . $uid); +// Handle deletion of chat +if (isset($_GET['action']) && $_GET['action'] === 'delete' && isset($_GET['delete_user_id'])) { + $del_id = $_GET['delete_user_id']; + // Delete messages + $pdo->prepare("DELETE FROM messages WHERE user_id = ?")->execute([$del_id]); + // Optionally update orders to not show in chat (e.g., mark as rejected or hidden if they are just 'matching') + $pdo->prepare("UPDATE fiat_orders SET status = 'rejected' WHERE user_id = ? AND status IN ('matching', 'submitting')")->execute([$del_id]); + header("Location: chat.php"); exit; } -// Handle setting bank info -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['bank_info']) && isset($_POST['order_id'])) { - $info = $_POST['bank_info']; - $oid = $_POST['order_id']; - $uid = $_POST['user_id']; - $stmt = db()->prepare("UPDATE fiat_orders SET bank_account_info = ? WHERE id = ?"); - $stmt->execute([$info, $oid]); - - // Also send as a chat message - $msg = "I have matched a bank account for your deposit. Please check the matching page.\n\nAccount Info:\n" . $info; - $stmt = db()->prepare("INSERT INTO messages (user_id, sender, message) VALUES (?, 'admin', ?)"); - $stmt->execute([$uid, $msg]); - - header("Location: chat.php?user_id = " . $uid); - exit; -} +$user_id = $_GET['user_id'] ?? null; +$unread_msgs = $pdo->query("SELECT COUNT(*) FROM messages WHERE sender = 'user' AND is_read = 0")->fetchColumn(); +$pending_orders = $pdo->query("SELECT COUNT(*) FROM fiat_orders WHERE status IN ('matching', 'submitting')")->fetchColumn(); -// Fetch all users who have sent messages -$users = db()->query(" - SELECT u.id, u.username, u.uid, MAX(m.created_at) as last_message, - (SELECT COUNT(*) FROM messages WHERE user_id = u.id AND sender = 'user' AND is_read = 0) as unread_count +// Fetch users with messages or active recharge orders +$chat_users = $pdo->query(" + SELECT DISTINCT u.id, u.username, u.uid, + (SELECT message FROM messages WHERE user_id = u.id ORDER BY id DESC LIMIT 1) as last_msg, + (SELECT created_at FROM messages WHERE user_id = u.id ORDER BY id DESC LIMIT 1) as last_time, + (SELECT COUNT(*) FROM messages WHERE user_id = u.id AND sender = 'user' AND is_read = 0) as unread_count, + (SELECT status FROM fiat_orders WHERE user_id = u.id AND status IN ('matching', 'submitting') LIMIT 1) as recharge_status FROM users u JOIN messages m ON u.id = m.user_id - GROUP BY u.id - ORDER BY last_message DESC + UNION + SELECT DISTINCT u.id, u.username, u.uid, + '发起充值匹配申请' as last_msg, + o.created_at as last_time, + 0 as unread_count, + o.status as recharge_status + FROM users u + JOIN fiat_orders o ON u.id = o.user_id + WHERE o.status IN ('matching', 'submitting') + ORDER BY last_time DESC ")->fetchAll(); -$messages = []; -$pending_order = null; -if ($selected_user_id) { - db()->prepare("UPDATE messages SET is_read = 1 WHERE user_id = ? AND sender = 'user'")->execute([$selected_user_id]); - $stmt = db()->prepare("SELECT * FROM messages WHERE user_id = ? ORDER BY created_at ASC"); - $stmt->execute([$selected_user_id]); - $messages = $stmt->fetchAll(); - - // Check for pending fiat order - $stmt = db()->prepare("SELECT * FROM fiat_orders WHERE user_id = ? AND bank_account_info IS NULL ORDER BY created_at DESC LIMIT 1"); - $stmt->execute([$selected_user_id]); - $pending_order = $stmt->fetch(); -} ?> - + - NovaEx CS Workbench + 客服管理 - NovaEx 管理后台 - -