Merge branch 'dev' into S04轨迹预警

# Conflicts:
#	src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs
This commit is contained in:
钟喜旺 2024-08-05 16:23:51 +08:00
commit 87138c0b42
4 changed files with 60 additions and 17 deletions

View File

@ -0,0 +1,6 @@
namespace SJZY.Track.Application.Contract.Events;
public class PushWarningEvent
{
public int PageSize { get; set; }
}

View File

@ -0,0 +1,43 @@
using DotNetCore.CAP;
using Microsoft.Extensions.Logging;
using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Consts;
using Volo.Abp.DependencyInjection;
namespace SJZY.Track.Application.CAP.EventHandlers;
public class PushWarningEventHandler : ITransientDependency, ICapSubscribe
{
private readonly ILogger<PushWarningEventHandler> _logger;
private readonly IOrderRepository _orderRepository;
public PushWarningEventHandler(IOrderRepository orderRepository,
ILogger<PushWarningEventHandler> logger)
{
_orderRepository = orderRepository;
_logger = logger;
}
[CapSubscribe(GlobalConst.TrackPushWarning)]
public async Task Handle(PushWarningEvent @event)
{
int total = 0, pageSize = @event.PageSize, waitTime = 1000;
var dateTimes = Enumerable.Range(1, 12).Select(val => DateTime.Now.AddHours(-val)).ToList();
foreach (var dateTime in dateTimes)
{
var rows = 0;
var pageindex = 1;
do
{
rows = await _orderRepository.PushWarnOrdersAsync(pageSize, pageindex, dateTime);
pageindex++;
total += rows;
await Task.Delay(waitTime);
} while (rows != pageSize);
}
_logger.LogInformation(message: "本次预警扫描了:{total}个订单", total);
}
}

View File

@ -18,10 +18,10 @@ namespace SJZY.Track.Application.Services.ProvideServices;
[Route("/ProviderService")]
public class TrackPushService : ApplicationService
{
private readonly IOrderRepository _orderRepository;
private readonly ICapPublisher _capPublisher;
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
private readonly IOrderRepository _orderRepository;
private readonly IHttpClientProxy<IRequestCurrentUserService> _requestCurrentUserService;
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
public TrackPushService(IOrderRepository orderRepository
, ICapPublisher capPublisher
@ -91,23 +91,12 @@ public class TrackPushService : ApplicationService
[HttpPost("Track/PushWarnForTask")]
public async Task<string> PushWarnForTaskAsync()
{
int total = 0, pageSize = 1000, waitTime = 1000;
var dateTimes = Enumerable.Range(1, 12).Select(val => DateTime.Now.AddHours(-val)).ToList();
foreach (var dateTime in dateTimes)
await _capPublisher.PublishAsync(GlobalConst.TrackPushWarning, new PushWarningEvent
{
var rows = 0;
var pageindex = 1;
do
{
rows = await _orderRepository.PushWarnOrdersAsync(pageSize, pageindex, dateTime);
total += rows;
pageindex++;
await Task.Delay(waitTime);
} while (rows != pageSize);
}
PageSize = 1000
});
return $"本次预警扫描了:{total}个订单";
return "推送预警任务已启动";
}
/// <summary>

View File

@ -56,4 +56,9 @@ public partial class GlobalConst
/// 关联订单后补轨迹
/// </summary>
public const string OrderLinkAfterFillTrack = "SJZY.Track.OrderLinkAfterFillTrack";
/// <summary>
/// 推送预警任务
/// </summary>
public const string TrackPushWarning = "SJZY.Track.TrackPushWarning";
}