加码
This commit is contained in:
parent
e1da173526
commit
07ad4b74fb
@ -143,7 +143,7 @@ try {
|
||||
$role = $stmt->fetchColumn();
|
||||
$sender = ($role === 'admin') ? 'admin' : 'user';
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO support_messages (user_id, sender, message, is_read) VALUES (?, ?, ?, 0)");
|
||||
$stmt = $pdo->prepare("INSERT INTO support_messages (user_id, sender, message, `is_read`) VALUES (?, ?, ?, 0)");
|
||||
$stmt->execute([$target_user_id, $sender, $message]);
|
||||
echo json_encode(['code' => 0, 'msg' => '已发送']);
|
||||
break;
|
||||
@ -159,9 +159,9 @@ try {
|
||||
}
|
||||
|
||||
if ($isAdmin && (int)$target_user_id !== (int)$_SESSION['user_id']) {
|
||||
$pdo->prepare("UPDATE support_messages SET is_read = 1 WHERE user_id = ? AND sender = 'user'")->execute([$target_user_id]);
|
||||
$pdo->prepare("UPDATE support_messages SET `is_read` = 1 WHERE user_id = ? AND sender = 'user'")->execute([$target_user_id]);
|
||||
} else if (!$isAdmin) {
|
||||
$pdo->prepare("UPDATE support_messages SET is_read = 1 WHERE user_id = ? AND sender = 'admin'")->execute([$_SESSION['user_id']]);
|
||||
$pdo->prepare("UPDATE support_messages SET `is_read` = 1 WHERE user_id = ? AND sender = 'admin'")->execute([$_SESSION['user_id']]);
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("SELECT * FROM support_messages WHERE user_id = ? ORDER BY id ASC");
|
||||
@ -177,7 +177,7 @@ try {
|
||||
// Optimized query to get last message reliably
|
||||
$stmt = $pdo->query("
|
||||
SELECT u.id, u.username, m.message as last_message, m.created_at as last_time,
|
||||
(SELECT COUNT(*) FROM support_messages WHERE user_id = u.id AND sender = 'user' AND is_read = 0) as unread_count
|
||||
(SELECT COUNT(*) FROM support_messages WHERE user_id = u.id AND sender = 'user' AND `is_read` = 0) as unread_count
|
||||
FROM users u
|
||||
JOIN (SELECT user_id, MAX(id) as max_id FROM support_messages GROUP BY user_id) last_msg_idx ON u.id = last_msg_idx.user_id
|
||||
JOIN support_messages m ON m.id = last_msg_idx.max_id
|
||||
@ -195,14 +195,14 @@ try {
|
||||
SELECT m.*, u.username
|
||||
FROM support_messages m
|
||||
JOIN users u ON m.user_id = u.id
|
||||
WHERE m.sender = 'user' AND m.is_read = 0
|
||||
WHERE m.sender = 'user' AND m.`is_read` = 0
|
||||
ORDER BY m.id DESC LIMIT 1
|
||||
");
|
||||
$last_unread = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$total_unread = $pdo->query("SELECT COUNT(*) FROM support_messages WHERE sender = 'user' AND is_read = 0")->fetchColumn();
|
||||
$total_unread = $pdo->query("SELECT COUNT(*) FROM support_messages WHERE sender = 'user' AND `is_read` = 0")->fetchColumn();
|
||||
echo json_encode(['code' => 0, 'unread_total' => $total_unread, 'last_user' => $last_unread['username'] ?? '']);
|
||||
} else {
|
||||
$stmt = $pdo->prepare("SELECT COUNT(*) FROM support_messages WHERE user_id = ? AND sender = 'admin' AND is_read = 0");
|
||||
$stmt = $pdo->prepare("SELECT COUNT(*) FROM support_messages WHERE user_id = ? AND sender = 'admin' AND `is_read` = 0");
|
||||
$stmt->execute([$_SESSION['user_id']]);
|
||||
echo json_encode(['code' => 0, 'unread_total' => $stmt->fetchColumn()]);
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS recharges (
|
||||
txid VARCHAR(255),
|
||||
status ENUM('pending', 'completed', 'rejected') DEFAULT 'pending',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS sms_orders (
|
||||
@ -29,7 +29,7 @@ CREATE TABLE IF NOT EXISTS sms_orders (
|
||||
status ENUM('pending', 'received', 'canceled', 'expired') DEFAULT 'pending',
|
||||
expire_at TIMESTAMP NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS settings (
|
||||
@ -43,8 +43,9 @@ CREATE TABLE IF NOT EXISTS support_messages (
|
||||
user_id INT NOT NULL,
|
||||
sender ENUM('user', 'admin') NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
is_read TINYINT(1) DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Default Settings
|
||||
@ -60,4 +61,4 @@ ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);
|
||||
-- Default Admin (admin / admin123)
|
||||
INSERT INTO users (username, password_hash, role) VALUES
|
||||
('admin', '$2y$10$QbKYSCqJI0WQLyf6NNSML.ukYrOZ0MdY61ZpK7Ekn5QQ/A9oDr.hu', 'admin')
|
||||
ON DUPLICATE KEY UPDATE role = 'admin';
|
||||
ON DUPLICATE KEY UPDATE role = 'admin';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user