|
|
|
|
import express from 'express';
|
|
|
|
|
import { fetchDataSources, saveDataSource, fetchAIModels, saveAIModel, fetchSystemSettings, saveSystemSettings } from '../services/configService';
|
|
|
|
|
|
|
|
|
|
const router = express.Router();
|
|
|
|
|
|
|
|
|
|
// 获取数据源列表
|
|
|
|
|
router.get('/datasources', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await fetchDataSources();
|
|
|
|
|
res.status(200).json({ success: true, data });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '获取数据源列表失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 保存数据源配置
|
|
|
|
|
router.post('/datasources', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await saveDataSource(req.body);
|
|
|
|
|
res.status(200).json({ success: true, message: '配置保存成功' });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '保存数据源配置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取AI模型列表
|
|
|
|
|
router.get('/ai-models', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await fetchAIModels();
|
|
|
|
|
res.status(200).json({ success: true, data });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '获取AI模型列表失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 保存AI模型配置
|
|
|
|
|
router.post('/ai-models', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await saveAIModel(req.body);
|
|
|
|
|
res.status(200).json({ success: true, message: '配置保存成功' });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '保存AI模型配置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取系统设置
|
|
|
|
|
router.get('/system', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await fetchSystemSettings();
|
|
|
|
|
res.status(200).json({ success: true, data });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '获取系统设置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 保存系统设置
|
|
|
|
|
router.post('/system', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = await saveSystemSettings(req.body);
|
|
|
|
|
res.status(200).json({ success: true, message: '设置保存成功' });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '保存系统设置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取用户设置
|
|
|
|
|
router.get('/user', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const data = {
|
|
|
|
|
preferences: {
|
|
|
|
|
theme: 'light',
|
|
|
|
|
language: 'zh-CN',
|
|
|
|
|
timezone: 'Asia/Shanghai'
|
|
|
|
|
},
|
|
|
|
|
notifications: {
|
|
|
|
|
email: true,
|
|
|
|
|
sms: false,
|
|
|
|
|
wechat: true
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
res.status(200).json({ success: true, data });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '获取用户设置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 保存用户设置
|
|
|
|
|
router.post('/user', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
// 模拟保存操作
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 200));
|
|
|
|
|
res.status(200).json({ success: true, message: '设置保存成功' });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
res.status(500).json({ success: false, message: '保存用户设置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 测试数据库连接
|
|
|
|
|
router.post('/test-database', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const { dbType, config } = req.body;
|
|
|
|
|
console.log(`测试${dbType}连接`, config);
|
|
|
|
|
|
|
|
|
|
// 模拟测试操作
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
|
|
|
|
|
|
|
|
res.status(200).json({ success: true, message: `${dbType}连接测试成功` });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('测试数据库连接失败:', error);
|
|
|
|
|
res.status(500).json({ success: false, message: '测试数据库连接失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 测试数据源连接
|
|
|
|
|
router.post('/test-datasource', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const { dsType, config } = req.body;
|
|
|
|
|
console.log(`测试${dsType}数据源连接`, config);
|
|
|
|
|
|
|
|
|
|
// 模拟测试操作
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
|
|
|
|
|
|
|
|
res.status(200).json({ success: true, message: `${dsType}数据源连接测试成功` });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('测试数据源连接失败:', error);
|
|
|
|
|
res.status(500).json({ success: false, message: '测试数据源连接失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 保存配置
|
|
|
|
|
router.post('/save', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
const config = req.body;
|
|
|
|
|
console.log('保存配置:', config);
|
|
|
|
|
|
|
|
|
|
// 保存配置到文件
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const path = require('path');
|
|
|
|
|
const configPath = path.join(__dirname, '../../config.json');
|
|
|
|
|
|
|
|
|
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
|
|
|
|
|
|
|
|
res.status(200).json({ success: true, message: '配置保存成功' });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('保存配置失败:', error);
|
|
|
|
|
res.status(500).json({ success: false, message: '保存配置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取配置
|
|
|
|
|
router.get('/get', async (req, res) => {
|
|
|
|
|
try {
|
|
|
|
|
// 从文件读取配置
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const path = require('path');
|
|
|
|
|
const configPath = path.join(__dirname, '../../config.json');
|
|
|
|
|
|
|
|
|
|
let config = {};
|
|
|
|
|
if (fs.existsSync(configPath)) {
|
|
|
|
|
const configData = fs.readFileSync(configPath, 'utf8');
|
|
|
|
|
config = JSON.parse(configData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
res.status(200).json({ success: true, data: config });
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('获取配置失败:', error);
|
|
|
|
|
res.status(500).json({ success: false, message: '获取配置失败' });
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export default router;
|