From 6ea5a977df2b224a105e8b7fb083e1ed089ef772 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 22 Jan 2025 16:11:12 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix:=E8=A1=A5=E5=85=85=E8=A2=AB=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9=E5=86=85=E5=AE=B9=E6=A0=87=E8=AF=86=E4=B8=BA=E5=A4=96?= =?UTF-8?q?=E9=83=A8=E7=9A=84=E8=BD=A8=E8=BF=B9=E5=9C=A8=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=A2=AB=E8=AE=BF=E9=97=AE=E6=97=B6=E5=BA=94?= =?UTF-8?q?=E8=A2=AB=E8=BF=87=E6=BB=A4,byP02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/GetTrackOutput.cs | 1 + .../Services/ProvideServices/TrackService.Query.cs | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs index f5313b3b..edf15090 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs @@ -19,6 +19,7 @@ public class TrackDetail public string Code { get; set; } = null!; public string Status { get; set; } = null!; public string? Content { get; set; } + public string? EnContent { get; set; } public string? OriginContent { get; set; } public string Location { get; set; } = null!; diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index f6768eee..bc140364 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -56,7 +56,9 @@ public partial class TrackService foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); - var trackDetails = group.ToList(); + var trackDetails = group + .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) + .ToList(); item.OrderNo = trackDetails.First().OrderNo; item.TrackDetails = trackDetails.Select(x => new TrackDetail @@ -65,6 +67,7 @@ public partial class TrackService Code = x.TrackCode, Status = x.TrackStatus, Content = x.TrackContent, + EnContent = x.TrackEnContent, OriginContent = x.OriginTrackContent, Location = x.TrackPlace, Time = Math.Abs(x.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1 @@ -142,7 +145,9 @@ public partial class TrackService foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); - var trackDetails = group.ToList(); + var trackDetails = group + .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) + .ToList(); item.OrderNo = trackDetails.First().OrderNo; item.TrackDetails = trackDetails.Select(x => new TrackDetail @@ -151,6 +156,7 @@ public partial class TrackService Code = x.TrackCode, Status = x.TrackStatus, Content = x.TrackContent, + EnContent = x.TrackEnContent, OriginContent = x.OriginTrackContent, Location = x.TrackPlace, Time = x.TrackTime, From 5fef9ee24bcbf6bab4df0832bfb4ee22439635a6 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 22 Jan 2025 16:45:21 +0800 Subject: [PATCH 2/8] =?UTF-8?q?feat:Query=E5=92=8CQueryV2=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=99=84=E4=BB=B6=E8=BF=94=E5=9B=9Eoss=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E4=B8=8B=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/FileItemDto.cs | 5 +++++ .../ProvideServices/TrackService.Query.cs | 22 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs index f483a7ab..d39bf488 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/FileItemDto.cs @@ -11,4 +11,9 @@ public class FileItemDto /// 文件名称 /// public string FileName { get; set; } + + /// + /// 文件下载地址 + /// + public string? DownloadUrl { get; set; } } diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index bc140364..34f56ab8 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Http; +using SJZY.Expand.AliyunOSS; using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; @@ -53,6 +54,13 @@ public partial class TrackService trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); } + var ossKeys = details + .Where(x => x.Files != null && x.Files.Count > 0) + .SelectMany(x => x.Files!.Select(y => y.OssKey)) + .ToArray(); + //根据osskey获取下载地址 + var ossKeyUrlDict = OSSHelper.GetUrlByKeys(ossKeys); + foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); @@ -83,7 +91,8 @@ public partial class TrackService Files = x.Files?.Select(y => new FileItemDto { FileName = y.FileName, - OssKey = y.OssKey + OssKey = y.OssKey, + DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null }).ToList(), TrackPlaceCity = x.TrackPlaceCity, TrackPlaceCityId = x.TrackPlaceCityId, @@ -100,6 +109,7 @@ public partial class TrackService res.Add(item); } + // 排序 var sortedList = await TracksOrdered(res, input, input.SortMethod); @@ -142,6 +152,13 @@ public partial class TrackService trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); } + var ossKeys = details + .Where(x => x.Files != null && x.Files.Count > 0) + .SelectMany(x => x.Files!.Select(y => y.OssKey)) + .ToArray(); + //根据osskey获取下载地址 + var ossKeyUrlDict = OSSHelper.GetUrlByKeys(ossKeys); + foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); @@ -168,7 +185,8 @@ public partial class TrackService Files = x.Files?.Select(y => new FileItemDto { FileName = y.FileName, - OssKey = y.OssKey + OssKey = y.OssKey, + DownloadUrl = ossKeyUrlDict.TryGetValue(y.OssKey, out var url) ? url : null }).ToList(), TrackPlaceCity = x.TrackPlaceCity, TrackPlaceCityId = x.TrackPlaceCityId, From 8deabef406a4dd9e2438c2d377658d2e0150e428 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Thu, 23 Jan 2025 08:56:14 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=9B=A0=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E5=A4=96=E9=83=A8=E8=BD=A8=E8=BF=B9=E7=85=A7=E6=88=90?= =?UTF-8?q?=E7=9A=84=E7=A9=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ProvideServices/TrackService.Query.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index 34f56ab8..7a7fee72 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -67,6 +67,8 @@ public partial class TrackService var trackDetails = group .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) .ToList(); + if (trackDetails.Count == 0) + continue; item.OrderNo = trackDetails.First().OrderNo; item.TrackDetails = trackDetails.Select(x => new TrackDetail @@ -165,6 +167,8 @@ public partial class TrackService var trackDetails = group .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) .ToList(); + if (trackDetails.Count == 0) + continue; item.OrderNo = trackDetails.First().OrderNo; item.TrackDetails = trackDetails.Select(x => new TrackDetail From 204c8fc7b55a2b97ac76ee7bbf92ed0f05768351 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Wed, 5 Feb 2025 10:58:53 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix:=E8=AE=A2=E5=8D=95=E4=BB=93=E5=82=A8?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=BC=93=E5=AD=98=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=AE=BE=E7=BD=AE=E9=94=99=E8=AF=AF=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E9=9D=9E?= =?UTF-8?q?=E5=B8=B8=E9=95=BF=EF=BC=8C=E4=BB=8E=E8=80=8C=E5=B8=A6=E6=9D=A5?= =?UTF-8?q?=E8=BE=83=E9=95=BF=E6=97=B6=E9=97=B4=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refactor:TrackUpsert,补充log解释说明轨迹更新失败原因 --- .../EventHandlers/TrackUpsertEventHandler.cs | 18 +++++++++++------- .../OrderAggregate/IOrderRepository.cs | 4 ++-- .../Repositories/OrderRepository.cs | 15 ++++++++------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index f8d2cc5a..b400bea8 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -144,8 +144,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe return false; } - // todo: 在这里,判断存在性 - return true; } @@ -157,7 +155,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe { // 找不到轨迹内容,直接结束 LogHelper.Warn($"找不到轨迹内容:{@event}", true); - return default; + return null; } //#7001:未来潜在需求,当轨迹内容匹配预设,记录一个标记,保证下刷过程都是使用预设内容 @@ -302,13 +300,15 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe { if (existTracks.Count > 1) { - // todo: 所有的event handle 多写log,取缔注释,特别是continue,return,这种跳出的地方,方便排查问题 _logger.LogInformation("订单存在多条轨迹不允许修改:{@event}", @event); continue; } - // todo:例如这里 - if (track == null) continue; // 不存在不让改 + if (track == null) + { + _logger.LogInformation("订单不存在轨迹不允许修改:{@event}", @event); + continue; // 不存在不让改 + } updateTracks.Add(BuiltUpdateTrack(@event, track, order, trackContent)); operationRecords.Add(BuildOrderOperationRecord(@event, track, order)); @@ -316,7 +316,11 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe else { // 不允许重复轨迹,跳过 - if (!trackContent.IsRepeatable && existTracks.Count > 0) continue; + if (!trackContent.IsRepeatable && existTracks.Count > 0) + { + _logger.LogInformation("订单已经存在不允许重复的轨迹,不允许重复添加:{@event}", @event); + continue; + } insertTracks.Add(BuiltNewTrack(@event, order, trackContent)); } diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs index 467ab9c0..183b02dd 100644 --- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs @@ -15,10 +15,10 @@ public interface IOrderRepository : IBasicRepository /// /// 通过三方平台和三方单号查询订单 /// - /// 三方平台 + /// 三方平台 /// 三方平台单号 /// (主单号id,客户id) - Task<(int MainOrderId, int CustomId)> GetTrackOrderByProviderAndOrderNo(string serviceProvidrCode, string orderNo); + Task<(int MainOrderId, int CustomId)> GetTrackOrderByProviderAndOrderNo(string serviceProviderCode, string orderNo); /// /// 创建订单 diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index b07a00ec..3e5bc514 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -11,12 +11,13 @@ namespace SJZY.Track.Repository.Repositories; public class OrderRepository : BasicRepository, IOrderRepository, ITransientDependency { + //tips:后期提供缓存清理接口 //MemoryCache本身线程安全简单使用,短暂数据不一致可以容忍,每过固定时间强制清除缓存 private static readonly MemoryCache _memoryCache = new(new MemoryCacheOptions()); private static readonly Dictionary _empty = new(); private static readonly Dictionary> _empty2 = new(); - private const int ThirdPartyOrderNumberCacheTimeSpan = 3 * 60; - private const int MainDataEnumCacheTimeSpan = 5 * 60; + private static readonly TimeSpan _thirdPartyOrderNumberCacheTimeSpan = TimeSpan.FromMinutes(3); + private static readonly TimeSpan _mainDataEnumCacheTimeSpan = TimeSpan.FromMinutes(5); private async Task> GetThirdPartyOrderNumberForCacheAsync(int[] orderIds) { @@ -48,7 +49,7 @@ public class OrderRepository : BasicRepository, IOrderRepository, I _memoryCache.Set(key, dict, new MemoryCacheEntryOptions { - AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(ThirdPartyOrderNumberCacheTimeSpan), + AbsoluteExpirationRelativeToNow = _thirdPartyOrderNumberCacheTimeSpan, Size = dict.Count }); return dict; @@ -92,7 +93,7 @@ public class OrderRepository : BasicRepository, IOrderRepository, I _memoryCache.Set(key, dict, new MemoryCacheEntryOptions { - AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(MainDataEnumCacheTimeSpan), + AbsoluteExpirationRelativeToNow = _mainDataEnumCacheTimeSpan, Size = dict.Count }); return dict; @@ -247,12 +248,12 @@ public class OrderRepository : BasicRepository, IOrderRepository, I return pageList; } - public async Task<(int MainOrderId, int CustomId)> GetTrackOrderByProviderAndOrderNo(string serviceProvidrCode, string orderNo) + public async Task<(int MainOrderId, int CustomId)> GetTrackOrderByProviderAndOrderNo(string serviceProviderCode, string orderNo) { var orderList = await Context.Queryable() .LeftJoin((a, b) => a.Id == b.OrderId && b.IsDeleted == false) .Where((a, b) => a.OrderNo == orderNo - || (b.Platform == serviceProvidrCode && b.OrderNumber == orderNo)) + || (b.Platform == serviceProviderCode && b.OrderNumber == orderNo)) .Select((a, b) => new { a.Id, @@ -269,7 +270,7 @@ public class OrderRepository : BasicRepository, IOrderRepository, I var order = orderList.First(); //当出现了多条记录匹配,优先使用外部单匹配提升精确度 - var matchOrder = orderList.FirstOrDefault(x => x.Platform == serviceProvidrCode && x.OrderNumber == orderNo); + var matchOrder = orderList.FirstOrDefault(x => x.Platform == serviceProviderCode && x.OrderNumber == orderNo); return matchOrder != null ? (matchOrder.Id, matchOrder.CustomId) : (order.Id, order.CustomId); From 45bc0cf6df1e274dbabaeb8353723636193fdc2b Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Fri, 7 Feb 2025 15:58:52 +0800 Subject: [PATCH 5/8] =?UTF-8?q?i18n:=E8=A1=A5=E5=85=85=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E5=9B=BD=E9=99=85=E5=8C=96=E5=86=85=E5=AE=B9?= =?UTF-8?q?=20refactor:=20=E8=BD=A8=E8=BF=B9=E6=98=8E=E7=BB=86=E5=BC=83?= =?UTF-8?q?=E7=94=A8IsVisibility=E5=AD=97=E6=AE=B5=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9EIsExternal=E5=AD=97=E6=AE=B5=E6=9B=BF=E4=BB=A3=20?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9=E4=B8=8A=E7=9A=84=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AF=B9=E5=A4=96=E4=BD=9C=E7=94=A8=EF=BC=9A=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=BD=A8=E8=BF=B9=E6=97=B6=E5=A6=82=E6=9E=9C=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AF=B9=E5=A4=96=E5=AD=97=E6=AE=B5=E7=95=99null?= =?UTF-8?q?=EF=BC=8C=E5=88=99=E4=BB=A5=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=B8=8A=E7=9A=84=E3=80=90=E6=98=AF=E5=90=A6=E5=AF=B9=E5=A4=96?= =?UTF-8?q?=E3=80=91=E5=80=BC=E5=81=9A=E4=B8=BA=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E3=80=82IsExternal=E4=BD=9C=E7=94=A8?= =?UTF-8?q?=EF=BC=9A=E5=9C=A8=E6=9F=A5=E8=AF=A2=E8=BD=A8=E8=BF=B9=E6=97=B6?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=A6=82=E6=9E=9C=E6=98=AF=E5=A4=96=E9=83=A8?= =?UTF-8?q?=E5=AD=90=E7=B3=BB=E7=BB=9F=EF=BC=8C=E5=88=99=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E6=8E=89=E6=98=AF=E5=90=A6=E5=AF=B9=E5=A4=96=E4=B8=BAfalse?= =?UTF-8?q?=E7=9A=84=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProvideServices/BatchUpsertTrackInput.cs | 8 +++- .../ProvideServices/GetOrderDetailsInput.cs | 11 +++-- .../Dtos/ProvideServices/GetTrackOutput.cs | 7 +++ .../Dtos/ProvideServices/UpsertTrackInput.cs | 8 +++- .../Events/TrackChangeEto.cs | 6 +++ .../Events/TrackUpsertEvent.cs | 6 +++ .../Services/IBroadcastingService.cs | 11 +---- .../EventHandlers/TrackDeleteEventHandler.cs | 1 + .../EventHandlers/TrackUpsertEventHandler.cs | 10 ++-- .../Localization/Resources/en.json | 5 +- .../Localization/Resources/zh.json | 5 +- .../Rabbit/TrackRefreshEventHandler.cs | 8 +++- .../Broadcasting/BroadcastingService.cs | 20 ++------ .../ProvideServices/TrackService.Query.cs | 48 +++---------------- .../Services/ProvideServices/TrackService.cs | 1 + .../Services/TrackOrders/TrackOrderService.cs | 2 +- .../ITrackDetailsEsRepository.cs | 2 + .../TrackDetailsIndex.cs | 6 +++ .../Dtos/TrackContents/TrackContentVO.cs | 5 ++ .../Repositories/TrackContentRepository.cs | 1 + .../Repositories/TrackDetailsEsRepository.cs | 18 ++++++- 21 files changed, 103 insertions(+), 86 deletions(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs index 276ad83b..bd7a5c2f 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs @@ -44,9 +44,15 @@ public class BatchUpsertTrackInput : OrderNosInfo /// /// 客户是否可见 /// - [Required] + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外(可选的) + /// 如果未填则按照【轨迹内容】中的【是否可见】做为默认值 + /// + public bool? IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// 批量新增时使用指定轨迹来源,更新时无需指定 diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs index 23cdaec4..7aab1d65 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetOrderDetailsInput.cs @@ -72,6 +72,12 @@ public class TrackOrderDetailDto /// public float TrackTimeZoneValue { get; set; } + /// + /// 客户是否可见 + /// + [Obsolete("废弃的,请使用IsExternal")] + public bool IsVisibility { get; set; } + /// /// 是否对外 /// @@ -87,11 +93,6 @@ public class TrackOrderDetailDto /// public string? CreateUser { get; set; } - /// - /// 客户是否可见 - /// - public bool IsVisibility { get; set; } - /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs index edf15090..e03a46f0 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackOutput.cs @@ -36,13 +36,20 @@ public class TrackDetail /// /// 是否对外 /// + [Obsolete("废弃的,请使用IsExternal")] public bool IsDisplay { get; set; } /// /// 客户是否可见 /// + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外 + /// + public bool IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs index def0e322..961841a6 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs @@ -49,9 +49,15 @@ public class UpsertTrackInput : OrderNoInfo /// /// 客户是否可见 /// - [Required] + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外(可选的) + /// 如果未填则按照【轨迹内容】中的【是否可见】做为默认值 + /// + public bool? IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs b/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs index 6319446e..804ad6d5 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackChangeEto.cs @@ -72,8 +72,14 @@ public class TrackChangeEto /// /// 客户是否可见 /// + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外 + /// + public bool IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs index fef7ab3f..182672cb 100644 --- a/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs +++ b/src/SJZY.Track.Application.Contract/Events/TrackUpsertEvent.cs @@ -74,8 +74,14 @@ public class TrackUpsertEvent /// /// 客户是否可见 /// + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外 + /// + public bool? IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Application.Contract/Services/IBroadcastingService.cs b/src/SJZY.Track.Application.Contract/Services/IBroadcastingService.cs index 782126bb..238f015b 100644 --- a/src/SJZY.Track.Application.Contract/Services/IBroadcastingService.cs +++ b/src/SJZY.Track.Application.Contract/Services/IBroadcastingService.cs @@ -10,17 +10,10 @@ public interface IBroadcastingService : ITransientDependency /// 轨迹变更广播(新增/修改) /// /// + /// /// /// - void TrackChangePublicTopic(TrackUpsertEvent eto, string subSystemCode, string trackStatusCode); - - /// - /// 轨迹变更广播(删除) - /// - /// - /// - /// - void TrackChangePublicTopic(TrackDeleteEvent eto, OrderIdentifier[] orderIdentifiers, string trackCode, string trackStatusCode, string subSystemCode); + void TrackChangePublicTopic(TrackUpsertEvent eto,bool contentIsExternal, string subSystemCode, string trackStatusCode); /// /// 轨迹变更广播(删除) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index e1c416d0..5ce98e81 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -339,6 +339,7 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe Remarks = track.Remarks, Source = track.Source, IsVisibility = track.IsVisibility, + IsExternal = track.IsExternal, TrackTimeZone = track.TrackTimeZone, TrackTime = track.TrackTime, TrackPlace = track.TrackPlace, diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index b400bea8..8a657ad2 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -56,7 +56,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe // 处理广播事件 if (content != null && (content.IsToMq || @event.IsToMq)) - _ = EnsureWriteAfterPublicTopicAsync(@event, content.SubSystemCode, content.TrackStatusCode); + _ = EnsureWriteAfterPublicTopicAsync(@event, content.IsExternal, content.SubSystemCode, content.TrackStatusCode); if (canNextOrderIds.Count == 0) return; // 根据订单关联关系异步向下刷(异步) @@ -363,6 +363,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe track.TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent; //S06新增 track.IsVisibility = @event.IsVisibility; + //当传入的IsExternal为空,则使用轨迹内容中的IsExternal + track.IsExternal = @event.IsExternal ?? trackContent.IsExternal; track.Remarks = @event.Remarks ?? GlobalConst.EmptyString; track.Files = @event.Files?.Select(x => new FileItem { @@ -410,6 +412,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe TrackEnContent = @event.EnStatus ?? trackContent.TrackEnContent, //S06新增轨迹明细字段 IsVisibility = @event.IsVisibility, + //当传入的IsExternal为空,则使用轨迹内容中的IsExternal + IsExternal = @event.IsExternal ?? trackContent.IsExternal, Source = @event.Source, Remarks = @event.Remarks ?? GlobalConst.EmptyString, Files = @event.Files?.Select(x => new FileItem @@ -450,7 +454,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe }; } - private async Task EnsureWriteAfterPublicTopicAsync(TrackUpsertEvent @event, string subSystemCode, string statusCode) + private async Task EnsureWriteAfterPublicTopicAsync(TrackUpsertEvent @event, bool contentIsExternal, string subSystemCode, string statusCode) { //理想情况在写入之后1s会刷盘 https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-refresh.html //增加一个版本号来确定是否真的变更了 @@ -459,6 +463,6 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe //方案2:考虑强制刷盘(对es压力大)后发送 //方案3:采用一个较大延时,不查询直接发 await Task.Delay(1000); - _broadcastingService.TrackChangePublicTopic(@event, subSystemCode, statusCode); + _broadcastingService.TrackChangePublicTopic(@event, contentIsExternal, subSystemCode, statusCode); } } diff --git a/src/SJZY.Track.Application/Localization/Resources/en.json b/src/SJZY.Track.Application/Localization/Resources/en.json index c7d369bc..dd092982 100644 --- a/src/SJZY.Track.Application/Localization/Resources/en.json +++ b/src/SJZY.Track.Application/Localization/Resources/en.json @@ -10,6 +10,7 @@ "TrackFlagExist": "Duplicate code or flag in the current subsystem", "IsExistTrackPullConfig": "Track Pull The template has been bound. Delete the track pull before deleting the template", "IsExistTrackStatus": "The trajectory content has been bound to the trajectory status. Delete the trajectory content before deleting the trajectory status", - "IsExistTrackFlag": "The track content has been bound to the track mark. Delete the track content before deleting the track mark" + "IsExistTrackFlag": "The track content has been bound to the track mark. Delete the track content before deleting the track mark", + "IsTrackPushConfigAny": "This subsystem already has the push mapping of this customer, and it cannot be added repeatedly" } -} \ No newline at end of file +} diff --git a/src/SJZY.Track.Application/Localization/Resources/zh.json b/src/SJZY.Track.Application/Localization/Resources/zh.json index 38db9ebb..b33ac103 100644 --- a/src/SJZY.Track.Application/Localization/Resources/zh.json +++ b/src/SJZY.Track.Application/Localization/Resources/zh.json @@ -10,6 +10,7 @@ "TrackFlagExist": "当前子系统下代码或标记重复", "IsExistTrackPullConfig": "轨迹拉取已绑定了该模版,请先删除轨迹拉取再删除该模版", "IsExistTrackStatus": "轨迹内容已经绑定了该轨迹状态,请先删除轨迹内容后再删除该轨迹状态", - "IsExistTrackFlag": "轨迹内容已经绑定了该轨迹标记,请先删除轨迹内容后再删除该轨迹标记" + "IsExistTrackFlag": "轨迹内容已经绑定了该轨迹标记,请先删除轨迹内容后再删除该轨迹标记", + "IsTrackPushConfigAny": "这个子系统已经存在这个客户的推送映射,无法重复添加" } -} \ No newline at end of file +} diff --git a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs index 14e80f79..2903eb5e 100644 --- a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs +++ b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs @@ -261,7 +261,9 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler IsAdd = true, //S06新增 IsVisibility = false, - Source = (int)TrackSourceEnum.ExternalServiceProvide, + //服务商轨迹默认不对外 + IsExternal = false, + Source = (int) TrackSourceEnum.ExternalServiceProvide, Remarks = null, Files = null, Content = null, @@ -308,6 +310,8 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler TrackEnContent = GlobalConst.EmptyString, //S06新增轨迹明细字段 IsVisibility = false, + //服务商轨迹默认不对外 + IsExternal = false, Source = (int) TrackSourceEnum.ExternalServiceProvide, Remarks = null, Files = null, @@ -315,7 +319,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler TrackPlaceCityId = null, TrackPlaceProvince = null, TrackPlaceProvinceId = null, - TrackPlaceNation =null, + TrackPlaceNation = null, TrackPlaceNationId = null, TrackPlacePostcode = null, DestinationTimeZone = null, diff --git a/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs b/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs index 48345f81..728fba02 100644 --- a/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs +++ b/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs @@ -23,10 +23,11 @@ public class BroadcastingService : IBroadcastingService /// 轨迹变更广播 /// /// + /// 轨迹内容中的是否对外 /// 子系统代码 /// 轨迹状态代码 /// - public void TrackChangePublicTopic(TrackUpsertEvent eto, string subSystemCode, string trackStatusCode) + public void TrackChangePublicTopic(TrackUpsertEvent eto, bool contentIsExternal, string subSystemCode, string trackStatusCode) { var data = new TrackChangeEto { @@ -42,6 +43,7 @@ public class BroadcastingService : IBroadcastingService Remarks = eto.Remarks, Source = eto.Source, IsVisibility = eto.IsVisibility, + IsExternal = eto.IsExternal ?? contentIsExternal, TrackTimeZone = eto.TrackTimeZone, TrackTime = eto.TrackTime, TrackPlace = eto.TrackPlace, @@ -66,22 +68,6 @@ public class BroadcastingService : IBroadcastingService Encoding.UTF8.GetBytes(data.ToJson())); } - public void TrackChangePublicTopic(TrackDeleteEvent eto, OrderIdentifier[] orderIdentifiers, string trackCode, string trackStatusCode, string subSystemCode) - { - var data = new TrackChangeEto - { - OrderIdentifiers = orderIdentifiers, - TrackStatusCode = trackStatusCode, - TrackCode = trackCode, - OperationMan = eto.OperationMan, - SubSystemId = eto.SubSystemId, - Option = 2 - }; - - _rabbitClientBus.Publish(GlobalConst.TrackChangeExchange, $"TrackChange.{subSystemCode}", - Encoding.UTF8.GetBytes(data.ToJson())); - } - public void TrackChangePublicTopic(TrackChangeEto eto, string subSystemCode) { eto.Option = 2; diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index 7a7fee72..e5b184cb 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -35,25 +35,6 @@ public partial class TrackService //内部子系统不过滤外部轨迹 var isFilterExternal = await HasFilterExternalTrack(); - // 是否对外 - var trackCodes = details.Select(x => x.TrackCode) - .WhereIf(isFilterExternal, x => x != GlobalConst.EmptyString) - .Distinct() - .ToList(); - - var trackContentDic = new Dictionary(); - if (!trackCodes.IsNullOrEmpty()) - { - var trackContents = await _trackContentRepository.GetListAsync(x => - x.SubSystemId == input.SubSystemId && trackCodes.Contains(x.Code), - x => new - { - x.Code, - x.IsExternal - }); - trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); - } - var ossKeys = details .Where(x => x.Files != null && x.Files.Count > 0) .SelectMany(x => x.Files!.Select(y => y.OssKey)) @@ -65,7 +46,7 @@ public partial class TrackService { var item = new GetTrackOutput(); var trackDetails = group - .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) + .WhereIf(isFilterExternal, x => x.IsExternal) .ToList(); if (trackDetails.Count == 0) continue; @@ -86,8 +67,9 @@ public partial class TrackService TimeZone = Math.Abs(x.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1 ? null : input.TimeZone ?? 8, - IsDisplay = trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal, + IsDisplay = x.IsExternal, IsVisibility = x.IsVisibility, + IsExternal = x.IsExternal, Source = x.Source, Remarks = x.Remarks, Files = x.Files?.Select(y => new FileItemDto @@ -135,25 +117,6 @@ public partial class TrackService //内部子系统不过滤外部轨迹 var isFilterExternal = await HasFilterExternalTrack(); - // 是否对外 - var trackCodes = details.Select(x => x.TrackCode) - .WhereIf(isFilterExternal, x => x != GlobalConst.EmptyString) - .Distinct() - .ToList(); - - var trackContentDic = new Dictionary(); - if (!trackCodes.IsNullOrEmpty()) - { - var trackContents = await _trackContentRepository.GetListAsync(x => - x.SubSystemId == input.SubSystemId && trackCodes.Contains(x.Code), - x => new - { - x.Code, - x.IsExternal - }); - trackContents.ForEach(x => trackContentDic.Add(x.Code, x.IsExternal)); - } - var ossKeys = details .Where(x => x.Files != null && x.Files.Count > 0) .SelectMany(x => x.Files!.Select(y => y.OssKey)) @@ -165,7 +128,7 @@ public partial class TrackService { var item = new GetTrackOutput(); var trackDetails = group - .WhereIf(isFilterExternal, x => trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal) + .WhereIf(isFilterExternal, x => x.IsExternal) .ToList(); if (trackDetails.Count == 0) continue; @@ -182,8 +145,9 @@ public partial class TrackService Location = x.TrackPlace, Time = x.TrackTime, TimeZone = x.TrackTimeZone, - IsDisplay = trackContentDic.TryGetValue(x.TrackCode, out var isExternal) && isExternal, + IsDisplay = x.IsExternal, IsVisibility = x.IsVisibility, + IsExternal = x.IsExternal, Source = x.Source, Remarks = x.Remarks, Files = x.Files?.Select(y => new FileItemDto diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index f52e1b17..b7b9e305 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -399,6 +399,7 @@ public partial class TrackService : ApplicationService, ITrackService OperationMan = userInfo.Data.UserName, OperationManId = userInfo.Data.UserId, IsVisibility = input.IsVisibility, + IsExternal = input.IsExternal, Source = input.Source, Remarks = input.Remarks, Files = input.Files, diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index 53bfc8c3..6e709973 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -217,7 +217,7 @@ public class TrackOrderService : ApplicationService foreach (var item in trackDetails) { //如果是外部系统,且轨迹内容不对外则跳过这条轨迹内容 - if (system.SystemProperty == 2 && !item.IsVisibility) + if (system.SystemProperty == 2 && !item.IsExternal) continue; //时间和时区任意一个为空则使用创建时间做为排序参照值 diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs index b434e8b6..48eac8cb 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsEsRepository.cs @@ -35,4 +35,6 @@ public interface ITrackDetailsEsRepository : IElasticsearchClientService> GetDataByIds(string[] ids); Task GetDetailAsync(string orderNo, string trackCode, int orderType, int subSystemId, DateTime trackTime); + + Task MigrateAsync(); } diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs index 02cb6b51..9cb1adec 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs @@ -125,8 +125,14 @@ public class TrackDetailsIndex : IdBaseIndex /// /// 客户是否可见 /// + [Obsolete("废弃的,请使用IsExternal")] public bool IsVisibility { get; set; } + /// + /// 是否对外 + /// + public bool IsExternal { get; set; } + /// /// 数据来源:1外部服务商创建,2内部系统创建,3人工创建 /// diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs index 374787e5..f9a126fb 100644 --- a/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackContents/TrackContentVO.cs @@ -67,6 +67,11 @@ public class TrackContentVO /// public bool IsToMq { get; set; } + /// + /// 是否对外 + /// + public bool IsExternal { get; set; } + /// /// 轨迹内容code /// diff --git a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs index 7db9435d..2c49ff0e 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs @@ -270,6 +270,7 @@ public class TrackContentRepository : BasicRepository, ITrac IsAllowManuallyUpdate = x.IsAllowManuallyUpdate, IsAllowManuallyCreate = x.IsAllowManuallyCreate, IsToMq = y.IsToMq, + IsExternal = x.IsExternal }).ToListAsync(); } } diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs index b9bf22af..46f97255 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsEsRepository.cs @@ -162,6 +162,7 @@ public class TrackDetailsEsRepository : ElasticSearchContextAbstract(m => m + .AutoMap()); + //字段迁移,isVisibility => isExternal + await Context.UpdateByQueryAsync(u => u + .Query(q => q.MatchAll()) + .Script(s=>s.Source("ctx._source.isExternal = ctx._source.isVisibility")) + ); + } } From 60ac19c692c11a27b4a839d988a56beb21edbaf8 Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Sat, 8 Feb 2025 14:22:09 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E6=96=B0=E5=A2=9E/=E6=9B=B4=E6=96=B0=E5=BC=95=E5=8F=91?= =?UTF-8?q?=E7=9A=84=E5=B9=BF=E6=92=AD=E4=B8=AD=EF=BC=8C=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E5=8F=91=E7=94=9F=E6=97=B6=E9=97=B4=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Broadcasting/BroadcastingService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs b/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs index 728fba02..9b790e89 100644 --- a/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs +++ b/src/SJZY.Track.Application/Services/Broadcasting/BroadcastingService.cs @@ -45,7 +45,7 @@ public class BroadcastingService : IBroadcastingService IsVisibility = eto.IsVisibility, IsExternal = eto.IsExternal ?? contentIsExternal, TrackTimeZone = eto.TrackTimeZone, - TrackTime = eto.TrackTime, + TrackTime = eto.NewTrackTime ?? eto.TrackTime, TrackPlace = eto.TrackPlace, TrackStatusCode = trackStatusCode, OrderNo = eto.OrderIdentifiers.First().OrderNo, From 6e059604d6bb2ceb60d1b3ea4225103616b9022c Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Sat, 8 Feb 2025 14:44:49 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9=EF=BC=8C?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E5=AD=90=E7=B3=BB=E7=BB=9Fid=E5=92=8C?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Repository/Queries/ProvideQueries.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index 3dc93cee..a2090ff1 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -104,11 +104,13 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen .Where(x => x.SubSystemId == subSystemId && x.Code == trackCode) .Select((x, y, z, k) => new TrackContentVO { + SubSystemId = x.SubSystemId, SubSystemCode = z.Key, TrackStatusId = x.TrackStatusId, TrackStatus = y.Status, TrackStatusCode = y.Code, TrackContentCode = x.Code, + TrackContentId = x.Id, TrackContent = x.Content, TrackEnContent = x.EnContent, IsCompleted = y.IsCompleted, @@ -135,6 +137,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen TrackStatus = y.Status, TrackStatusCode = y.Code, TrackContentCode = x.Code, + TrackContentId = x.Id, TrackContent = x.Content, TrackEnContent = x.EnContent, IsCompleted = y.IsCompleted, From d585f799bdcb6397a0b8e26d57243a0659f231cb Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Mon, 10 Feb 2025 15:36:57 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E5=86=85=E5=AE=B9=E6=97=B6=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=AF=B9=E5=A4=96=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E6=96=B0=E5=A2=9E/=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=BD=A8=E8=BF=B9=EF=BC=8C=E4=B8=AD=E7=9A=84=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9=E6=98=8E=E7=BB=86=E7=BC=BA=E7=9C=81=E5=80=BC=E9=94=99?= =?UTF-8?q?=E8=AF=AF=20fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=AD=E5=8F=B0?= =?UTF-8?q?=E5=86=85=E9=83=A8=E6=9F=A5=E8=AF=A2=E8=BD=A8=E8=BF=B9=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=B8=AD=E7=9A=84=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AF=B9=E5=A4=96=E6=A0=87=E8=AF=86=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/TrackOrders/TrackOrderService.cs | 18 ------------------ .../Aggregates/OrderAggregate/OrderEntity.cs | 9 ++++++--- .../Queries/ProvideQueries.cs | 2 ++ 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index 6e709973..71487d75 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -141,24 +141,6 @@ public class TrackOrderService : ApplicationService var list = ObjectMapper.Map, List>(trackDetails); - var trackCodes = list.Select(x => x.Code) - .Where(x => x != GlobalConst.EmptyString) - .Distinct() - .ToList(); - - // 是否对外 - if (!trackCodes.IsNullOrEmpty()) - { - var trackContents = await _trackContentRepository.GetListAsync(x => - x.SubSystemId == order.SubSystemId && trackCodes.Contains(x.Code), x => new - { - x.Code, - x.IsExternal - }); - - list.ForEach(x => x.IsExternal = trackContents.FirstOrDefault(y => y.Code == x.Code)?.IsExternal ?? false); - } - // 计算时区 list.ForEach(a => { diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs index eaf3ca71..d6248fbe 100644 --- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs @@ -186,12 +186,15 @@ public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot [SugarColumn(ColumnName = "TemplateCodes")] public string? TemplateCodes { get; set; } - [SugarColumn(IsIgnore = true)] public List OrderFlights { get; set; } + [SugarColumn(IsIgnore = true)] + public List OrderFlights { get; set; } - [SugarColumn(IsIgnore = true)] public List OrderPullStatus { get; set; } + [SugarColumn(IsIgnore = true)] + public List OrderPullStatus { get; set; } [Navigate(NavigateType.OneToMany, nameof(OrderPlatformNumberEntity.OrderId))] - [SugarColumn(IsIgnore = true)] public List OrderPlatformNumbers { get; set; } + [SugarColumn(IsIgnore = true)] + public List OrderPlatformNumbers { get; set; } public void ResetTrackInfo() { diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index a2090ff1..81d6703e 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -115,6 +115,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen TrackEnContent = x.EnContent, IsCompleted = y.IsCompleted, IsRepeatable = x.IsRepeatable, + IsExternal = x.IsExternal, IsAllowManuallyUpdate = x.IsAllowManuallyUpdate, IsAllowManuallyCreate = x.IsAllowManuallyCreate, IsToMq = y.IsToMq || k.IsToMq, @@ -142,6 +143,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, ITransientDepen TrackEnContent = x.EnContent, IsCompleted = y.IsCompleted, IsRepeatable = x.IsRepeatable, + IsExternal = x.IsExternal, IsAllowManuallyUpdate = x.IsAllowManuallyUpdate, IsAllowManuallyCreate = x.IsAllowManuallyCreate, IsToMq = y.IsToMq || k.IsToMq,