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

43 lines
1.3 KiB
C#
Raw Normal View History

2026-01-09 10:57:14 +08:00
using Infrastructure.Cache;
using Infrastructure.CloudSdk.mqttmessagecenter;
using OpenAuth.App.ServiceApp;
using OpenAuth.Repository.Domain;
namespace OpenAuth.WebApi.Model.mqtt
{
public class ThingAiTaskHandler : IMqttMessageHandler
{
LasaPlatformPushApp _app;
private readonly ICacheContext _cache;
public ThingAiTaskHandler(LasaPlatformPushApp app, ICacheContext cache)
{
_app = app;
_cache = cache;
}
public bool CanHandle(string topic)
{
return topic.Contains("ai/task");
}
public async Task HandleAsync(string topic, string payload)
{
var parts = topic.Split('/', StringSplitOptions.RemoveEmptyEntries);
if (parts.Length == 0)
return;
var action = parts[^1];
switch (action)
{
case "tasklog":
var info = Newtonsoft.Json.JsonConvert.DeserializeObject<LasaTaskAiLog>(payload);
if (info != null)
{
2026-01-12 14:47:37 +08:00
await _app.AddTaskAiLog(info);
2026-01-09 10:57:14 +08:00
}
break;
case "aiachievement":
2026-01-09 10:58:02 +08:00
await _app.AddImgTopic(payload);
2026-01-09 10:57:14 +08:00
break;
}
}
}
}