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;