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