12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- const { pool } = require('../config/database');
- // @desc 获取系统设置
- // @route GET /api/settings
- // @access Private/Admin
- const getSettings = async (req, res) => {
- try {
- const [settings] = await pool.query('SELECT * FROM settings WHERE id = 1');
-
- if (settings.length === 0) {
- // 如果没有设置记录,创建默认设置
- await pool.query(`
- INSERT INTO settings (id, site_name, admin_email)
- VALUES (1, '后台管理系统', 'admin@example.com')
- `);
-
- const [newSettings] = await pool.query('SELECT * FROM settings WHERE id = 1');
- res.json(newSettings[0]);
- } else {
- res.json(settings[0]);
- }
- } catch (error) {
- console.error('获取系统设置失败:', error);
- res.status(500).json({ message: '服务器错误' });
- }
- };
- // @desc 更新系统设置
- // @route PUT /api/settings
- // @access Private/Admin
- const updateSettings = async (req, res) => {
- try {
- const { siteName, adminEmail,adminTG } = req.body;
-
- await pool.query(`
- UPDATE settings
- SET site_name = ?,
- admin_email = ?,
- admin_tg = ?
- WHERE id = 1
- `, [siteName, adminEmail,adminTG]);
-
- const [settings] = await pool.query('SELECT * FROM settings WHERE id = 1');
- res.json(settings[0]);
- } catch (error) {
- console.error('更新系统设置失败:', error);
- res.status(500).json({ message: '服务器错误' });
- }
- };
- // @desc 更新密码
- // @route PUT /api/settings/password
- // @access Private/Admin
- const updatePassword = async (req, res) => {
- try {
- const { currentPassword, newPassword } = req.body;
- const userId = req.user.id;
- // 验证当前密码
- const [user] = await pool.query('SELECT * FROM users WHERE id = ?', [userId]);
- if (!user.length) {
- return res.status(404).json({ message: '用户不存在' });
- }
- const isMatch = await require('../models/User').comparePassword(currentPassword, user[0].password);
- if (!isMatch) {
- return res.status(401).json({ message: '当前密码错误' });
- }
- // 更新密码
- const hashedPassword = await require('../models/User').updatePassword(userId,newPassword);
- // await pool.query('UPDATE users SET password = ? WHERE id = ?', [hashedPassword, userId]);
-
- res.json({ message: '密码修改成功' });
- } catch (error) {
- console.error('更新密码失败:', error);
- res.status(500).json({ message: '服务器错误' });
- }
- };
- module.exports = {
- getSettings,
- updateSettings,
- updatePassword
- };
|