diff --git a/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs index 8d6e6b07..c3c7cef1 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackRefreshEventHandler.cs @@ -8,6 +8,7 @@ using SJZY.InterfaceRelay.Application.Contracts; using SJZY.Track.Application.Contract.Dtos.TrackPull; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Services; +using SJZY.Track.Application.Helpers; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Enums; @@ -32,7 +33,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe [CapSubscribe(GlobalConst.TrackRefreshSubscribe, Group = GlobalConst.TrackRefreshSubscribe)] public async Task ConsumerAsync(InterfaceRelayForwardReplayEvent @event) { - var attach = JsonConvert.DeserializeObject(@event.Attach); + var attach = Base64Helper.DeSerialize(@event.Attach); if (attach is null) return; var config = await _trackPullCacheService.GetPullParamWithContentConfigAsync(attach.SubSystemId, attach.ServiceProviderId); diff --git a/src/SJZY.Track.Application/Helpers/Base64Helper.cs b/src/SJZY.Track.Application/Helpers/Base64Helper.cs new file mode 100644 index 00000000..4cc20d25 --- /dev/null +++ b/src/SJZY.Track.Application/Helpers/Base64Helper.cs @@ -0,0 +1,33 @@ +using System.Text; +using Newtonsoft.Json; + +namespace SJZY.Track.Application.Helpers; + +public class Base64Helper +{ + /// + /// json序列化base64 + /// + /// + /// + public static string SerializeObject(object obj) + { + var json = JsonConvert.SerializeObject(obj); + var bytes = Encoding.UTF8.GetBytes(json); + + return Convert.ToBase64String(bytes); + } + + /// + /// json反序列化base64 + /// + /// + /// + /// + public static T? DeSerialize(string json) + { + byte[] bytes = Convert.FromBase64String(json); + + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(bytes)); + } +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index 71245edf..d7b0bc94 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -1,10 +1,10 @@ using Microsoft.AspNetCore.Authorization; -using Newtonsoft.Json; using SJZY.Expand.ABP.Core; using SJZY.InterfaceRelay.Application.Contracts; using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Dtos.TrackPull; using SJZY.Track.Application.Contract.Services; +using SJZY.Track.Application.Helpers; using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using Volo.Abp.Http.Client.DynamicProxying; @@ -61,11 +61,11 @@ public class TrackPullService : ApplicationService }).ToList(); var serviceProviderCode = group.FirstOrDefault()!.ServiceProviderCode; + + var attach = Base64Helper.SerializeObject(group.Key); // 批量获取轨迹 await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - "A012", serviceProviderCode, data, GlobalConst.TrackRefreshSubscribe, - JsonConvert.SerializeObject(new TrackRefreshAttach(group.Key.ServiceProviderId, - group.Key.ServiceProviderName, group.Key.SubSystemId, group.Key.OrderType))); + "A012", serviceProviderCode, data, GlobalConst.TrackRefreshSubscribe, attach); } return true; @@ -100,12 +100,13 @@ public class TrackPullService : ApplicationService x.OrderNo }).ToList(); + var attach = Base64Helper.SerializeObject(new TrackRefreshAttach(config.ServiceProviderId, + serviceProviderName!, + group.Key.SubSystemId, group.Key.OrderType)); // 批量获取轨迹 await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( InterfaceRelayConst.GetTrackInterfaceCode, serviceProviderCode, data, - GlobalConst.TrackRefreshSubscribe, - JsonConvert.SerializeObject(new TrackRefreshAttach(config.ServiceProviderId, serviceProviderName!, - group.Key.SubSystemId, group.Key.OrderType))); + GlobalConst.TrackRefreshSubscribe, attach); } if (config.PullInterval < 60) config.PullInterval = 60;