From c053a83a27470b30ef1d4bb73712c29d31c0c3bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Mon, 25 Mar 2024 17:39:23 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=8F=AA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=9C=AA=E5=AE=8C=E6=88=90=E7=9A=84=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProvideServices/TrackPushService.cs | 17 ++++++++++++----- .../OrderAggregate/IOrderRepository.cs | 5 +++++ .../Queries/TrackOrderQueries.cs | 2 ++ .../Repositories/OrderRepository.cs | 18 ++++++++++++++++++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs index b0972b56..85e48c02 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs @@ -75,6 +75,8 @@ public class TrackPushService : ApplicationService await _pushCacheService.GetPushContentConfigAsync(order.SubSystemId, order.CustomId, track.TrackContentId); + if (config == null) continue; + var trackPushEvent = new TrackPushEvent { ServiceProviderCode = config.ServiceProviderCode, @@ -113,14 +115,19 @@ public class TrackPushService : ApplicationService [HttpPost("Track/PushWarnForTask")] public async Task PushWarnForTaskAsync() { - var time = DateTime.Now.Subtract(TimeSpan.FromHours(12)); - var orders = await _orderRepository.GetListAsync(x => - !x.IsCompleted && x.QuestionType == 0 && x.LatestPushTime < time); + var orders = await _orderRepository.GetPushWarnOrdersAsync(); - orders.ForEach(x => { x.QuestionType = (int)TrackProblemType.Warn; }); + var time = DateTime.Now.Subtract(TimeSpan.FromHours(12)); + + orders.ForEach(x => + { + x.QuestionType = x.LatestPushTime == null || x.LatestPushTime < time + ? (int)TrackProblemType.Warn + : (int)TrackProblemType.None; + }); await _orderRepository.UpdateRangeAsync(orders, x => new { x.QuestionType }); - return $"成功将{orders.Select(x => x.OrderNo).JoinAsString(",")}置为预警单"; + return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警"; } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs index acc0d4de..10832b40 100644 --- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs @@ -25,6 +25,11 @@ public interface IOrderRepository : IBasicRepository /// Task DeleteOrderAsync(int orderId); + /// + /// 获取推送预警单 + /// + /// + Task> GetPushWarnOrdersAsync(); #region 订单关联 diff --git a/src/SJZY.Track.Repository/Queries/TrackOrderQueries.cs b/src/SJZY.Track.Repository/Queries/TrackOrderQueries.cs index 8d9d2504..841a3555 100644 --- a/src/SJZY.Track.Repository/Queries/TrackOrderQueries.cs +++ b/src/SJZY.Track.Repository/Queries/TrackOrderQueries.cs @@ -1,6 +1,7 @@ using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Dtos.Order; +using SJZY.Track.Domain.Enums; using SJZY.Track.Domain.Queries; using SJZY.Track.Domain.VEntities; using SJZY.Track.Repository.VData.Entitys; @@ -38,6 +39,7 @@ public class TrackOrderQueries : ISugarRepository, ITrackOrderQueries, .WhereIF(input.CustomerId > 0, (a, b, c) => a.CustomId == input.CustomerId) .WhereIF(input.TrackOrderType > 0, (a, b, c) => a.OrderType == input.TrackOrderType) .WhereIF(input.TabType > 0, (a, b, c) => a.QuestionType == input.TabType) + .WhereIF(input.TabType == (int)TrackProblemType.Warn, (a, b, c) => !a.IsCompleted) .OrderByDescending((a, b, c) => a.CreateTime) .Select((a, b, c) => new TrackOrderVO { diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index 26a8ed2b..3d18de17 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -1,6 +1,8 @@ using SJZY.Track.Domain; using SJZY.Track.Domain.Aggregates.OrderAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Dtos.Order; +using SJZY.Track.Domain.Enums; namespace SJZY.Track.Repository.Repositories; @@ -53,6 +55,22 @@ public class OrderRepository : BasicRepository, IOrderRepository, I tran.Complete(); } + public async Task> GetPushWarnOrdersAsync() + { + var errorType = (int)TrackProblemType.Error; + + return await Context.Queryable() + .LeftJoin((a, b) => a.SubSystemId == b.SubSystemId && a.CustomId == b.CustomId) + .Where((a, b) => !b.IsCompleted && b.QuestionType != errorType) + .Select((a, b) => new OrderEntity + { + Id = b.Id, + QuestionType = b.QuestionType, + LatestPushTime = b.LatestPushTime + }) + .ToListAsync(); + } + #region 订单关联 public async Task> GetLinkedOrdersAsync(int orderId) From e5e3b2eccebfc4bd4b95eb4eb7ecdbe4e49c18ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 09:37:19 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix=20=E8=BD=A8=E8=BF=B9=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackPullService.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index 9fd4cd56..f404b238 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -86,10 +86,10 @@ public class TrackPullService : ApplicationService } var orders = await _provideQueries.FindOrderWithServiceProviderAsync(config.ServiceProviderId); + var serviceProviderCode = orders.FirstOrDefault()?.ServiceProviderCode; foreach (var group in orders.GroupBy(x => - new TrackRefreshAttach(x.ServiceProviderId, x.ServiceProviderCode, x.SubSystemId, - x.OrderType))) + new { x.SubSystemId, x.OrderType })) { var data = group.Select(x => new { @@ -98,8 +98,10 @@ public class TrackPullService : ApplicationService // 批量获取轨迹 await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - InterfaceRelayConst.GetTrackInterfaceCode, group.Key.ServiceProviderCode, data, - GlobalConst.TrackRefreshSubscribe, JsonConvert.SerializeObject(group.Key)); + InterfaceRelayConst.GetTrackInterfaceCode, serviceProviderCode, data, + GlobalConst.TrackRefreshSubscribe, + JsonConvert.SerializeObject(new TrackRefreshAttach(config.ServiceProviderId, serviceProviderCode!, + group.Key.SubSystemId, group.Key.OrderType))); } await RedisHelper.Client.SetExAsync(redisKey, config.PullInterval * 60, orders.Count); From 2fd73776af87de22efada6f566ca2310e3700808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 09:42:13 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix=EF=BC=9A=E3=80=90=E3=80=90=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=BD=A8=E8=BF=B9=E8=AE=A2=E5=8D=95=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E3=80=91=E5=88=9B=E5=BB=BA=E4=BA=BA=E5=BC=82=E5=B8=B8=E4=B8=BA?= =?UTF-8?q?system=E3=80=91https://www.tapd.cn/60863849/bugtrace/bugs/view?= =?UTF-8?q?=3Fbug=5Fid=3D1160863849001031387?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Events/TrackUpsertEvent.cs | 5 +++++ .../EventHandlers/TrackUpsertEventHandler.cs | 5 ++--- .../Services/ProvideServices/TrackService.cs | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs index d6fcb03a..c2c2072d 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs @@ -48,4 +48,9 @@ public class TrackUpsertEvent : UpsertTrackInput /// 原轨迹报文 /// public string? OriginTrackData { get; set; } + + /// + /// 操作人 + /// + public string? OperationMan { get; set; } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs index e51481e5..ed4b838c 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs @@ -8,7 +8,6 @@ using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; -using SJZY.UserCenter.HttpApi.Services; using Volo.Abp.DependencyInjection; namespace SJZY.Track.Application.EventHandlers; @@ -135,7 +134,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe IsCanDelete = trackContent.IsCanDelete, OriginTrackContent = @event.OriginTrackContent, OriginTrackData = @event.OriginTrackData, - CreateUser = CurrentUserRequest.CurrentUser.Name, + CreateUser = @event.OperationMan, CreateTime = DateTime.Now }; @@ -146,7 +145,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe track.TrackPlace = @event.TrackPlace; track.TrackTime = @event.TrackTime!.Value; track.TrackTimeZone = @event.TrackTimeZone!.Value; - track.UpdateUser = CurrentUserRequest.CurrentUser.Name; + track.UpdateUser = @event.OperationMan ?? "系统"; track.UpdateTime = DateTime.Now; } diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index 3e03dc21..c21e2a34 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -6,6 +6,7 @@ using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; +using SJZY.UserCenter.HttpApi.Services; namespace SJZY.Track.Application.Services.ProvideServices; @@ -56,6 +57,7 @@ public partial class TrackService : ApplicationService, ITrackService @event.LatestPushTrackContentId = order.LatestPushTrackContentId; @event.CustomId = order.CustomId; @event.IsCompleted = order.IsCompleted; + @event.OperationMan = CurrentUserRequest.CurrentUser.Name; await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event); return true; } From 2520955613f8512d9e2793230ac7981ba3e50c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 10:44:05 +0800 Subject: [PATCH 4/9] =?UTF-8?q?opt=EF=BC=9A=E9=A2=84=E8=AD=A6=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=8E=89=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E4=B8=8D?= =?UTF-8?q?=E8=B6=B312=E5=B0=8F=E6=97=B6=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Repository/Repositories/OrderRepository.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index 3d18de17..bbbdca05 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -62,6 +62,7 @@ public class OrderRepository : BasicRepository, IOrderRepository, I return await Context.Queryable() .LeftJoin((a, b) => a.SubSystemId == b.SubSystemId && a.CustomId == b.CustomId) .Where((a, b) => !b.IsCompleted && b.QuestionType != errorType) + .Where("a.CreateTime < DATE_SUB(now(),INTERVAL 12 hour)") // 过滤掉创建时间不足12小时的 .Select((a, b) => new OrderEntity { Id = b.Id, From 4d9fb2bbfb7df49d7d4cebf64645e48ada509b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 11:06:11 +0800 Subject: [PATCH 5/9] =?UTF-8?q?opt=EF=BC=9A=E5=88=B7=E6=96=B0=E6=9C=80?= =?UTF-8?q?=E5=B0=8FCD=E8=AE=BE=E4=B8=BA60min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackPullService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index f404b238..f5856f91 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -104,6 +104,7 @@ public class TrackPullService : ApplicationService group.Key.SubSystemId, group.Key.OrderType))); } + if (config.PullInterval < 60) config.PullInterval = 60; await RedisHelper.Client.SetExAsync(redisKey, config.PullInterval * 60, orders.Count); } From 9d6937c059ec605f087379ed8af8f3f14adf516e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 11:06:52 +0800 Subject: [PATCH 6/9] =?UTF-8?q?opt:=20cap=E9=87=8D=E5=A4=8D=E6=B6=88?= =?UTF-8?q?=E8=B4=B9CD=E8=AE=BE=E4=B8=BA1h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Application/EventHandlers/CAPFilter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs index fbee07b0..8bea9494 100644 --- a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs +++ b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs @@ -32,7 +32,7 @@ public class CAPFilter : SubscribeFilter throw new BusinessException(_ERROR_CODE, $"检测到重复消费,消费参数:{argumentJsonStr}"); RedisHelper.Client.Set($"CapExcuteFilter:{hash}", 60 * 10, - TimeSpan.FromDays(1).Seconds); // 1天内不允许一模一样的参数重复消费 + TimeSpan.FromHours(1).Seconds); // 1h内不允许一模一样的参数重复消费 } } From 1334637bf253f0240bbb652f3a6a15ec4c19ba91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 14:52:18 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix=20=E6=89=8B=E5=8A=A8=E6=8E=A8=E9=80=81b?= =?UTF-8?q?ug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/TrackDetailsRepository.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs index fa370591..598ab7ba 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs @@ -93,10 +93,12 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract(x => x .Source(s => s.Includes(fd => fd + .Field(f => f.OrderId) .Field(f => f.OrderNo) .Field(f => f.TrackStatus) .Field(f => f.TrackCode) .Field(f => f.TrackContent) + .Field(f => f.TrackContentId) .Field(f => f.TrackPlace) .Field(f => f.TrackTime) .Field(f => f.TrackTimeZone) From 0f495477768b21106708b4fb4f8232055ca905b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 15:19:13 +0800 Subject: [PATCH 8/9] =?UTF-8?q?opt:=20=E6=8E=A8=E9=80=81=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=86=97=E4=BD=99orderNo=EF=BC=8CorderType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Events/TrackPushEvent.cs | 5 +++++ .../EventHandlers/TrackPushEventHandler.cs | 4 +++- .../EventHandlers/TrackUpsertEventHandler.cs | 1 + .../ProvideServices/TrackPushService.cs | 20 +++++++++++++++++-- .../ITrackPushRecordsRepository.cs | 2 ++ .../TrackPushRecordIndex.cs | 10 ++++++++++ .../TrackPushRecordsRepository.cs | 14 +++++++++++++ 7 files changed, 53 insertions(+), 3 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs index 8434072e..92ce75e1 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs @@ -22,6 +22,11 @@ public class TrackPushEvent /// public string OrderNo { get; set; } = null!; + /// + /// 订单类型 + /// + public int OrderType { get; set; } + /// /// 轨迹内容id /// diff --git a/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs index 58ddb13a..a1f9aba4 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs @@ -44,7 +44,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe var isSuccess = res.Code == InterfaceRelayConst.SuccessCode; - // 写推送日志 + // 往es 写推送日志 await _trackPushRecordsRepository.AddAsync(new TrackPushRecordIndex { IndexName = $"{GlobalConst.TrackPushRecordsIndex}-{DateTime.Now:yyyy.MM.dd}", @@ -52,6 +52,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe Message = res.Msg, OptionType = @event.OptionType.ToString(), OrderId = @event.OrderId, + OrderType = @event.OrderType, + OrderNo = @event.OrderNo, TrackStatus = @event.TrackStatus, TrackCode = @event.TrackCode, TrackContent = @event.TrackContent, diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs index ed4b838c..e3276d02 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs @@ -191,6 +191,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe OptionType = optionType, ServiceProviderCode = config.ServiceProviderCode, OrderNo = track.OrderNo, + OrderType = track.OrderType, OrderId = track.OrderId, TrackContentId = config.TrackContentId, TrackStatus = track.TrackStatus, diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs index 85e48c02..272f4c40 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs @@ -5,6 +5,7 @@ using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Enums; using SJZY.UserCenter.HttpApi.Services; @@ -22,16 +23,19 @@ public class TrackPushService : ApplicationService private readonly IOrderRepository _orderRepository; private readonly ITrackPushCacheService _pushCacheService; private readonly ICapPublisher _capPublisher; + private readonly ITrackPushRecordsRepository _trackPushRecordsRepository; public TrackPushService(ITrackPushCacheService pushCacheService, ITrackDetailsRepository trackDetailsRepository , IOrderRepository orderRepository - , ICapPublisher capPublisher) + , ICapPublisher capPublisher + , ITrackPushRecordsRepository trackPushRecordsRepository) { _pushCacheService = pushCacheService; _trackDetailsRepository = trackDetailsRepository; _orderRepository = orderRepository; _capPublisher = capPublisher; + _trackPushRecordsRepository = trackPushRecordsRepository; } /// @@ -47,7 +51,7 @@ public class TrackPushService : ApplicationService var orders = await _orderRepository.GetListAsync(x => x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), x => new { - x.Id, x.OrderNo, x.SubSystemId, x.CustomId + x.Id, x.OrderNo, x.OrderType, x.SubSystemId, x.CustomId }); if (orders.Count == 0) @@ -81,6 +85,7 @@ public class TrackPushService : ApplicationService { ServiceProviderCode = config.ServiceProviderCode, OrderNo = order.OrderNo, + OrderType = order.OrderType, OrderId = order.Id, TrackContentId = config.TrackContentId, TrackStatus = track.TrackStatus, @@ -130,4 +135,15 @@ public class TrackPushService : ApplicationService return $"成功将:{orders.Count(x => x.QuestionType == (int)TrackProblemType.Warn)}个订单置为预警"; } + + /// + /// 获取轨迹推送记录 + /// + /// + /// + [HttpGet("GetTrackPushRecords")] + public async Task> GetTrackPushRecordsAsync(OrderNoInfo input) + { + return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(input.OrderNo, input.OrderType); + } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs index e8115b13..e776b1f4 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushRecordsRepository.cs @@ -15,4 +15,6 @@ public interface ITrackPushRecordsRepository /// /// Task> GetTrackPushRecordsAsync(int orderId); + + Task> GetTrackPushRecordsAsync(string inputOrderNo, int inputOrderType); } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs index 0d178b45..6efa70b5 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushRecordIndex.cs @@ -17,6 +17,16 @@ public class TrackPushRecordIndex : IdBaseIndex /// public int OrderId { get; set; } + /// + /// 订单号 + /// + public string OrderNo { get; set; } = null!; + + /// + /// 订单类型(主数据枚举TrackOrderType) + /// + public int OrderType { get; set; } + /// /// 接口通请求Id /// diff --git a/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs index b537adb1..3847d786 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackPushRecordsRepository.cs @@ -40,4 +40,18 @@ public class TrackPushRecordsRepository : ElasticSearchContextAbstract> GetTrackPushRecordsAsync(string orderNo, int orderType) + { + var data = await Context.SearchAsync(x => x + .Index(GlobalConst.TrackPushRecordsIndex) + .Query(q => + q.Term(t => t.OrderNo.Suffix("keyword"), orderNo) + && q.Term(f => f.OrderType, orderType) + ) + .Size(1000) + .Sort(s => s.Field(f => f.CreateTime, SortOrder.Descending))); + + return data.Documents.ToList(); + } } \ No newline at end of file From f85bc95e190bf7d01cb763dd6c858246d2a99281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Tue, 26 Mar 2024 15:20:00 +0800 Subject: [PATCH 9/9] =?UTF-8?q?add=EF=BC=9A=E3=80=90=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=98=8E=E7=BB=86=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3-=E5=AF=B9=E5=A4=96=E3=80=91https://www.tapd.cn/608638?= =?UTF-8?q?49/prong/tasks/view/1160863849001017119?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackPushService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs index 272f4c40..78611294 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs @@ -141,7 +141,7 @@ public class TrackPushService : ApplicationService /// /// /// - [HttpGet("GetTrackPushRecords")] + [HttpGet("Track/GetTrackPushRecords")] public async Task> GetTrackPushRecordsAsync(OrderNoInfo input) { return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(input.OrderNo, input.OrderType);