From 2304a1f918d4e2aec529e1b8b312447054963be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Wed, 27 Mar 2024 18:58:03 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=BD=A8=E8=BF=B9=E5=88=B7=E6=96=B0=20at?= =?UTF-8?q?tach=20base64=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventHandlers/TrackRefreshEventHandler.cs | 3 +- .../Helpers/Base64Helper.cs | 33 +++++++++++++++++++ .../ProvideServices/TrackPullService.cs | 15 +++++---- 3 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 src/SJZY.Track.Application/Helpers/Base64Helper.cs 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;