From 10f60967701248baeeb1fdbec17a217e30cf5632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E5=96=9C=E6=97=BA?= Date: Wed, 7 Aug 2024 11:57:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=84=E7=90=86=E6=AD=BB=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventHandlers/PushWarningEventHandler.cs | 20 +++++++---------- .../OrderAggregate/IOrderRepository.cs | 4 ++-- .../Repositories/OrderRepository.cs | 22 +++++++------------ 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs index f4c68504..de99f575 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs @@ -32,20 +32,16 @@ public class PushWarningEventHandler : ITransientDependency, ICapSubscribe await RedisHelper.Client.SetAsync(GlobalConst.TrackPushTrackWaringLockKey, 1, TimeSpan.FromHours(3)); int total = 0, pageSize = @event.PageSize, waitTime = 1000; - var dateTimes = Enumerable.Range(1, 12).Select(val => DateTime.Now.AddHours(-val)).ToList(); + var rows = 0; + var pageindex = 0; - foreach (var dateTime in dateTimes) + do { - var rows = 0; - var pageindex = 1; - do - { - rows = await _orderRepository.PushWarnOrdersAsync(pageSize, pageindex, dateTime); - pageindex++; - total += rows; - await Task.Delay(waitTime); - } while (rows != pageSize); - } + rows = await _orderRepository.PushWarnOrdersAsync(pageSize, pageindex); + pageindex++; + total += rows; + await Task.Delay(waitTime); + } while (rows == pageSize); await RedisHelper.Client.DelAsync(GlobalConst.TrackPushTrackWaringLockKey); _logger.LogInformation(message: "本次预警扫描了:{total}个订单", total); diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs index 7f7c6d8f..773b2996 100644 --- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs @@ -29,13 +29,13 @@ public interface IOrderRepository : IBasicRepository /// 更新推送预警单 /// /// - Task PushWarnOrdersAsync(int pageSize,DateTime createTime); + Task PushWarnOrdersAsync(int pageSize, DateTime createTime); /// /// 更新推送预警单 /// /// - Task PushWarnOrdersAsync(int pageSize, int pageindex, DateTime createTime); + Task PushWarnOrdersAsync(int pageSize, int pageindex); /// /// 更新缺失标记,时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种 diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index 17d41811..5aca5329 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -1,6 +1,5 @@ using SJZY.Track.Domain; using SJZY.Track.Domain.Aggregates.OrderAggregate; -using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Dtos.Order; namespace SJZY.Track.Repository.Repositories; @@ -81,17 +80,13 @@ AND `a`.`IsDeleted` = 0 AND `b`.`IsDeleted` = 0 limit @pageSize", new { pageSize /// /// /// - public async Task PushWarnOrdersAsync(int pageSize, int pageindex, DateTime createTime) + public async Task PushWarnOrdersAsync(int pageSize, int pageindex) { var ordersToUpdate = await Context.Queryable() - .InnerJoin((b, a) => a.SubSystemId == b.SubSystemId && a.CustomId == b.CustomId) - .Where((b, a) => - !b.IsCompleted - && b.QuestionType != 1 - && b.CreateTime < createTime - && !a.IsDeleted - && !b.IsDeleted) - .Select((b, a) => new { b.LatestPushTime, b.Id, b.QuestionType }) + .Where((b) => !b.IsCompleted + && b.QuestionType != 1 + && !b.IsDeleted) + .Select(b => new { b.LatestPushTime, b.Id, b.QuestionType }) .ToPageListAsync(pageindex, pageSize); var latestPushTimeIds = new List(); @@ -106,10 +101,9 @@ AND `a`.`IsDeleted` = 0 AND `b`.`IsDeleted` = 0 limit @pageSize", new { pageSize else questionZeroIds.AddLast(item.Id); } - int rows = 0; - if (latestPushTimeIds.Count > 0) rows += UpdateOrderQuestionType(2, latestPushTimeIds); - if (questionZeroIds.Count > 0) rows += UpdateOrderQuestionType(0, questionZeroIds); - return rows; + if (latestPushTimeIds.Count > 0) UpdateOrderQuestionType(2, latestPushTimeIds); + if (questionZeroIds.Count > 0) UpdateOrderQuestionType(0, questionZeroIds); + return ordersToUpdate.Count; } private int UpdateOrderQuestionType(int questionType, IEnumerable ids)