feat: 添加 moment-timezone 依赖,更新许可证过期时间逻辑为中国时区,优化日期处理
This commit is contained in:
@@ -3,9 +3,9 @@ const express = require('express');
|
||||
const mongoose = require('mongoose');
|
||||
const cors = require('cors');
|
||||
const crypto = require('crypto');
|
||||
const moment = require('moment');
|
||||
const License = require('./models/License');
|
||||
const LicenseKey = require('./models/LicenseKey');
|
||||
const { formatChinaTime, getNowChinaTime, getNowChinaTimeString } = require('./utils/date');
|
||||
|
||||
const app = express();
|
||||
|
||||
@@ -154,16 +154,16 @@ app.post('/activate', async (req, res) => {
|
||||
});
|
||||
}
|
||||
|
||||
// 创建新的许可证并标记许可证密钥为已使用
|
||||
const expiryDate = moment().add(1, 'month').toDate();
|
||||
// 更新过期时间计算,使用中国时区
|
||||
const expiryDate = formatChinaTime(getNowChinaTime().add(1, 'month'), 'YYYY-MM-DD');
|
||||
|
||||
await License.create([{
|
||||
licenseKey: license_key,
|
||||
machineCode: machine_code,
|
||||
activationDate: activation_date || new Date(),
|
||||
activationDate: activation_date ? activation_date : getNowChinaTimeString(),
|
||||
expiryDate: expiryDate,
|
||||
isActive: true,
|
||||
maxUsageCount: process.env.MAX_USAGE_COUNT || 10, // 如果未指定,默认为100次
|
||||
maxUsageCount: process.env.MAX_USAGE_COUNT || 10,
|
||||
currentUsageCount: 0
|
||||
}]);
|
||||
|
||||
@@ -175,7 +175,7 @@ app.post('/activate', async (req, res) => {
|
||||
return res.json({
|
||||
success: true,
|
||||
message: '激活成功',
|
||||
expiry_date: expiryDate.toISOString().split('T')[0]
|
||||
expiry_date: expiryDate
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('激活错误:', error);
|
||||
@@ -235,8 +235,8 @@ app.post('/verify', async (req, res) => {
|
||||
});
|
||||
}
|
||||
|
||||
// Check expiry
|
||||
if (moment().isAfter(license.expiryDate)) {
|
||||
// 使用中国时区检查过期时间
|
||||
if (getNowChinaTime().isAfter(license.expiryDate)) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
message: '许可证已过期'
|
||||
@@ -258,7 +258,7 @@ app.post('/verify', async (req, res) => {
|
||||
return res.json({
|
||||
success: true,
|
||||
message: '许可证有效',
|
||||
expiry_date: license.expiryDate.toISOString().split('T')[0],
|
||||
expiry_date: formatChinaTime(license.expiryDate, 'YYYY-MM-DD'),
|
||||
usage_count: {
|
||||
current: license.currentUsageCount,
|
||||
max: license.maxUsageCount
|
||||
|
||||
Reference in New Issue
Block a user