using Furion.Logging;
using Microsoft.Extensions.Hosting;
using NapCatRobotClient.Core.RobotAPI.Dto.Request;
namespace NapCatRobotClient.Service.BackGround
{
///
/// 秘境结算通知
///
public class MijingBackGroundWorker : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
string[] keys = RedisHelper.Client.Keys($"{RedisPrefix.MiJingKey}*");
foreach (string key in keys)
{
string json = RedisHelper.Client.Get(key);
if (string.IsNullOrEmpty(json)) continue;
TaskDetailInfo task = JsonConvert.DeserializeObject(json);
if (task.TriggerTime <= DateTime.Now)
{
GroupSendMessageRequest request = new ()
{
GroupId = task.GroupId,
Message =
[
new MessageItem
{
Type = "text",
Data = new() { Text = $"【秘境结算通知】\r\n探索已完成,该结算奖励了!({task.Minutes} 分钟)" }
},
new MessageItem
{
Type = "at",
Data = new() { QQ = task.UserId }
}
]
};
_ = RobotAPI.SendGroupText(request);
RedisHelper.Client.Del(key);
}
}
await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
}
}
}
}