第三段完善 代理商绑定 激活等 正式上线的版本
This commit is contained in:
@@ -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' => '系统异常,请稍后重试'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user