61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
// 将 CommonJS 导入改为 ES 模块导入
|
|
import { getSystemDbPath } from '../db/path.js';
|
|
import { openDatabase } from '../db/utils.js';
|
|
|
|
// 获取系统配置
|
|
async function getSystemConfig() {
|
|
try {
|
|
const systemDb = await openDatabase(getSystemDbPath());
|
|
const configs = await systemDb.allAsync('SELECT key, value FROM config');
|
|
// 不要关闭连接,由连接池管理
|
|
|
|
const configMap = {};
|
|
configs.forEach(config => {
|
|
configMap[config.key] = config.value;
|
|
});
|
|
return configMap;
|
|
} catch (error) {
|
|
console.error('Get system config failed:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// 更新系统配置
|
|
async function updateSystemConfig(config) {
|
|
try {
|
|
const systemDb = await openDatabase(getSystemDbPath());
|
|
await systemDb.runAsync('BEGIN TRANSACTION');
|
|
|
|
for (const [key, value] of Object.entries(config)) {
|
|
await systemDb.runAsync('UPDATE config SET value = ? WHERE key = ?', [value, key]);
|
|
}
|
|
|
|
await systemDb.runAsync('COMMIT');
|
|
// 不要关闭连接,由连接池管理
|
|
return true;
|
|
} catch (error) {
|
|
await systemDb.runAsync('ROLLBACK');
|
|
// 不要关闭连接,由连接池管理
|
|
console.error('Update system config failed:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// 增加题库版本号
|
|
async function increaseQuestionBandVersion() {
|
|
try {
|
|
const systemDb = await openDatabase(getSystemDbPath());
|
|
await systemDb.runAsync('UPDATE config SET value = value + 1 WHERE key = ?', ['question_bank_version']);
|
|
// 不要关闭连接,由连接池管理
|
|
return true;
|
|
} catch (error) {
|
|
console.error('Increase question bank version failed:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
export {
|
|
getSystemConfig,
|
|
updateSystemConfig,
|
|
increaseQuestionBandVersion
|
|
}; |