修复在线设备数量
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,3 +6,5 @@ src/DRS9.Dashboard.Infrastructure/bin/
|
|||||||
src/DRS9.Dashboard.Infrastructure/obj/
|
src/DRS9.Dashboard.Infrastructure/obj/
|
||||||
src/DRS9.Dashboard.Server/bin/
|
src/DRS9.Dashboard.Server/bin/
|
||||||
src/DRS9.Dashboard.Server/obj/
|
src/DRS9.Dashboard.Server/obj/
|
||||||
|
src/DRS9.Dashboard.Server/dashboard.db-shm
|
||||||
|
src/DRS9.Dashboard.Server/dashboard.db-wal
|
||||||
|
|||||||
@@ -342,13 +342,16 @@ public class DashboardController : ControllerBase
|
|||||||
{
|
{
|
||||||
private readonly DeviceManagementService _deviceManagementService;
|
private readonly DeviceManagementService _deviceManagementService;
|
||||||
private readonly ApplicationService _applicationService;
|
private readonly ApplicationService _applicationService;
|
||||||
|
private readonly ILogger<DashboardController> _logger;
|
||||||
|
|
||||||
public DashboardController(
|
public DashboardController(
|
||||||
DeviceManagementService deviceManagementService,
|
DeviceManagementService deviceManagementService,
|
||||||
ApplicationService applicationService)
|
ApplicationService applicationService,
|
||||||
|
ILogger<DashboardController> logger)
|
||||||
{
|
{
|
||||||
_deviceManagementService = deviceManagementService;
|
_deviceManagementService = deviceManagementService;
|
||||||
_applicationService = applicationService;
|
_applicationService = applicationService;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -360,10 +363,26 @@ public class DashboardController : ControllerBase
|
|||||||
var devices = await _deviceManagementService.GetAllDevicesAsync();
|
var devices = await _deviceManagementService.GetAllDevicesAsync();
|
||||||
var applications = await _applicationService.GetAllAsync();
|
var applications = await _applicationService.GetAllAsync();
|
||||||
|
|
||||||
|
// 在线设备:1分钟内有活动
|
||||||
|
var onlineThreshold = DateTime.UtcNow.AddMinutes(-1);
|
||||||
|
var onlineCount = devices.Data.Count(d => d.LastSeenAt.HasValue && d.LastSeenAt >= onlineThreshold);
|
||||||
|
|
||||||
|
// 调试输出
|
||||||
|
_logger.LogInformation("UTC Now: {Now}", DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
_logger.LogInformation("Online Threshold: {Threshold}", onlineThreshold.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
foreach (var d in devices.Data)
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Device {Id}: LastSeenAt={LastSeenAt}, IsOnline={IsOnline}",
|
||||||
|
d.Id,
|
||||||
|
d.LastSeenAt?.ToString("yyyy-MM-dd HH:mm:ss") ?? "null",
|
||||||
|
d.LastSeenAt.HasValue && d.LastSeenAt >= onlineThreshold);
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Online Count: {Count}", onlineCount);
|
||||||
|
|
||||||
var stats = new DashboardStatsDto
|
var stats = new DashboardStatsDto
|
||||||
{
|
{
|
||||||
TotalDevices = devices.Data.Count,
|
TotalDevices = devices.Data.Count,
|
||||||
OnlineDevices = devices.Data.Count(d => d.IsEnabled),
|
OnlineDevices = onlineCount,
|
||||||
TotalApplications = applications.Total
|
TotalApplications = applications.Total
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user