新增加教学数据查询API
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,2 +1,5 @@
|
|||||||
node_modules
|
node_modules
|
||||||
dist/
|
dist/
|
||||||
|
teaching_data/
|
||||||
|
competition_tmp/
|
||||||
|
online_data.json
|
||||||
122
dsxapi/dsxapi.js
122
dsxapi/dsxapi.js
@@ -529,7 +529,7 @@ app.post('/api/competition/start', (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 启动定时备份
|
// 启动定时备份
|
||||||
const backupInterval = setInterval(() => {
|
const backupInterval = setInterval(() => {
|
||||||
if (!competitionStatus.isRunning) {
|
if (!competitionStatus.isRunning) {
|
||||||
clearInterval(backupInterval);
|
clearInterval(backupInterval);
|
||||||
return;
|
return;
|
||||||
@@ -541,7 +541,6 @@ app.post('/api/competition/start', (req, res) => {
|
|||||||
competitionStatus
|
competitionStatus
|
||||||
};
|
};
|
||||||
|
|
||||||
// 编码数据
|
|
||||||
const dataStr = JSON.stringify(backupData, null, 2);
|
const dataStr = JSON.stringify(backupData, null, 2);
|
||||||
const encodedData = encodeURIComponent(dataStr).split('').reverse().join('');
|
const encodedData = encodeURIComponent(dataStr).split('').reverse().join('');
|
||||||
const finalData = `EST_ENCODED_DATA:${encodedData}`;
|
const finalData = `EST_ENCODED_DATA:${encodedData}`;
|
||||||
@@ -550,6 +549,32 @@ app.post('/api/competition/start', (req, res) => {
|
|||||||
path.join(tmpDirPath, `backup_${timestamp}.est`),
|
path.join(tmpDirPath, `backup_${timestamp}.est`),
|
||||||
finalData
|
finalData
|
||||||
);
|
);
|
||||||
|
try {
|
||||||
|
const maxAgeMs = 60 * 60 * 1000;
|
||||||
|
const now = Date.now();
|
||||||
|
const files = fs.readdirSync(tmpDirPath).filter(f => f.endsWith('.est'));
|
||||||
|
for (const f of files) {
|
||||||
|
const fp = path.join(tmpDirPath, f);
|
||||||
|
const stat = fs.statSync(fp);
|
||||||
|
if (now - stat.mtimeMs > maxAgeMs) {
|
||||||
|
fs.unlinkSync(fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const remaining = fs.readdirSync(tmpDirPath)
|
||||||
|
.filter(f => f.endsWith('.est'))
|
||||||
|
.map(f => {
|
||||||
|
const fp = path.join(tmpDirPath, f);
|
||||||
|
const stat = fs.statSync(fp);
|
||||||
|
return { fp, mtimeMs: stat.mtimeMs };
|
||||||
|
})
|
||||||
|
.sort((a, b) => a.mtimeMs - b.mtimeMs);
|
||||||
|
if (remaining.length > 60) {
|
||||||
|
const excess = remaining.length - 60;
|
||||||
|
for (let i = 0; i < excess; i++) {
|
||||||
|
fs.unlinkSync(remaining[i].fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
}, 60000); // 每分钟备份一次
|
}, 60000); // 每分钟备份一次
|
||||||
|
|
||||||
//console.log(`[COMPETITION] 比赛开始 - UUID: ${competitionStatus.UUID}`);
|
//console.log(`[COMPETITION] 比赛开始 - UUID: ${competitionStatus.UUID}`);
|
||||||
@@ -613,6 +638,9 @@ app.get('/api/competition/status', (req, res) => {
|
|||||||
res.json(response);
|
res.json(response);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 比赛数据上传API
|
// 比赛数据上传API
|
||||||
app.post('/api/competition/data', (req, res) => {
|
app.post('/api/competition/data', (req, res) => {
|
||||||
const { UUID, fingerprint, timestamp, data } = req.body;
|
const { UUID, fingerprint, timestamp, data } = req.body;
|
||||||
@@ -684,6 +712,94 @@ app.get('/api/competition/data', (req, res) => {
|
|||||||
res.json(competitionStatus.statisticsData);
|
res.json(competitionStatus.statisticsData);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// -----------------**************--------教学数据-----------***************--------------
|
||||||
|
|
||||||
|
// 教学数据查询API
|
||||||
|
const teachingDir = path.join(__dirname, 'teaching_data');
|
||||||
|
|
||||||
|
app.post('/api/teaching/data', (req, res) => {
|
||||||
|
const { fingerprint, scenario, timestamp, data } = req.body;
|
||||||
|
if (!fingerprint || !scenario || !data) {
|
||||||
|
return res.status(400).json({ error: '缺少必要参数' });
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (!fs.existsSync(teachingDir)) {
|
||||||
|
fs.mkdirSync(teachingDir);
|
||||||
|
}
|
||||||
|
const filePath = path.join(teachingDir, `${scenario}.json`);
|
||||||
|
let store = {};
|
||||||
|
if (fs.existsSync(filePath)) {
|
||||||
|
try {
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
store = JSON.parse(content || '{}');
|
||||||
|
} catch {
|
||||||
|
store = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
store[fingerprint] = { ...data, lastUpdate: timestamp };
|
||||||
|
fs.writeFileSync(filePath, JSON.stringify(store, null, 2));
|
||||||
|
res.json({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
console.error('保存教学数据失败:', error);
|
||||||
|
res.status(500).json({ error: '服务器内部错误' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get('/api/teaching/data', (req, res) => {
|
||||||
|
const { scenario, fingerprint, org } = req.query;
|
||||||
|
if (!scenario) {
|
||||||
|
return res.status(400).json({ error: '缺少scenario参数' });
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
if (!fs.existsSync(teachingDir)) {
|
||||||
|
if (fingerprint) {
|
||||||
|
return res.status(404).json({ error: '未找到指定指纹数据' });
|
||||||
|
}
|
||||||
|
if (!org) {
|
||||||
|
return res.status(400).json({ error: '缺少org参数' });
|
||||||
|
}
|
||||||
|
return res.json({});
|
||||||
|
}
|
||||||
|
const filePath = path.join(teachingDir, `${scenario}.json`);
|
||||||
|
if (!fs.existsSync(filePath)) {
|
||||||
|
if (fingerprint) {
|
||||||
|
return res.status(404).json({ error: '未找到指定指纹数据' });
|
||||||
|
}
|
||||||
|
if (!org) {
|
||||||
|
return res.status(400).json({ error: '缺少org参数' });
|
||||||
|
}
|
||||||
|
return res.json({});
|
||||||
|
}
|
||||||
|
const content = fs.readFileSync(filePath, 'utf8');
|
||||||
|
const store = JSON.parse(content || '{}');
|
||||||
|
if (fingerprint) {
|
||||||
|
const entry = store[fingerprint] || null;
|
||||||
|
if (!entry) {
|
||||||
|
return res.status(404).json({ error: '未找到指定指纹数据' });
|
||||||
|
}
|
||||||
|
if (org && String(entry.org || '').toLowerCase() !== String(org).toLowerCase()) {
|
||||||
|
return res.status(404).json({ error: '未找到指定指纹数据' });
|
||||||
|
}
|
||||||
|
return res.json(entry);
|
||||||
|
}
|
||||||
|
if (!org) {
|
||||||
|
return res.status(400).json({ error: '缺少org参数' });
|
||||||
|
}
|
||||||
|
const filtered = Object.fromEntries(
|
||||||
|
Object.entries(store).filter(([_, v]) => String((v && v.org) || '').toLowerCase() === String(org).toLowerCase())
|
||||||
|
);
|
||||||
|
return res.json(filtered);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('读取教学数据失败:', error);
|
||||||
|
res.status(500).json({ error: '服务器内部错误' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// -----------------**************--------------------------***************--------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 启动服务器
|
// 启动服务器
|
||||||
if (require.main === module) {
|
if (require.main === module) {
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
@@ -696,4 +812,4 @@ if (require.main === module) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
# Database configuration
|
# Database configuration
|
||||||
# DB_HOST=192.168.5.131
|
DB_HOST=192.168.5.131
|
||||||
DB_HOST=est_mysql
|
# DB_HOST=est_mysql
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_USER=root
|
DB_USER=root
|
||||||
DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
|
DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
|
||||||
DB_NAME=login
|
DB_NAME=login
|
||||||
|
|
||||||
# SurveyKing_DB_NAME
|
# SurveyKing_DB_NAME
|
||||||
# SurveyKing_DB_HOST=192.168.5.131
|
SurveyKing_DB_HOST=192.168.5.131
|
||||||
SurveyKing_DB_HOST=est_mysql
|
# SurveyKing_DB_HOST=est_mysql
|
||||||
SurveyKing_DB_PORT=3306
|
SurveyKing_DB_PORT=3306
|
||||||
SurveyKing_DB_USER=root
|
SurveyKing_DB_USER=root
|
||||||
SurveyKing_DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
|
SurveyKing_DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
|
||||||
|
|||||||
@@ -214,7 +214,12 @@ app.get('/check-auth', authenticateToken, async (req, res) => {
|
|||||||
if (rows.length === 0 || new Date() > new Date(rows[0].expiration_date)) {
|
if (rows.length === 0 || new Date() > new Date(rows[0].expiration_date)) {
|
||||||
return res.status(403).json({ error: '账户已过期或无效' });
|
return res.status(403).json({ error: '账户已过期或无效' });
|
||||||
}
|
}
|
||||||
res.json({ isAuthenticated: true, username: req.user.username, level: req.user.level });
|
res.json({
|
||||||
|
isAuthenticated: true,
|
||||||
|
username: req.user.username,
|
||||||
|
level: req.user.level,
|
||||||
|
organization: req.user.organization,
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log(`检查认证状态失败: ${error}`);
|
log(`检查认证状态失败: ${error}`);
|
||||||
res.status(500).json({ error: '检查认证状态失败' });
|
res.status(500).json({ error: '检查认证状态失败' });
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"payload": "eyJtb2RlbCI6IkVTVC0xMDBEIiwidXNlciI6Iuemj+W7uuaKgOW4iOWtpumZoiIsImhhcmR3YXJlX2lkIjoiaHVza3kiLCJzZXJpYWwiOiJTTi1TSkZCVTZOSy02NTMwNjkiLCJhY3RpdmF0aW9uX2NvZGUiOiJBQ1QtTThBRTY2LVdONzgiLCJhY3RpdmF0ZWRfYXQiOiIyMDI1LTEyLTExVDA5OjAwOjU0Ljg1M1oiLCJleHBpcmVzX2F0IjoiMjI5OS0wOS0yNVQwOTowMDo1NC44NTNaIiwiZ29sZF9zZXJ2aWNlX2V4cGlyZXNfYXQiOiIyMDI2LTEyLTExVDA5OjAwOjU0Ljg1NFoiLCJpc3N1ZWRfYXQiOiIyMDI1LTEyLTExVDA5OjAwOjU0Ljg1NFoiLCJpc3N1ZXIiOiLkuIrmtbfmnJflnaTkv6Hmga/ns7vnu5/mnInpmZDlhazlj7gifQ==",
|
"payload": "eyJtb2RlbCI6IkVTVC0xMDBFIiwidXNlciI6Imh1c2t5IiwiaGFyZHdhcmVfaWQiOiJodXNreSIsInNlcmlhbCI6Imh1c2t5IiwiYWN0aXZhdGlvbl9jb2RlIjoiaHVza3kiLCJhY3RpdmF0ZWRfYXQiOiIyMDI1LTEyLTE2VDAzOjE2OjQ2LjQyNFoiLCJleHBpcmVzX2F0IjoiMjI5OS0wOS0zMFQwMzoxNjo0Ni40MjRaIiwiZ29sZF9zZXJ2aWNlX2V4cGlyZXNfYXQiOiIyMDMwLTEyLTE1VDAzOjE2OjQ2LjQyNFoiLCJpc3N1ZWRfYXQiOiIyMDI1LTEyLTE2VDAzOjE2OjQ2LjQyNFoiLCJpc3N1ZXIiOiLkuIrmtbfmnJflnaTkv6Hmga/ns7vnu5/mnInpmZDlhazlj7gifQ==",
|
||||||
"signature": "PuQHV90aRuJ58o1+drSkBZy/yWbh3jhVuJIrxGbK0nfCH+FEZLTd4KUyrHUQ+EnHyWn3lxHJXKNkVvZ/f20cTPz57nITFf7uTD9BItFgMAaSgR6OVvM6K0hHtA1yjyYWJuqODM8ENATI/KZ7XAsfcqMI2dOochtUq1fJiEAmoGHp3B1APA5jp6/+Hjjx+HOaeEg5P74iYlkaJijfbtTSma+IWx+iz7FN5Uw6GnY3bt9MWFGCQMoXe295gV2bu00qmPo5G0tylm7oOe5A6TvkXj1D9FlZi8ZXkoV0ygvCAeswCiRqx5V0Yt08k4L93HO58Y3T6/NV5W/Jr4AB1To0Kg=="
|
"signature": "ouduGot27udHqDP+MeTAgGvF+Tv4UYA4aVWj5W4In+jvMrCWTQtADOG7J+FkqJ3HWLtQrr5GcE1a6YvVWtaw+XkqNabLMez6o5OwETnSJ6BQw6t+6CLJ9IG8iKeM9SlB4oRAabTjAMtBE/PDUHbdVursO/cFhlQhE1gY+8fkf51v65Zos1vnXTmqwu4mo/pla9Mt0aMlvEOMtA5V6gV9Zr18mv9jL2oUkIQBZna6wnh3V3M+xMoPb1TvXiysrJBVCU0Ta/dIE9tDBcwRimJESBm4IPXnwVc52iNAKeWWeUgCkV2N50Yhv0DgiIXT8QWXRDw9PMITbVGcUYEcX+wZ6A=="
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -3584,3 +3584,397 @@
|
|||||||
"issuer": "上海朗坤信息系统有限公司"
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
}
|
}
|
||||||
2025-12-15T06:22:56.524Z - License 验证完成
|
2025-12-15T06:22:56.524Z - License 验证完成
|
||||||
|
2025-12-16T01:33:21.862Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T01:33:21.868Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T01:33:21.872Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T01:33:21.873Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T01:33:21.877Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T01:33:21.880Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T01:33:21.880Z - License 信息: {
|
||||||
|
"model": "EST-100D",
|
||||||
|
"user": "福建技师学院",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "SN-SJFBU6NK-653069",
|
||||||
|
"activation_code": "ACT-M8AE66-WN78",
|
||||||
|
"activated_at": "2025-12-11T09:00:54.853Z",
|
||||||
|
"expires_at": "2299-09-25T09:00:54.853Z",
|
||||||
|
"gold_service_expires_at": "2026-12-11T09:00:54.854Z",
|
||||||
|
"issued_at": "2025-12-11T09:00:54.854Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T01:33:21.880Z - License 验证完成
|
||||||
|
2025-12-16T03:15:11.024Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T03:15:11.028Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T03:15:11.031Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T03:15:11.031Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T03:15:11.033Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T03:15:11.038Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T03:15:11.038Z - License 信息: {
|
||||||
|
"model": "EST-100D",
|
||||||
|
"user": "福建技师学院",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "SN-SJFBU6NK-653069",
|
||||||
|
"activation_code": "ACT-M8AE66-WN78",
|
||||||
|
"activated_at": "2025-12-11T09:00:54.853Z",
|
||||||
|
"expires_at": "2299-09-25T09:00:54.853Z",
|
||||||
|
"gold_service_expires_at": "2026-12-11T09:00:54.854Z",
|
||||||
|
"issued_at": "2025-12-11T09:00:54.854Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T03:15:11.038Z - License 验证完成
|
||||||
|
2025-12-16T03:17:02.956Z - 检测到 license 目录变化: rename - husky.lic
|
||||||
|
2025-12-16T03:17:02.956Z - 未找到任何 License 文件
|
||||||
|
2025-12-16T03:17:04.768Z - 检测到 license 目录变化: rename - husky.lic
|
||||||
|
2025-12-16T03:17:04.768Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T03:17:04.769Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T03:17:04.770Z - 验证 License 文件失败 (husky.lic): Unexpected end of JSON input
|
||||||
|
2025-12-16T03:17:04.770Z - License 验证失败: husky.lic
|
||||||
|
2025-12-16T03:17:04.770Z - 签名验证失败
|
||||||
|
2025-12-16T03:17:04.770Z - 硬件码不匹配
|
||||||
|
2025-12-16T03:17:04.770Z - 错误信息: Unexpected end of JSON input
|
||||||
|
2025-12-16T03:17:04.781Z - 检测到 license 目录变化: change - husky.lic
|
||||||
|
2025-12-16T03:17:04.782Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T03:17:04.782Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T03:17:04.783Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T03:17:04.783Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T03:17:13.188Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T03:17:13.192Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T03:17:13.195Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T03:17:13.196Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T03:17:13.197Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T03:17:13.201Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T03:17:13.201Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T03:17:13.201Z - License 验证完成
|
||||||
|
2025-12-16T05:31:30.236Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T05:31:30.241Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T05:31:30.243Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T05:31:30.244Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T05:31:30.245Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T05:31:30.249Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T05:31:30.250Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T05:31:30.250Z - License 验证完成
|
||||||
|
2025-12-16T05:54:55.556Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T05:54:55.560Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T05:54:55.563Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T05:54:55.563Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T05:54:55.566Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T05:54:55.570Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T05:54:55.570Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T05:54:55.570Z - License 验证完成
|
||||||
|
2025-12-16T06:27:43.636Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T06:27:43.640Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T06:27:43.643Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T06:27:43.643Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T06:27:43.645Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T06:27:43.651Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T06:27:43.651Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T06:27:43.651Z - License 验证完成
|
||||||
|
2025-12-16T07:29:50.484Z - 正在验证 License 文件...
|
||||||
|
2025-12-16T07:29:50.489Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-16T07:29:50.491Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T07:29:50.492Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-16T07:29:50.494Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-16T07:29:50.497Z - License 验证成功: husky.lic
|
||||||
|
2025-12-16T07:29:50.497Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-16T07:29:50.497Z - License 验证完成
|
||||||
|
2025-12-22T03:03:12.172Z - 正在验证 License 文件...
|
||||||
|
2025-12-22T03:03:12.177Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-22T03:03:12.179Z - Error connecting to the database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-22T03:03:12.180Z - Error connecting to the SurveyKing database: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-22T03:03:12.182Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-22T03:03:12.186Z - License 验证成功: husky.lic
|
||||||
|
2025-12-22T03:03:12.186Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-22T03:03:12.187Z - License 验证完成
|
||||||
|
2025-12-22T05:20:18.444Z - Login attempt for: admin
|
||||||
|
2025-12-22T05:20:18.446Z - 登录失败: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-22T05:20:21.066Z - Login attempt for: admin
|
||||||
|
2025-12-22T05:20:21.068Z - 登录失败: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-22T05:20:24.434Z - Login attempt for: admin
|
||||||
|
2025-12-22T05:20:24.435Z - 登录失败: Error: connect ECONNREFUSED 192.168.5.129:3306
|
||||||
|
2025-12-22T05:21:18.449Z - 正在验证 License 文件...
|
||||||
|
2025-12-22T05:21:18.454Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-22T05:21:18.455Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-22T05:21:18.459Z - License 验证成功: husky.lic
|
||||||
|
2025-12-22T05:21:18.460Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-22T05:21:18.460Z - License 验证完成
|
||||||
|
2025-12-22T05:21:28.426Z - Error connecting to the database: Error: connect ETIMEDOUT
|
||||||
|
2025-12-22T05:21:28.427Z - Error connecting to the SurveyKing database: Error: connect ETIMEDOUT
|
||||||
|
2025-12-22T05:21:46.236Z - 正在验证 License 文件...
|
||||||
|
2025-12-22T05:21:46.240Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-22T05:21:46.243Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-22T05:21:46.247Z - License 验证成功: husky.lic
|
||||||
|
2025-12-22T05:21:46.247Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-22T05:21:46.247Z - License 验证完成
|
||||||
|
2025-12-22T05:21:47.603Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-22T05:21:47.603Z - Successfully connected to the database.
|
||||||
|
2025-12-22T05:21:52.692Z - 正在验证 License 文件...
|
||||||
|
2025-12-22T05:21:52.697Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-22T05:21:52.707Z - Successfully connected to the database.
|
||||||
|
2025-12-22T05:21:52.710Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-22T05:21:52.710Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-22T05:21:52.714Z - License 验证成功: husky.lic
|
||||||
|
2025-12-22T05:21:52.714Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-22T05:21:52.714Z - License 验证完成
|
||||||
|
2025-12-22T05:21:58.243Z - Login attempt for: admin
|
||||||
|
2025-12-22T05:21:58.254Z - Database query result: [object Object]
|
||||||
|
2025-12-22T05:21:58.330Z - Password validation result: true
|
||||||
|
2025-12-22T05:21:58.337Z - Login successful for user: admin
|
||||||
|
2025-12-22T05:22:32.473Z - Login attempt for: admin
|
||||||
|
2025-12-22T05:22:32.475Z - Database query result: [object Object]
|
||||||
|
2025-12-22T05:22:32.542Z - Password validation result: true
|
||||||
|
2025-12-22T05:22:32.547Z - Login successful for user: admin
|
||||||
|
2025-12-22T07:01:51.328Z - 正在验证 License 文件...
|
||||||
|
2025-12-22T07:01:51.333Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-22T07:01:51.347Z - Successfully connected to the database.
|
||||||
|
2025-12-22T07:01:51.348Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-22T07:01:51.348Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-22T07:01:51.350Z - License 验证成功: husky.lic
|
||||||
|
2025-12-22T07:01:51.350Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-22T07:01:51.350Z - License 验证完成
|
||||||
|
2025-12-22T07:02:08.684Z - Login attempt for: admin
|
||||||
|
2025-12-22T07:02:08.686Z - Database query result: [object Object]
|
||||||
|
2025-12-22T07:02:08.764Z - Password validation result: true
|
||||||
|
2025-12-22T07:02:08.769Z - Login successful for user: admin
|
||||||
|
2025-12-23T02:10:22.581Z - 正在验证 License 文件...
|
||||||
|
2025-12-23T02:10:22.585Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-23T02:10:22.660Z - Successfully connected to the database.
|
||||||
|
2025-12-23T02:10:22.660Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-23T02:10:22.660Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-23T02:10:22.662Z - License 验证成功: husky.lic
|
||||||
|
2025-12-23T02:10:22.662Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-23T02:10:22.662Z - License 验证完成
|
||||||
|
2025-12-23T02:11:42.467Z - Login attempt for: admin
|
||||||
|
2025-12-23T02:11:42.472Z - Database query result: [object Object]
|
||||||
|
2025-12-23T02:11:42.545Z - Password validation result: true
|
||||||
|
2025-12-23T02:11:42.551Z - Login successful for user: admin
|
||||||
|
2025-12-23T02:12:44.588Z - Login attempt for: admin
|
||||||
|
2025-12-23T02:12:44.590Z - Database query result: [object Object]
|
||||||
|
2025-12-23T02:12:44.655Z - Password validation result: true
|
||||||
|
2025-12-23T02:12:44.660Z - Login successful for user: admin
|
||||||
|
2025-12-23T03:39:53.446Z - 正在验证 License 文件...
|
||||||
|
2025-12-23T03:39:53.451Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-23T03:39:53.470Z - Successfully connected to the database.
|
||||||
|
2025-12-23T03:39:53.471Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-23T03:39:53.471Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-23T03:39:53.474Z - License 验证成功: husky.lic
|
||||||
|
2025-12-23T03:39:53.475Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-23T03:39:53.475Z - License 验证完成
|
||||||
|
2025-12-23T03:41:07.619Z - 正在验证 License 文件...
|
||||||
|
2025-12-23T03:41:07.624Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-23T03:41:07.636Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-23T03:41:07.637Z - Successfully connected to the database.
|
||||||
|
2025-12-23T03:41:07.637Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-23T03:41:07.641Z - License 验证成功: husky.lic
|
||||||
|
2025-12-23T03:41:07.641Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-23T03:41:07.641Z - License 验证完成
|
||||||
|
2025-12-23T03:42:11.399Z - 正在验证 License 文件...
|
||||||
|
2025-12-23T03:42:11.403Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-23T03:42:11.415Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-23T03:42:11.416Z - Successfully connected to the database.
|
||||||
|
2025-12-23T03:42:11.417Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-23T03:42:11.421Z - License 验证成功: husky.lic
|
||||||
|
2025-12-23T03:42:11.421Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-23T03:42:11.421Z - License 验证完成
|
||||||
|
2025-12-23T05:51:43.029Z - 正在验证 License 文件...
|
||||||
|
2025-12-23T05:51:43.034Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-23T05:51:43.047Z - Successfully connected to the database.
|
||||||
|
2025-12-23T05:51:43.050Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-23T05:51:43.051Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-23T05:51:43.056Z - License 验证成功: husky.lic
|
||||||
|
2025-12-23T05:51:43.056Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-23T05:51:43.056Z - License 验证完成
|
||||||
|
2025-12-25T03:27:46.331Z - 正在验证 License 文件...
|
||||||
|
2025-12-25T03:27:46.335Z - 验证最新的 License 文件: husky.lic
|
||||||
|
2025-12-25T03:27:46.348Z - Successfully connected to the database.
|
||||||
|
2025-12-25T03:27:46.349Z - Successfully connected to the SurveyKing database.
|
||||||
|
2025-12-25T03:27:46.349Z - 成功读取公钥文件 pub.pem
|
||||||
|
2025-12-25T03:27:46.351Z - License 验证成功: husky.lic
|
||||||
|
2025-12-25T03:27:46.351Z - License 信息: {
|
||||||
|
"model": "EST-100E",
|
||||||
|
"user": "husky",
|
||||||
|
"hardware_id": "husky",
|
||||||
|
"serial": "husky",
|
||||||
|
"activation_code": "husky",
|
||||||
|
"activated_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"expires_at": "2299-09-30T03:16:46.424Z",
|
||||||
|
"gold_service_expires_at": "2030-12-15T03:16:46.424Z",
|
||||||
|
"issued_at": "2025-12-16T03:16:46.424Z",
|
||||||
|
"issuer": "上海朗坤信息系统有限公司"
|
||||||
|
}
|
||||||
|
2025-12-25T03:27:46.351Z - License 验证完成
|
||||||
|
|||||||
Reference in New Issue
Block a user