gangbi_web/backend/routes/systemSettings.js

57 lines
1.6 KiB
JavaScript
Raw Normal View History

2025-02-07 05:10:01 +00:00
const express = require('express');
const router = express.Router();
const db = require('../utils/db');
const auth = require('../middleware/auth');
const checkPermission = require('../middleware/checkPermission');
// 获取所有设置
router.get('/', async (req, res) => {
try {
const [settings] = await db.query('SELECT * FROM system_settings');
const formattedSettings = settings.reduce((acc, setting) => {
if (!acc[setting.category]) {
acc[setting.category] = {};
}
acc[setting.category][setting.key] = {
value: setting.value,
description: setting.description
};
return acc;
}, {});
res.json(formattedSettings);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// 获取指定类别的设置
router.get('/:category', async (req, res) => {
try {
const [settings] = await db.query(
'SELECT * FROM system_settings WHERE category = ?',
[req.params.category]
);
res.json(settings);
} catch (error) {
res.status(500).json({ message: error.message });
}
});
// 更新设置(需要管理员权限)
router.put('/:category/:key', auth, checkPermission('system:manage'), async (req, res) => {
try {
const { category, key } = req.params;
const { value } = req.body;
await db.query(
'UPDATE system_settings SET value = ? WHERE category = ? AND `key` = ?',
[value, category, key]
);
res.json({ message: '设置更新成功' });
} catch (error) {
res.status(500).json({ message: error.message });
}
});
module.exports = router;