import { Router } from 'express' import pool from '../db/connection' import { requireAdmin } from '../middleware/requireAdmin' const router = Router() /** 获取公开配置(经过全局 authMiddleware,无需管理员权限) */ router.get('/', async (_req, res) => { try { const [rows] = await pool.execute('SELECT config_key, config_value FROM sys_config') const config: Record = {} for (const row of rows as any[]) { config[row.config_key] = row.config_value } res.json({ code: 0, data: config }) } catch (error) { console.error('Get config error:', error) res.status(500).json({ code: 50000, message: '获取配置失败' }) } }) /** 更新配置(管理员权限) */ router.put('/', requireAdmin, async (req, res) => { try { const data = req.body if (!data || typeof data !== 'object') { return res.status(400).json({ code: 40001, message: '无效的配置数据' }) } // 批量更新配置 for (const [key, value] of Object.entries(data)) { await pool.query( 'INSERT INTO sys_config (config_key, config_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE config_value = ?', [key, value, value] ) } res.json({ code: 0 }) } catch (error) { console.error('Update config error:', error) res.status(500).json({ code: 50000, message: '更新配置失败' }) } }) export default router