第三段完善 代理商绑定 激活等 正式上线的版本

This commit is contained in:
huangzhenpc
2025-02-13 15:25:19 +08:00
parent abfa783907
commit d1b0a26dd2
31 changed files with 2729 additions and 641 deletions

View File

@@ -205,16 +205,31 @@ class Member extends Controller
return json(['code' => 400, 'msg' => '设备ID不能为空']);
}
try {
// 获取Redis实例
$redis = cache('redis');
$cacheKey = "device_status:{$machineId}";
// 尝试获取缓存
if ($redis && $statusInfo = $redis->get($cacheKey)) {
return json(json_decode($statusInfo, true));
}
} catch (\Exception $e) {
// Redis异常时记录日志但继续执行
trace("Redis异常: " . $e->getMessage(), 'error');
}
// 获取该设备所有的激活记录
$activations = Db::name('cursor_activation_codes')
->where('used_by', '=', $machineId)
->where('is_used', '=', 1)
->field(['days', 'used_at', 'code', 'device_info'])
->order('used_at desc')
->select()
->toArray();
if (empty($activations)) {
return json([
$result = [
'code' => 401,
'msg' => '未激活',
'data' => [
@@ -224,7 +239,16 @@ class Member extends Controller
'days_left' => 0,
'activation_records' => []
]
]);
];
// 未激活状态缓存1分钟
try {
if ($redis) {
$redis->set($cacheKey, json_encode($result), 60);
}
} catch (\Exception $e) {
trace("Redis缓存写入异常: " . $e->getMessage(), 'error');
}
return json($result);
}
// 计算总天数
@@ -232,13 +256,13 @@ class Member extends Controller
// 计算最终到期时间
$now = time();
$firstActivationTime = strtotime($activations[count($activations)-1]['used_at']); // 第一次激活时间
$expireTime = $firstActivationTime + ($totalDays * 24 * 3600); // 总天数转换为秒数
$firstActivationTime = strtotime($activations[count($activations)-1]['used_at']);
$expireTime = $firstActivationTime + ($totalDays * 24 * 3600);
$daysLeft = ceil(($expireTime - $now) / 86400);
// 判断是否过期
if ($daysLeft <= 0) {
return json([
$result = [
'code' => 401,
'msg' => '已过期',
'data' => [
@@ -256,11 +280,20 @@ class Member extends Controller
];
}, $activations)
]
]);
];
// 过期状态缓存1分钟
try {
if ($redis) {
$redis->set($cacheKey, json_encode($result), 60);
}
} catch (\Exception $e) {
trace("Redis缓存写入异常: " . $e->getMessage(), 'error');
}
return json($result);
}
// 返回正常状态
return json([
// 正常状态返回
$result = [
'code' => 200,
'msg' => '正常',
'data' => [
@@ -278,12 +311,21 @@ class Member extends Controller
];
}, $activations)
]
]);
];
// 正常状态缓存5分钟
try {
if ($redis) {
$redis->set($cacheKey, json_encode($result), 300);
}
} catch (\Exception $e) {
trace("Redis缓存写入异常: " . $e->getMessage(), 'error');
}
return json($result);
} catch (\Exception $e) {
return json([
'code' => 500,
'msg' => $e->getMessage()
'msg' => '系统异常,请稍后重试'
]);
}
}