LASAPlatform/OpenAuth.WebApi/Model/mqtt/ThingOsdHandler.cs

56 lines
2.1 KiB
C#
Raw Normal View History

2025-06-18 15:44:13 +08:00
using Infrastructure.Cache;
using Infrastructure.CloudSdk.mqttmessagecenter;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
using System.Text.Json.Nodes;
2025-06-17 13:53:54 +08:00
namespace OpenAuth.WebApi.Model.mqtt
{
public class ThingOsdHandler : IMqttMessageHandler
{
private readonly ILogger<ThingRequestHandler> _logger;
2025-06-18 15:44:13 +08:00
AirportMaintenanceApp _app;
private readonly ICacheContext _cache;
public ThingOsdHandler(ILogger<ThingRequestHandler> logger, AirportMaintenanceApp app, ICacheContext cache)
2025-06-17 13:53:54 +08:00
{
_logger = logger;
2025-06-18 15:44:13 +08:00
_app = app;
_cache = cache;
2025-06-17 13:53:54 +08:00
}
public bool CanHandle(string topic)
{
return topic.Contains("/osd");
}
2025-09-06 08:53:28 +08:00
public async Task HandleAsync(string topic, string payload)
2025-06-17 13:53:54 +08:00
{
2025-08-14 10:51:41 +08:00
//_logger.LogError($"[osd] Topic={topic}, Payload={payload}");
//Console.WriteLine($"[osd] Topic={topic}, Payload={payload}");
2025-06-18 15:44:13 +08:00
var root = JsonNode.Parse(payload)?.AsObject();
2025-09-06 08:53:28 +08:00
await _app.AddLog(new LasaLog
2025-06-17 13:53:54 +08:00
{
2025-06-18 15:44:13 +08:00
Id = Guid.NewGuid().ToString(),
Topic = topic,
Method = root["method"]?.ToString() ?? "",
CreateTime = DateTime.Now,
2025-07-04 15:19:17 +08:00
Data = payload
2025-06-18 15:44:13 +08:00
});
var sub_device = root["data"]?["sub_device"]?.ToString() ?? "";
if (!string.IsNullOrEmpty(sub_device))
2025-09-06 08:53:28 +08:00
{
2025-06-18 15:44:13 +08:00
var data = new
{
device_sn = root["data"]?["sub_device"]?["device_sn"]?.ToString() ?? "",
device_online_status = root["data"]?["sub_device"]?["device_online_status"]?.ToString() ?? "",
mode_code = root["data"]?["mode_code"]?.ToString() ?? "",
2025-10-30 16:19:41 +08:00
drone_in_dock = root["data"]?["drone_in_dock"]?.ToString() ?? "",
2025-06-18 15:44:13 +08:00
};
2025-10-30 15:16:25 +08:00
var a = _cache.Set(root["data"]?["sub_device"]?["device_sn"]?.ToString(), data, DateTime.Now.AddMinutes(1));
2025-09-06 08:53:28 +08:00
}
2025-06-17 13:53:54 +08:00
// 自定义处理逻辑
2025-09-06 08:53:28 +08:00
//return Task.CompletedTask;
2025-06-17 13:53:54 +08:00
}
}
}