diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshAttach.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshAttach.cs deleted file mode 100644 index ae47f35a..00000000 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshAttach.cs +++ /dev/null @@ -1,32 +0,0 @@ -namespace SJZY.Track.Application.Contract.Dtos.TrackPull; - -public class TrackRefreshAttach -{ - public TrackRefreshAttach(int serviceProviderId, string serviceProviderCode, int subSystemId, int orderType) - { - ServiceProviderId = serviceProviderId; - ServiceProviderCode = serviceProviderCode; - SubSystemId = subSystemId; - OrderType = orderType; - } - - /// - /// 服务商id - /// - public int ServiceProviderId { get; set; } - - /// - /// 服务商code - /// - public string ServiceProviderCode { get; set; } - - /// - /// 订单类型(主数据枚举TrackOrderType) - /// - public int OrderType { get; set; } - - /// - /// 子系统id - /// - public int SubSystemId { get; set; } -} \ No newline at end of file diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshDto.cs new file mode 100644 index 00000000..d8d476d2 --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackRefreshDto.cs @@ -0,0 +1,16 @@ +using SJZY.Track.Application.Contract.Dtos.ProvideServices; + +namespace SJZY.Track.Application.Contract.Dtos.TrackPull; + +public class TrackRefreshDto : OrderNoInfo +{ + /// + /// 服务商id + /// + public int ServiceProviderId { get; set; } + + /// + /// 子系统id + /// + public int SubSystemId { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs index e5207ee2..2ce214c6 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs @@ -32,7 +32,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe public async Task ConsumerAsync(InterfaceRelayForwardReplayEvent @event) { // tips:attach返回的是服务商id,必有 - var attach = JsonConvert.DeserializeObject(@event.Attach); + var attach = JsonConvert.DeserializeObject(@event.Attach); if (attach is null) return; var config = await _trackPullCacheService.GetPullParamWithContentConfigAsync(attach.SubSystemId, diff --git a/src/SJZY.Track.Application/SJZY.Track.Application.csproj b/src/SJZY.Track.Application/SJZY.Track.Application.csproj index fc1c5423..62282f44 100644 --- a/src/SJZY.Track.Application/SJZY.Track.Application.csproj +++ b/src/SJZY.Track.Application/SJZY.Track.Application.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index b9113abe..10f1d52a 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Authorization; -using Newtonsoft.Json; using SJZY.Expand.ABP.Core; using SJZY.InterfaceRelay.Application.Contracts; using SJZY.Track.Application.Contract.Dtos.ProvideServices; @@ -41,7 +40,6 @@ public class TrackPullService : ApplicationService // todo:罚时? input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空 - // 这里没有区分订单类型,就算的不同类型的单一起刷新了也无所谓 var orders = await _provideQueries.FindOrderWithServiceProviderAsync(input.OrderNos); @@ -50,18 +48,19 @@ public class TrackPullService : ApplicationService throw new BusinessException(message: "一个拉取配置都不存在"); } - foreach (var group in orders.GroupBy(x => - new TrackRefreshAttach(x.ServiceProviderId, x.ServiceProviderCode, x.SubSystemId, x.OrderType))) + foreach (var group in orders.GroupBy(x => x.ServiceProviderCode)) { - var data = group.Select(x => new + var data = group.Select(x => new TrackRefreshDto { - x.OrderNo + OrderType = x.OrderType, + OrderNo = x.OrderNo, + ServiceProviderId = x.ServiceProviderId, + SubSystemId = x.SubSystemId }).ToList(); // 批量获取轨迹 await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - "A012", group.Key.ServiceProviderCode, data, - GlobalConst.TrackRefreshSubscribe, JsonConvert.SerializeObject(group.Key)); + "A012", group.Key, data, GlobalConst.TrackRefreshSubscribe); } return true; @@ -86,19 +85,19 @@ public class TrackPullService : ApplicationService var orders = await _provideQueries.FindOrderWithServiceProviderAsync(config.ServiceProviderId); - foreach (var group in orders.GroupBy(x => - new TrackRefreshAttach(x.ServiceProviderId, x.ServiceProviderCode, x.SubSystemId, - x.OrderType))) + foreach (var group in orders.GroupBy(x => x.ServiceProviderCode)) { - var data = group.Select(x => new + var data = group.Select(x => new TrackRefreshDto { - x.OrderNo + OrderType = x.OrderType, + OrderNo = x.OrderNo, + ServiceProviderId = x.ServiceProviderId, + SubSystemId = x.SubSystemId }).ToList(); // 批量获取轨迹 await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - "A012", group.Key.ServiceProviderCode, data, - GlobalConst.TrackRefreshSubscribe, JsonConvert.SerializeObject(group.Key)); + "A012", group.Key, data, GlobalConst.TrackRefreshSubscribe); } await RedisHelper.Client.SetExAsync(redisKey, config.PullInterval * 60, 1);