const sqlite3 = require('sqlite3').verbose(); const path = require('path'); // 连接到数据库 const dbPath = path.join(__dirname, 'backend', 'database.db'); const db = new sqlite3.Database(dbPath); console.log('🗄️ 初始化测试数据...'); // 创建表和初始化数据 db.serialize(() => { // 创建管理员表 db.run(`CREATE TABLE IF NOT EXISTS m_admins ( id INTEGER PRIMARY KEY AUTOINCREMENT, account TEXT NOT NULL, password TEXT NOT NULL, salt TEXT NOT NULL, status INTEGER DEFAULT 1, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 创建TG账号表 db.run(`CREATE TABLE IF NOT EXISTS accountss ( id INTEGER PRIMARY KEY AUTOINCREMENT, phone TEXT NOT NULL, username TEXT, status INTEGER DEFAULT 0, usage_purpose TEXT, session_data TEXT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 创建账号用途表 db.run(`CREATE TABLE IF NOT EXISTS m_account_usages ( id INTEGER PRIMARY KEY AUTOINCREMENT, usage_name TEXT NOT NULL, description TEXT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 创建名字表 db.run(`CREATE TABLE IF NOT EXISTS m_firstnames ( id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT NOT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 创建姓氏表 db.run(`CREATE TABLE IF NOT EXISTS m_lastnames ( id INTEGER PRIMARY KEY AUTOINCREMENT, lastname TEXT NOT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP )`); // 插入管理员数据(admin/111111) const salt = 'test_salt_123'; const crypto = require('crypto'); const passwordHash = crypto.createHash('md5').update(salt + '111111').digest('hex'); db.run(`INSERT OR IGNORE INTO m_admins (id, account, password, salt) VALUES (1, 'admin', ?, ?)`, [passwordHash, salt], function(err) { if (err) { console.error('插入管理员数据失败:', err); } else { console.log('✅ 管理员账号创建成功 (admin/111111)'); } }); // 插入测试TG账号数据 const testAccounts = [ { phone: '+8613800138000', username: 'test_user_1', status: 1, usage_purpose: '营销推广' }, { phone: '+8613800138001', username: 'test_user_2', status: 0, usage_purpose: '客服咨询' }, { phone: '+8613800138002', username: 'test_user_3', status: 1, usage_purpose: '群组管理' }, { phone: '+8613800138003', username: 'test_user_4', status: 2, usage_purpose: '自动回复' }, { phone: '+8613800138004', username: 'test_user_5', status: 1, usage_purpose: '数据采集' } ]; testAccounts.forEach((account, index) => { db.run(`INSERT OR IGNORE INTO accountss (phone, username, status, usage_purpose) VALUES (?, ?, ?, ?)`, [account.phone, account.username, account.status, account.usage_purpose], function(err) { if (err) { console.error(`插入TG账号 ${account.phone} 失败:`, err); } else if (this.changes > 0) { console.log(`✅ TG账号 ${account.phone} 创建成功`); } }); }); // 插入账号用途数据 const usages = [ { usage_name: '营销推广', description: '用于产品和服务的营销推广' }, { usage_name: '客服咨询', description: '提供客户服务和咨询支持' }, { usage_name: '群组管理', description: '管理Telegram群组和频道' }, { usage_name: '自动回复', description: '自动回复用户消息' }, { usage_name: '数据采集', description: '收集和分析用户数据' } ]; usages.forEach(usage => { db.run(`INSERT OR IGNORE INTO m_account_usages (usage_name, description) VALUES (?, ?)`, [usage.usage_name, usage.description], function(err) { if (err) { console.error(`插入用途 ${usage.usage_name} 失败:`, err); } else if (this.changes > 0) { console.log(`✅ 账号用途 ${usage.usage_name} 创建成功`); } }); }); // 插入测试名字数据(这些数据已经存在,保持原有的) const firstnames = ['张', '王', '李', '刘', '陈', '杨', '赵', '黄', '周', '吴', '徐', '孙', '马', '朱', '胡']; firstnames.forEach(name => { db.run(`INSERT OR IGNORE INTO m_firstnames (firstname) VALUES (?)`, [name], function(err) { if (err) { console.error(`插入名字 ${name} 失败:`, err); } else if (this.changes > 0) { console.log(`✅ 名字 ${name} 创建成功`); } }); }); // 插入测试姓氏数据 const lastnames = ['伟', '芳', '娜', '敏', '静', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '涛', '明']; lastnames.forEach(name => { db.run(`INSERT OR IGNORE INTO m_lastnames (lastname) VALUES (?)`, [name], function(err) { if (err) { console.error(`插入姓氏 ${name} 失败:`, err); } else if (this.changes > 0) { console.log(`✅ 姓氏 ${name} 创建成功`); } }); }); }); // 等待所有操作完成后关闭数据库 setTimeout(() => { db.close((err) => { if (err) { console.error('关闭数据库失败:', err); } else { console.log('🎉 测试数据初始化完成!'); console.log('\n📊 创建的测试数据:'); console.log('• 管理员账号: admin/111111'); console.log('• TG账号: 5个测试账号'); console.log('• 账号用途: 5种用途类型'); console.log('• 名字列表: 15个常用名字'); console.log('• 姓氏列表: 15个常用姓氏'); console.log('\n🚀 现在可以重新测试前端页面数据加载了!'); } }); }, 2000);