68 lines
2.3 KiB
PHP
68 lines
2.3 KiB
PHP
<?php
|
|
// Initialize database tables
|
|
require_once __DIR__ . '/config.php';
|
|
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Create users table
|
|
$pdo->exec("CREATE TABLE IF NOT EXISTS users (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
)");
|
|
|
|
// Create settings table
|
|
$pdo->exec("CREATE TABLE IF NOT EXISTS settings (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
setting_key VARCHAR(50) NOT NULL UNIQUE,
|
|
setting_value TEXT,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
)");
|
|
|
|
// Create steps table
|
|
$pdo->exec("CREATE TABLE IF NOT EXISTS steps (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
day_number INT NOT NULL UNIQUE,
|
|
title VARCHAR(255),
|
|
what_to_chat TEXT,
|
|
how_to_chat TEXT,
|
|
why_to_chat TEXT,
|
|
correct_example TEXT,
|
|
wrong_example TEXT,
|
|
correct_explanation TEXT,
|
|
wrong_explanation TEXT,
|
|
image_url VARCHAR(255),
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
)");
|
|
|
|
// Seed default admin if not exists
|
|
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = 'admin'");
|
|
$stmt->execute();
|
|
if ($stmt->fetchColumn() == 0) {
|
|
$password = password_hash('admin123', PASSWORD_DEFAULT);
|
|
$pdo->prepare("INSERT INTO users (username, password) VALUES ('admin', ?)")->execute([$password]);
|
|
}
|
|
|
|
// Seed default settings
|
|
$defaultSettings = [
|
|
'site_title' => '财神组聊天框架',
|
|
'site_logo' => 'assets/pasted-20260207-134833-7329dc42.jpg',
|
|
'tg_link' => 'https://t.me/zhangshihao818',
|
|
'footer_copy' => '© 2026 财神组聊天框架构造. 内部资料,翻版必究。',
|
|
'watermark_text' => '财神组专用字体'
|
|
];
|
|
|
|
foreach ($defaultSettings as $key => $val) {
|
|
$pdo->prepare("INSERT IGNORE INTO settings (setting_key, setting_value) VALUES (?, ?)")->execute([$key, $val]);
|
|
}
|
|
|
|
// Seed default steps 1-7
|
|
for ($i = 1; $i <= 7; $i++) {
|
|
$pdo->prepare("INSERT IGNORE INTO steps (day_number, title) VALUES (?, ?)")->execute([$i, "第{$i}天:初步沟通"]);
|
|
}
|
|
|
|
} catch (PDOException $e) {
|
|
error_log("DB Init Error: " . $e->getMessage());
|
|
} |