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

53 lines
1.8 KiB
C#
Raw Normal View History

2025-06-17 13:53:54 +08:00
using Infrastructure;
using Infrastructure.CloudSdk.mqttmessagecenter;
using Microsoft.AspNetCore.Mvc;
using NetTopologySuite.Mathematics;
using OpenAuth.App;
using OpenAuth.App.Interface;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
using OpenAuth.WebApi.Model.mqtt.ModelResponse;
using System.Collections.Generic;
using System.Text.Json;
namespace OpenAuth.WebApi.Model.mqtt
{
public class ThingEventHandler : IMqttMessageHandler
{
private readonly ILogger<ThingRequestHandler> _logger;
AirportMaintenanceApp _app;
2025-06-17 13:59:06 +08:00
public ThingEventHandler(ILogger<ThingRequestHandler> logger, AirportMaintenanceApp app)
2025-06-17 13:53:54 +08:00
{
_logger = logger;
_app = app;
}
public bool CanHandle(string topic)
{
2025-06-24 17:10:12 +08:00
return topic.Contains("/events");
2025-06-17 13:53:54 +08:00
}
public Task HandleAsync(string topic, string payload)
{
2025-08-14 10:52:41 +08:00
//_logger.LogError($"[osd] Topic={topic}, Payload={payload}");
//Console.WriteLine($"[osd] Topic={topic}, Payload={payload}");
2025-06-17 13:53:54 +08:00
if (payload.Contains("hms"))//健康告警
{
var jsondata = JsonSerializer.Deserialize<HmsMessage>(payload);
2025-06-27 15:49:25 +08:00
var path = Path.Combine(AppContext.BaseDirectory, "hms.json");
2025-07-22 15:15:12 +08:00
string getway = topic.Split('/')[2];
var parser = new HmsAlarmParser(path, getway);
2025-06-27 15:49:25 +08:00
List<LasaManageDeviceHms> alarmMessages = null;
if (jsondata.data != null && jsondata.data.list?.Count > 0)
2025-06-17 13:53:54 +08:00
{
2025-06-27 15:49:25 +08:00
alarmMessages = parser.ParseAlarmMessages(payload);
}
_app.AddManageDeviceHms(alarmMessages ?? new List<LasaManageDeviceHms>());
2025-06-17 13:53:54 +08:00
2025-06-17 13:59:06 +08:00
}
2025-06-17 13:53:54 +08:00
return Task.CompletedTask;
}
}
}