exec(" CREATE TABLE IF NOT EXISTS contacts ( id INT AUTO_INCREMENT PRIMARY KEY, phone VARCHAR(32) NOT NULL UNIQUE, name VARCHAR(64) NULL, tags VARCHAR(255) NULL, status ENUM('normal','blocked') DEFAULT 'normal', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) "); $pdo->exec(" CREATE TABLE IF NOT EXISTS messages ( id INT AUTO_INCREMENT PRIMARY KEY, contact_id INT NOT NULL, direction ENUM('in','out') NOT NULL DEFAULT 'out', body TEXT NOT NULL, is_read TINYINT(1) DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (contact_id) REFERENCES contacts(id) ) "); $pdo->exec(" CREATE TABLE IF NOT EXISTS settings ( id INT AUTO_INCREMENT PRIMARY KEY, category VARCHAR(32) NOT NULL, name VARCHAR(64) NOT NULL, value TEXT NULL, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY unique_setting (category, name) ) "); $pdo->exec(" CREATE TABLE IF NOT EXISTS auto_reply ( id INT AUTO_INCREMENT PRIMARY KEY, keyword VARCHAR(120) NOT NULL, reply TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) "); $count = (int)$pdo->query("SELECT COUNT(*) FROM contacts")->fetchColumn(); if ($count === 0) { $stmt = $pdo->prepare("INSERT INTO contacts (phone, name, tags, status) VALUES (?, ?, ?, ?)"); $stmt->execute(['+86 138 0013 8000', '华北客户', 'VIP,续费', 'normal']); $stmt->execute(['+86 139 0009 1212', '深圳客户', '新线索', 'normal']); $stmt->execute(['+1 415 555 0198', '海外客户', '海外', 'normal']); $contacts = $pdo->query("SELECT id, phone FROM contacts")->fetchAll(); $msgStmt = $pdo->prepare("INSERT INTO messages (contact_id, direction, body, is_read, created_at) VALUES (?, ?, ?, ?, ?)"); foreach ($contacts as $contact) { $msgStmt->execute([$contact['id'], 'in', '您好,我想了解套餐价格。', 0, date('Y-m-d H:i:s', strtotime('-2 hours'))]); $msgStmt->execute([$contact['id'], 'out', '您好,这里是客服,请问您关注哪种短信套餐?', 1, date('Y-m-d H:i:s', strtotime('-90 minutes'))]); } } $done = true; } function read_json(): array { $raw = file_get_contents('php://input'); $data = json_decode($raw, true); if (is_array($data)) return $data; return $_POST ?? []; }