From c7a1d9175364eaf49938cb042f686ccfc631ffd4 Mon Sep 17 00:00:00 2001 From: xiaolipro <2357729423@qq.com> Date: Thu, 19 Sep 2024 15:25:12 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=8E=A8=E9=80=81=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Events/TrackPushEvent.cs | 5 +++ .../Events/TrackUpsertEvent.cs | 5 +++ .../EventHandlers/TrackPushEventHandler.cs | 41 +++++++++++-------- .../EventHandlers/TrackUpsertEventHandler.cs | 1 + .../Services/ProvideServices/TrackService.cs | 5 +++ .../Dtos/TrackContents/TrackContentVO.cs | 5 +++ .../Queries/ProvideQueries.cs | 6 ++- 7 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs index 870e2274..2bc5760c 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackPushEvent.cs @@ -12,6 +12,11 @@ public class TrackPushEvent /// public int SubSystemId { get; set; } + /// + /// 子系统代码 + /// + public string SubSystemCode { get; set; } + /// /// 客户id /// diff --git a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs index 1bd4b033..7de9a33e 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs @@ -7,6 +7,11 @@ public class TrackUpsertEvent /// public int SubSystemId { get; set; } + /// + /// 子系统code + /// + public string SubSystemCode { get; set; } + /// /// 客户id /// diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index a7ce9299..2ce58497 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -6,6 +6,7 @@ using SJZY.Track.Application.Contract.Dtos.TrackPush; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Application.Helpers; +using SJZY.Track.Application.Track2InterfaceRelay; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; @@ -149,15 +150,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe if (items.Count == 0) return; - string asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString()); - var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - InterfaceRelayConst.PushTrackInterfaceCode, - _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe, - attach: asciiString); - - if (r.Code != InterfaceRelayConst.SuccessCode) + using (Track2InterfaceRelaySubSystemContext.Use( + new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode))) { - throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); + var asciiString = Base64Helper.SerializeObject(OptionType.新增.ToString()); + var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( + InterfaceRelayConst.PushTrackInterfaceCode, + _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe, + attach: asciiString); + + if (r.Code != InterfaceRelayConst.SuccessCode) + { + throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); + } } } @@ -189,15 +194,19 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe if (items.Count == 0) return; - string asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString()); - var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( - InterfaceRelayConst.TrackUpdateInterfaceCode, - _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe, - attach: asciiString); - - if (r.Code != InterfaceRelayConst.SuccessCode) + using (Track2InterfaceRelaySubSystemContext.Use( + new Track2InterfaceRelaySubSystemContext(@event.SubSystemCode))) { - throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); + var asciiString = Base64Helper.SerializeObject(OptionType.修改.ToString()); + var r = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync( + InterfaceRelayConst.TrackUpdateInterfaceCode, + _pushConfigs.First().ServiceProviderCode, items, GlobalConst.TrackPushCompletedSubscribe, + attach: asciiString); + + if (r.Code != InterfaceRelayConst.SuccessCode) + { + throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}"); + } } } diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 20755b68..25af80ba 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -178,6 +178,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe { OptionType = @event.IsAdd ? OptionType.新增 : OptionType.修改, SubSystemId = @event.SubSystemId, + SubSystemCode = trackContent.SubSystemCode, CustomId = @event.CustomId, OrderIds = canNextOrderIds.ToArray(), TrackCode = @event.TrackCode, diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index f5f42198..ae1e9946 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -54,6 +54,11 @@ public partial class TrackService : ApplicationService, ITrackService throw new BusinessException(message: $"订单:{input.OrderNo}不存在"); } + if (input.TrackTime < DateTime.Now.AddYears(-100) || input.TrackTime > DateTime.Now.AddYears(100)) + { + throw new BusinessException(message: "轨迹时间不合法"); + } + var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) { diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs index cbea2602..374fa387 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs @@ -2,6 +2,11 @@ namespace SJZY.Track.Domain.Dtos.TrackContents; public class TrackContentVO { + /// + /// 子系统代码 + /// + public string SubSystemCode { get; set; } + /// /// 轨迹状态Id /// diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index 1d90ecf8..291c1034 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -80,14 +80,16 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen { return await Context.Queryable() .LeftJoin((x, y) => x.TrackStatusId == y.Id) + .LeftJoin((x, y, z) => x.SubSystemId == z.Id) .Where(x => x.SubSystemId == subSystemId && x.Code == trackCode) - .Select((x, y) => new TrackContentVO + .Select((x, y, z) => new TrackContentVO { + SubSystemCode = z.Key, TrackStatusId = x.TrackStatusId, TrackStatus = y.Status, TrackContent = x.Content, TrackEnContent = x.EnContent, - IsCompleted = y.IsCompleted + IsCompleted = y.IsCompleted, }) .FirstAsync(); }