This commit is contained in:
mei
2026-08-11 10:03:40 +08:00
parent 2086bd79cc
commit fb326279fa
25 changed files with 2590 additions and 2379 deletions
+38
View File
@@ -86,6 +86,10 @@ function initDatabase() {
if (!userCols.some(c => c.name === 'personnel_id')) {
db.exec('ALTER TABLE users ADD COLUMN personnel_id TEXT');
}
// 用户表增加最后登录时间字段(用于在线状态展示)
if (!userCols.some(c => c.name === 'last_login')) {
db.exec('ALTER TABLE users ADD COLUMN last_login TEXT');
}
// 设备表增加报废相关字段
const deviceCols = db.prepare('PRAGMA table_info(devices)').all();
@@ -133,6 +137,40 @@ function initDatabase() {
)
`);
// 会话表(单聊 direct / 群聊 group)
db.exec(`
CREATE TABLE IF NOT EXISTS conversations (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
name TEXT DEFAULT '',
creator_id TEXT,
created_at TEXT DEFAULT (datetime('now', 'localtime'))
)
`);
// 会话成员表(last_read_message_id 用于未读计数)
db.exec(`
CREATE TABLE IF NOT EXISTS conversation_members (
conversation_id TEXT NOT NULL,
user_id TEXT NOT NULL,
role TEXT DEFAULT 'member',
last_read_message_id INTEGER DEFAULT 0,
joined_at TEXT DEFAULT (datetime('now', 'localtime')),
PRIMARY KEY (conversation_id, user_id)
)
`);
// 消息表(自增 id 兼作排序游标)
db.exec(`
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
conversation_id TEXT NOT NULL,
sender_id TEXT NOT NULL,
content TEXT NOT NULL,
created_at TEXT DEFAULT (datetime('now', 'localtime'))
)
`);
// 插入示例数据
const deviceCount = db.prepare('SELECT COUNT(*) as count FROM devices').get();
if (deviceCount.count === 0) {