You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

79 lines
2.3 KiB

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);
}
}
}