123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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, deposit_fee_rate, withdrawal_fee_rate)
- VALUES (1, '后台管理系统', 'admin@example.com', 0.01, 0.01)
- `);
-
- 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 } = req.body;
-
- await pool.query(`
- UPDATE settings
- SET site_name = ?,
- admin_email = ?
- WHERE id = 1
- `, [siteName, adminEmail]);
-
- 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').hashPassword(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
- };
|