新增加教学数据查询API

This commit is contained in:
2025-12-25 03:32:20 +00:00
parent c9a95ca5c8
commit 69e94ed8b4
7 changed files with 530 additions and 12 deletions

5
.gitignore vendored
View File

@@ -1,2 +1,5 @@
node_modules
dist/
dist/
teaching_data/
competition_tmp/
online_data.json

View File

@@ -529,7 +529,7 @@ app.post('/api/competition/start', (req, res) => {
}
// 启动定时备份
const backupInterval = setInterval(() => {
const backupInterval = setInterval(() => {
if (!competitionStatus.isRunning) {
clearInterval(backupInterval);
return;
@@ -541,7 +541,6 @@ app.post('/api/competition/start', (req, res) => {
competitionStatus
};
// 编码数据
const dataStr = JSON.stringify(backupData, null, 2);
const encodedData = encodeURIComponent(dataStr).split('').reverse().join('');
const finalData = `EST_ENCODED_DATA:${encodedData}`;
@@ -550,6 +549,32 @@ app.post('/api/competition/start', (req, res) => {
path.join(tmpDirPath, `backup_${timestamp}.est`),
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); // 每分钟备份一次
//console.log(`[COMPETITION] 比赛开始 - UUID: ${competitionStatus.UUID}`);
@@ -613,6 +638,9 @@ app.get('/api/competition/status', (req, res) => {
res.json(response);
});
// 比赛数据上传API
app.post('/api/competition/data', (req, res) => {
const { UUID, fingerprint, timestamp, data } = req.body;
@@ -684,6 +712,94 @@ app.get('/api/competition/data', (req, res) => {
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) {
app.listen(PORT, () => {
@@ -696,4 +812,4 @@ if (require.main === module) {
});
}
module.exports = app;
module.exports = app;

View File

@@ -1,14 +1,14 @@
# Database configuration
# DB_HOST=192.168.5.131
DB_HOST=est_mysql
DB_HOST=192.168.5.131
# DB_HOST=est_mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
DB_NAME=login
# SurveyKing_DB_NAME
# SurveyKing_DB_HOST=192.168.5.131
SurveyKing_DB_HOST=est_mysql
SurveyKing_DB_HOST=192.168.5.131
# SurveyKing_DB_HOST=est_mysql
SurveyKing_DB_PORT=3306
SurveyKing_DB_USER=root
SurveyKing_DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G

View File

@@ -214,7 +214,12 @@ app.get('/check-auth', authenticateToken, async (req, res) => {
if (rows.length === 0 || new Date() > new Date(rows[0].expiration_date)) {
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) {
log(`检查认证状态失败: ${error}`);
res.status(500).json({ error: '检查认证状态失败' });

View File

@@ -1,4 +1,4 @@
{
"payload": "eyJtb2RlbCI6IkVTVC0xMDBEIiwidXNlciI6Iuemj+W7uuaKgOW4iOWtpumZoiIsImhhcmR3YXJlX2lkIjoiaHVza3kiLCJzZXJpYWwiOiJTTi1TSkZCVTZOSy02NTMwNjkiLCJhY3RpdmF0aW9uX2NvZGUiOiJBQ1QtTThBRTY2LVdONzgiLCJhY3RpdmF0ZWRfYXQiOiIyMDI1LTEyLTExVDA5OjAwOjU0Ljg1M1oiLCJleHBpcmVzX2F0IjoiMjI5OS0wOS0yNVQwOTowMDo1NC44NTNaIiwiZ29sZF9zZXJ2aWNlX2V4cGlyZXNfYXQiOiIyMDI2LTEyLTExVDA5OjAwOjU0Ljg1NFoiLCJpc3N1ZWRfYXQiOiIyMDI1LTEyLTExVDA5OjAwOjU0Ljg1NFoiLCJpc3N1ZXIiOiLkuIrmtbfmnJflnaTkv6Hmga/ns7vnu5/mnInpmZDlhazlj7gifQ==",
"signature": "PuQHV90aRuJ58o1+drSkBZy/yWbh3jhVuJIrxGbK0nfCH+FEZLTd4KUyrHUQ+EnHyWn3lxHJXKNkVvZ/f20cTPz57nITFf7uTD9BItFgMAaSgR6OVvM6K0hHtA1yjyYWJuqODM8ENATI/KZ7XAsfcqMI2dOochtUq1fJiEAmoGHp3B1APA5jp6/+Hjjx+HOaeEg5P74iYlkaJijfbtTSma+IWx+iz7FN5Uw6GnY3bt9MWFGCQMoXe295gV2bu00qmPo5G0tylm7oOe5A6TvkXj1D9FlZi8ZXkoV0ygvCAeswCiRqx5V0Yt08k4L93HO58Y3T6/NV5W/Jr4AB1To0Kg=="
"payload": "eyJtb2RlbCI6IkVTVC0xMDBFIiwidXNlciI6Imh1c2t5IiwiaGFyZHdhcmVfaWQiOiJodXNreSIsInNlcmlhbCI6Imh1c2t5IiwiYWN0aXZhdGlvbl9jb2RlIjoiaHVza3kiLCJhY3RpdmF0ZWRfYXQiOiIyMDI1LTEyLTE2VDAzOjE2OjQ2LjQyNFoiLCJleHBpcmVzX2F0IjoiMjI5OS0wOS0zMFQwMzoxNjo0Ni40MjRaIiwiZ29sZF9zZXJ2aWNlX2V4cGlyZXNfYXQiOiIyMDMwLTEyLTE1VDAzOjE2OjQ2LjQyNFoiLCJpc3N1ZWRfYXQiOiIyMDI1LTEyLTE2VDAzOjE2OjQ2LjQyNFoiLCJpc3N1ZXIiOiLkuIrmtbfmnJflnaTkv6Hmga/ns7vnu5/mnInpmZDlhazlj7gifQ==",
"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

View File

@@ -3584,3 +3584,397 @@
"issuer": "上海朗坤信息系统有限公司"
}
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 验证完成