using Furion.Logging;
using Microsoft.Extensions.Hosting;
using NapCatRobotClient.Core.RobotAPI.Dto.Request;
namespace NapCatRobotClient.Service.BackGround
{
///
/// 灵田结算通知
///
public class LingTianBackGroundWorker : BackgroundService
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
string[] keys = RedisHelper.Client.Keys($"{RedisPrefix.LingTianKey}*");
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()
{
new MessageItem()
{
Type = "text",
Data = new()
{
Text = $"【灵田结算通知】\r\n该结算奖励了!"
}
},
new MessageItem()
{
Type = "at",
Data = new()
{
QQ = task.UserId
}
}
}
};
_ = RobotAPI.SendGroupText(request);
RedisHelper.Client.Del(key);
}
}
await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
}
}
}
}