import db from "../utils/db"; export default { createTalbe() { return db.executeSql(` CREATE TABLE IF NOT EXISTS getSystemInfo ( sysInfo TEXT, chatInfo TEXT, fileUpload TEXT, compass TEXT, demon_mode TEXT ) `) }, async getList() { try { const res = await db.selectSql('select * from getSystemInfo'); console.log('原始查询结果:', res); // 查看原始数据结构 return res; } catch (error) { console.error('查询失败:', error); return []; } }, // 批量插入/更新数据 async batchInsertOrUpdate(groupData) { const dbInstance = await db.createDatabase(); try { // 开启事务 await db.executeSql('BEGIN IMMEDIATE TRANSACTION'); // 清空旧数据(根据需求决定是否需要) await db.executeSql('DELETE FROM getSystemInfo'); // 检查表中是否已有数据 const [checkRes] = await db.selectSql('SELECT COUNT(*) AS count FROM getSystemInfo'); if (checkRes.count !== 0) { throw new Error('数据删除验证失败,表中仍存在记录'); return true; // 明确返回成功状态 } // 字段值预处理 const processedItem = { sysInfo: groupData.sysInfo ? JSON.stringify(groupData.sysInfo) : '{}', chatInfo: groupData.chatInfo ? JSON.stringify(groupData.chatInfo) : '{}', fileUpload: groupData.fileUpload ? JSON.stringify(groupData.fileUpload) : '{}', compass: groupData.compass ? JSON.stringify(groupData.compass) : '{}', demon_mode: groupData.demon_mode ? 1 : 0 }; // 提取值数组(注意顺序要与SQL语句中的字段顺序一致) const values = [ processedItem.sysInfo, processedItem.chatInfo, processedItem.fileUpload, processedItem.compass, Boolean(processedItem.demon_mode) ]; let value_str = "'" + values.join("','") + "'" // 构建INSERT语句 const sql = ` INSERT OR REPLACE INTO getSystemInfo ( sysInfo, chatInfo, fileUpload, compass, demon_mode ) VALUES (` + value_str + `) `; db.executeSql(sql); // await Promise.all(insertPromises); await db.executeSql('COMMIT'); console.log('数据同步成功,插入/更新'); return true; } catch (error) { await db.executeSql('ROLLBACK'); console.error('数据同步失败:', error); throw new Error('数据同步失败: ' + error.message); } } }