61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
using Furion.Logging;
|
|
using Microsoft.Extensions.Hosting;
|
|
using NapCatRobotClient.Core.RobotAPI.Dto.Request;
|
|
|
|
namespace NapCatRobotClient.Service.BackGround
|
|
{
|
|
/// <summary>
|
|
/// 灵田结算通知
|
|
/// </summary>
|
|
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<TaskDetailInfo>(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);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|