From 5cd6c4f6c6a80091293f541d2687aca2a87a3359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E5=96=9C=E6=97=BA?= Date: Thu, 1 Aug 2024 09:26:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=A2=84=E8=AD=A6=EF=BC=88=E3=80=8B12?= =?UTF-8?q?=E5=B0=8F=E6=97=B6=E6=B2=A1=E6=9C=89=E6=8E=A8=E9=80=81=E7=9A=84?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProvideServices/TrackPushService.cs | 4 +- .../OrderAggregate/IOrderRepository.cs | 6 +++ .../Repositories/OrderRepository.cs | 45 +++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs index c9a53360..fe78e2dd 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs @@ -98,10 +98,12 @@ public class TrackPushService : ApplicationService foreach (var dateTime in dateTimes) { var rows = 0; + var pageindex = 1; do { - rows = await _orderRepository.PushWarnOrdersAsync(pageSize,dateTime); + rows = await _orderRepository.PushWarnOrdersAsync(pageSize,pageindex,dateTime); total+=rows; + pageindex++; await Task.Delay(waitTime); }while (rows!= pageSize); } diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs index 746cf6b5..7f7c6d8f 100644 --- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs @@ -31,6 +31,12 @@ public interface IOrderRepository : IBasicRepository /// Task PushWarnOrdersAsync(int pageSize,DateTime createTime); + /// + /// 更新推送预警单 + /// + /// + Task PushWarnOrdersAsync(int pageSize, int pageindex, DateTime createTime); + /// /// 更新缺失标记,时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种 /// diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index ff1fdfdf..ef481d06 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -1,5 +1,6 @@ using SJZY.Track.Domain; using SJZY.Track.Domain.Aggregates.OrderAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.Order; @@ -73,6 +74,50 @@ WHERE `b`.`IsCompleted` = 0 AND `b`.`QuestionType` != 1 AND `b`.`CreateTime` < @ AND `a`.`IsDeleted` = 0 AND `b`.`IsDeleted` = 0 limit @pageSize", new { pageSize,createTime }); } + /// + /// 更新推送预警单 + /// + /// + /// + /// + /// + public async Task PushWarnOrdersAsync(int pageSize,int pageindex, DateTime createTime) + { + var ordersToUpdate = await Context.Queryable() + .LeftJoin((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) => b) + .ToPageListAsync(pageindex,pageSize); + + var latestPushTimeIds = new LinkedList(); + var questionZeroIds = new LinkedList(); + foreach (var item in ordersToUpdate) + { + var questionType = item.LatestPushTime == null + || item.LatestPushTime < DateTime.Now.AddHours(-12) ? 2 : 0; + if(item.QuestionType== questionType) continue; + if(questionType==2) latestPushTimeIds.AddLast(item.Id); + 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; + } + + private int UpdateOrderQuestionType(int questionType, IEnumerable ids) + { + var idsString = string.Join(",", ids); + return Context.Ado.ExecuteCommand( + $"UPDATE `t_order` SET `QuestionType` = @questionType ,UpdateTime= current_timestamp WHERE `Id` IN ({idsString})", new { questionType }); + } + #region 订单关联 public async Task> GetLinkedOrdersAsync(int[] orderIds) From 1931ffda887d31630bdba1290a05a2329fdfdf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E5=96=9C=E6=97=BA?= Date: Thu, 1 Aug 2024 17:18:50 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E5=85=9C=E5=BA=95=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/TrackPull/GetTrackPullContentDetailOutputVO.cs | 5 +++++ .../Repositories/TrackPullConfigRepository.cs | 1 + 2 files changed, 6 insertions(+) diff --git a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentDetailOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentDetailOutputVO.cs index 05d748fe..ea5f1d27 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentDetailOutputVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullContentDetailOutputVO.cs @@ -68,4 +68,9 @@ public class GetTrackPullContentDetailOutputVO /// 是否完结 /// public bool IsCompleted { get; set; } + + /// + /// 轨迹时区兜底地址值 + /// + public int? TrackTimePlaceValue { get; set; } } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs index 41d9053b..2c313138 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs @@ -87,6 +87,7 @@ public class TrackPullConfigRepository : BasicRepository, { Id = pullContent.Id, Code = trackContent.Code + "-" + trackContent.Content, + TrackTimePlaceValue = pullContent.TrackZonePlaceValue, }, true) .Mapper(x => {