feat: 实现RCU固件升级服务核心功能

- 添加升级服务主逻辑,包括定时触发升级、状态查询和日志记录
- 实现数据库初始化脚本和日志表结构
- 添加PM2部署配置文件
- 实现环境变量配置系统
- 添加API客户端模块处理外部接口调用
- 实现升级状态轮询和超时处理机制
- 添加测试用例验证核心功能
This commit is contained in:
2026-01-21 13:34:42 +08:00
commit d04205ddba
23 changed files with 8788 additions and 0 deletions

53
src/apiClient.js Normal file
View File

@@ -0,0 +1,53 @@
const axios = require('axios');
const config = require('./config');
const apiClient = axios.create({
baseURL: config.apiBaseUrl,
timeout: 10000,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
const triggerUpgrade = async (roomtype_id, host_list, fileName) => {
try {
const params = new URLSearchParams();
params.append('roomtype_id', roomtype_id);
params.append('host_list_str', JSON.stringify(host_list));
params.append('fileName', fileName);
console.log('[WebChatUpgrade] Request', {
roomtype_id,
host_list_str: host_list,
fileName
});
const response = await apiClient.post('/WebChatUpgrade', params);
console.log('[WebChatUpgrade] Response', response.data);
return response.data;
} catch (error) {
console.error('Error calling WebChatUpgrade:', error.message);
throw error;
}
};
const queryStatus = async (host_list) => {
try {
const params = new URLSearchParams();
params.append('HostIDList', JSON.stringify(host_list));
console.log('[QueryUpdateHostProgressBar] Request', {
HostIDList: host_list
});
const response = await apiClient.post('/QueryUpdateHostProgressBar', params);
console.log('[QueryUpdateHostProgressBar] Response', response.data);
return response.data;
} catch (error) {
console.error('Error calling QueryUpdateHostProgressBar:', error.message);
throw error;
}
};
module.exports = {
triggerUpgrade,
queryStatus
};