diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchDeleteTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchDeleteTrackInput.cs index 667bf0d3..07db4f25 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchDeleteTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchDeleteTrackInput.cs @@ -8,5 +8,6 @@ public class BatchDeleteTrackInput : OrderNosInfo /// 轨迹code,必填 /// [Required] + [MaxLength(500)] public List TrackCodes { get; set; } = new(); } diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs index 9bbf7dea..d8cab392 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/BatchUpsertTrackInput.cs @@ -27,12 +27,12 @@ public class BatchUpsertTrackInput : OrderNosInfo /// 轨迹发生时间 /// [Required] - public DateTime? TrackTime { get; set; } + public DateTime TrackTime { get; set; } /// /// 轨迹发生时区 /// [Required] [Range(-12, 12)] - public float? TrackTimeZone { get; set; } + public float TrackTimeZone { get; set; } } diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/LinkOrderInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/LinkOrderInput.cs index 274b3358..583aab71 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/LinkOrderInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/LinkOrderInput.cs @@ -4,6 +4,13 @@ namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; public class LinkOrderInput { + /// + /// 子系统id + /// + [Required] + [Range(1, int.MaxValue)] + public int SubSystemId { get; set; } + /// /// false解绑,true关联 /// diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/OrderNoInfo.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/OrderNoInfo.cs index 48392a10..e62cb1b4 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/OrderNoInfo.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/OrderNoInfo.cs @@ -49,5 +49,6 @@ public class OrderNosInfo /// 订单号 /// [Required] + [MaxLength(500)] public List OrderNos { get; set; } = new(); } diff --git a/src/SJZY.Track.Application/CAP/CAPFilter.cs b/src/SJZY.Track.Application/CAP/CAPFilter.cs index 693ead6e..cf67237a 100644 --- a/src/SJZY.Track.Application/CAP/CAPFilter.cs +++ b/src/SJZY.Track.Application/CAP/CAPFilter.cs @@ -3,7 +3,6 @@ using SJZY.Expand.ABP.Core; using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Application.Helpers; -using SJZY.Track.Domain.Consts; namespace SJZY.Track.Application.CAP; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs index 883c9ecc..dac2576e 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/PushWarningEventHandler.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.Logging; using SJZY.Expand.ABP.Core; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Domain.Aggregates.OrderAggregate; -using SJZY.Track.Domain.Consts; using Volo.Abp.DependencyInjection; namespace SJZY.Track.Application.CAP.EventHandlers; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs index bc573988..87589d20 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs @@ -3,7 +3,6 @@ using SJZY.Track.Application.Contract.Dtos.Forewarning; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.OrderAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 91baa677..396aa1d1 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -4,7 +4,6 @@ using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; @@ -29,16 +28,16 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe [CapSubscribe(GlobalConst.TrackDeleteSubscribe, Group = GlobalConst.TrackDeleteSubscribe)] public async Task ConsumerAsync(TrackDeleteEvent @event) { - var dup = @event.Visited.Intersect(@event.OrderIds).ToArray(); - if (dup.Any()) - { - LogHelper.Warn($"删除轨迹时,发现循环依赖:{dup.JoinAsString(",")}", true); - return; - } + if (!CanDelete(@event)) return; await DeleteTrackAsync(@event); // 根据订单关联关系异步向下刷(异步) + await DownByOrderLink(@event); + } + + private async Task DownByOrderLink(TrackDeleteEvent @event) + { var linkedOrders = await _orderRepository.GetLinkedOrdersAsync(@event.OrderIds); foreach (var orderId in @event.OrderIds) { @@ -82,6 +81,26 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe } } + private bool CanDelete(TrackDeleteEvent @event) + { + // 系统创建的轨迹不允许删除 + if (@event.Visited.IsNullOrEmpty() && @event.OperationMan == GlobalConst.SystemUser) + { + LogHelper.Warn($"系统创建的轨迹不允许被删除:{@event}", true); + return false; + } + + // 订单循环关联检测 + var dup = @event.Visited.Intersect(@event.OrderIds).ToArray(); + if (!dup.Any()) + { + return false; + } + + LogHelper.Warn($"删除轨迹时,发现循环依赖:{dup.JoinAsString(",")}", true); + return false; + } + private async Task DeleteTrackAsync(TrackDeleteEvent @event) { // 删除轨迹(删的是同子系统下的单,所以code是统一的) diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushCompletedEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushCompletedEventHandler.cs index 5eac20d7..9a0df561 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushCompletedEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushCompletedEventHandler.cs @@ -5,7 +5,6 @@ using SJZY.Track.Application.Contract.Dtos.TrackPush; using SJZY.Track.Application.Helpers; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Enums; using Volo.Abp.DependencyInjection; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs index fd9de055..f63dd7e2 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs @@ -9,7 +9,6 @@ using SJZY.Track.Application.Helpers; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Enums; using SJZY.Track.Share.Enums; using Volo.Abp.DependencyInjection; diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 7f360ea0..857f1ee1 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -4,7 +4,6 @@ using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; using OrderIdentifier = SJZY.Track.Application.Contract.Events.OrderIdentifier; @@ -134,6 +133,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe { track = new TrackDetailsIndex { + SubSystemId = @event.SubSystemId, OrderId = order.OrderId, OrderNo = order.OrderNo, OrderType = order.OrderType, diff --git a/src/SJZY.Track.Application/GlobalUsing.cs b/src/SJZY.Track.Application/GlobalUsings.cs similarity index 89% rename from src/SJZY.Track.Application/GlobalUsing.cs rename to src/SJZY.Track.Application/GlobalUsings.cs index c222f2ec..5f9509fe 100644 --- a/src/SJZY.Track.Application/GlobalUsing.cs +++ b/src/SJZY.Track.Application/GlobalUsings.cs @@ -1,3 +1,4 @@ +global using SJZY.Track.Domain.Consts; global using Microsoft.AspNetCore.Mvc; global using Microsoft.Extensions.DependencyInjection; global using SJZY.Expand.ABP.Common.Enums; diff --git a/src/SJZY.Track.Application/HostServices/RedisHostService.cs b/src/SJZY.Track.Application/HostServices/RedisHostService.cs index 4fe8ecbd..c7544719 100644 --- a/src/SJZY.Track.Application/HostServices/RedisHostService.cs +++ b/src/SJZY.Track.Application/HostServices/RedisHostService.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.Hosting; using SJZY.Expand.ABP.Core; using SJZY.Track.Domain.Aggregates.ForewarningAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.Forewarning; namespace SJZY.Track.Application.HostServices; diff --git a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs index 77ef8e6e..083aca06 100644 --- a/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs +++ b/src/SJZY.Track.Application/Rabbit/TrackRefreshEventHandler.cs @@ -16,7 +16,6 @@ using SJZY.Track.Application.Contract.Services; using SJZY.Track.Application.Helpers; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Enums; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; @@ -306,6 +305,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler var track = new TrackDetailsIndex { IndexName = $"{GlobalConst.TrackIndex}-{DateTime.Now:yyyy.MM.dd}", + SubSystemId = context.SubSystemId, OrderId = context.OrderId, OrderType = context.OrderType, OrderNo = context.OrderNo, diff --git a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningCacheService.cs b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningCacheService.cs index b9f8c373..1a530095 100644 --- a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningCacheService.cs +++ b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningCacheService.cs @@ -3,7 +3,6 @@ using SJZY.Expand.ABP.Core; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Domain.Aggregates.ForewarningAggregate; using SJZY.Track.Domain.Aggregates.KPIAreaAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.Forewarning; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; diff --git a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs index b1bacde4..14e9d9d5 100644 --- a/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs +++ b/src/SJZY.Track.Application/Services/ForewarningServices/ForewarningNotifyService.cs @@ -4,7 +4,6 @@ using SJZY.Expand.ABP.Core; using SJZY.Track.Application.Contract.Dtos.Forewarning; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.ForewarningAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.Forewarning; using SJZY.Track.Domain.Queries; using Volo.Abp.DependencyInjection; diff --git a/src/SJZY.Track.Application/Services/ForewarningServices/KpiAreaCacheService.cs b/src/SJZY.Track.Application/Services/ForewarningServices/KpiAreaCacheService.cs index 38c8813f..2a841b82 100644 --- a/src/SJZY.Track.Application/Services/ForewarningServices/KpiAreaCacheService.cs +++ b/src/SJZY.Track.Application/Services/ForewarningServices/KpiAreaCacheService.cs @@ -1,6 +1,5 @@ using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.KPIAreaAggregate; -using SJZY.Track.Domain.Consts; using Volo.Abp.DependencyInjection; namespace SJZY.Track.Application.Services.ForewarningServices; diff --git a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.Link.cs b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.Link.cs index 4402fe6d..29712d98 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.Link.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.Link.cs @@ -3,7 +3,6 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; namespace SJZY.Track.Application.Services.ProvideServices; @@ -26,19 +25,15 @@ public partial class OrderService [HttpPost("Order/Link")] public async Task LinkOrderAsync(LinkOrderInput input) { - var order = await _orderRepository.GetFirstAsync(x => - x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, - x => new - { - x.Id, - x.SubSystemId - }); - if (order == default) + var orderId = await _orderRepository.GetFirstAsync(x => + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, + x => x.Id); + if (orderId == default) { throw new BusinessException(message: $"订单:{input.OrderNo}不存在"); } - //tips:循环关联问题再消费时解决 + // tips:循环关联问题再消费时解决 if (input.OrderType == input.LinkOrderType) { throw new BusinessException(message: "不能同级关联"); @@ -51,11 +46,16 @@ public partial class OrderService .Where(x => !x.IsNullOrWhiteSpace() && x != input.OrderNo) .Distinct().ToList(); - // 解绑 - if (!input.IsLink) return await UnLinkOrderAsync(input); - - // 关联订单 - await DoLinkOrderAsync(input, order.Id); + if (!input.IsLink) + { + // 解绑 + await UnLinkOrderAsync(input); + } + else + { + // 关联订单 + await DoLinkOrderAsync(input, orderId); + } return new UnifyResultDto(true, true); } @@ -101,7 +101,7 @@ public partial class OrderService var tracks = await _trackDetailsRepository.GetListAsync(orderId); - // 补轨迹 + // 补轨迹(按子系统、按客户分,同样是为了方便轨迹upsert和push) foreach (var group in existedOrders.GroupBy(x => new { x.SubSystemId, @@ -127,7 +127,7 @@ public partial class OrderService TrackPlace = track.TrackPlace, TrackTime = track.TrackTime, TrackTimeZone = track.TrackTimeZone, - IsAdd = true + IsAdd = true // 存在则不新增 }; await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, fillTrackEvent); @@ -135,7 +135,7 @@ public partial class OrderService } } - private async Task UnLinkOrderAsync(LinkOrderInput input) + private async Task UnLinkOrderAsync(LinkOrderInput input) { var unLinkIds = await _orderLinkQuery.GetListAsync(x => x.OrderType == input.OrderType && x.OrderNo == input.OrderNo && @@ -144,7 +144,5 @@ public partial class OrderService // real del await _orderRepository.UnLinkByIdsAsync(unLinkIds); - - return new UnifyResultDto(true, true); } } diff --git a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs index 6dfc8654..0f5bb56e 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs @@ -4,7 +4,6 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using SJZY.UserCenter.HttpApi.Services; @@ -39,11 +38,9 @@ public partial class OrderService : ApplicationService, IOrderService [HttpPost("Order/Upsert")] public async Task> UpsertAsync(UpsertOrderInput input) { - var subSystemId = input.SubSystemId; - // 校验订单是否已存在,存在则更新 var order = await _orderRepository.GetFirstAsync(x => - x.SubSystemId == subSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo); + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo); if (order != default) { // 订单已存在则视为更新 @@ -66,7 +63,7 @@ public partial class OrderService : ApplicationService, IOrderService } order = ObjectMapper.Map(input); - order.SubSystemId = subSystemId; + order.SubSystemId = input.SubSystemId; order.OrderFlights = ObjectMapper.Map, List>(input.FlightInfos); order.OrderPullStatus = BuiltOrderPullStatus(input.PullConfigInfos); @@ -100,9 +97,9 @@ public partial class OrderService : ApplicationService, IOrderService [HttpPost("Order/Delete")] public async Task> DeleteOrderAsync(DeleteOrderInput input) { - var susSystemId = input.SubSystemId; var orderId = await _orderRepository.GetFirstAsync(x => - x.SubSystemId == susSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => x.Id); + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, + x => x.Id); if (orderId == default) { throw new BusinessException(message: $"订单:{input.OrderNo}不存在"); diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs index 626e667a..421026e4 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPullService.cs @@ -8,7 +8,6 @@ using SJZY.Track.Application.Contract.Dtos.TrackPull; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Application.Helpers; using SJZY.Track.Application.Rabbit; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Queries; using Volo.Abp.Http.Client.DynamicProxying; diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs index 5650b962..1f90f2ce 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackPushService.cs @@ -4,7 +4,6 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Application.Contract.Events; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; -using SJZY.Track.Domain.Consts; using SJZY.UserCenter.HttpApi.Services; using Volo.Abp.Http.Client.DynamicProxying; @@ -44,11 +43,11 @@ public class TrackPushService : ApplicationService input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空 var orders = await _orderRepository.GetArrayAsync(x => - x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && + input.OrderNos.Contains(x.OrderNo), x => new { x.Id, - x.SubSystemId, x.CustomId }); @@ -58,25 +57,20 @@ public class TrackPushService : ApplicationService } var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); - if (userInfo.Code != "200" || userInfo.Data is null) + if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) { - //TODO: log || ex - throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo?.Msg}"); + throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo.Msg}"); } var name = userInfo.Data.UserName; - foreach (var group in orders.GroupBy(x => new - { - x.SubSystemId, - x.CustomId - })) + foreach (var group in orders.GroupBy(x => x.CustomId)) { var trackPushEvent = new TrackPushEvent { OptionType = OptionType.新增, - SubSystemId = group.Key.SubSystemId, - CustomId = group.Key.CustomId, + SubSystemId = input.SubSystemId, + CustomId = group.Key, OrderIds = group.Select(x => x.Id).ToArray(), TrackCode = input.TrackCode, OperationMan = name, @@ -114,7 +108,8 @@ public class TrackPushService : ApplicationService public async Task> GetTrackPushRecordsAsync(OrderNoInfo input) { var orderId = await _orderRepository.GetFirstAsync(x => - x.OrderType == input.OrderType && input.OrderNo == x.OrderNo, x => x.Id); + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && input.OrderNo == x.OrderNo, + x => x.Id); if (orderId == default) { throw new BusinessException(message: "订单不存在"); diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs index 9eb371f2..8ceb3b51 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.Query.cs @@ -1,6 +1,5 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; namespace SJZY.Track.Application.Services.ProvideServices; @@ -20,17 +19,10 @@ public partial class TrackService [HttpPost("Track/Query")] public async Task>> QueryAsync(GetTrackInput input) { - if (input.OrderNos.Count > 500) - { - throw new BusinessException(message: "最多只能查询500单"); - } - - var subSystemId = input.SubSystemId; - var res = new List(); input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空 - var details = await _trackDetailsRepository.GetListAsync(input.OrderType, input.OrderNos); + var details = await _trackDetailsRepository.GetListAsync(input.SubSystemId, input.OrderType, input.OrderNos); // 是否对外 var trackCodes = details.Select(x => x.TrackCode) @@ -42,7 +34,7 @@ public partial class TrackService if (!trackCodes.IsNullOrEmpty()) { var trackContents = await _trackContentRepository.GetListAsync(x => - x.SubSystemId == subSystemId && trackCodes.Contains(x.Code), + x.SubSystemId == input.SubSystemId && trackCodes.Contains(x.Code), x => new { x.Code, diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs index 1ce25fd7..1208365a 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackService.cs @@ -5,7 +5,6 @@ using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackContentAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -using SJZY.Track.Domain.Consts; using SJZY.UserCenter.HttpApi.Services; using Volo.Abp.Http.Client.DynamicProxying; @@ -44,13 +43,10 @@ public partial class TrackService : ApplicationService, ITrackService public async Task UpsertTrackAsync(UpsertTrackInput input) { var order = await _orderRepository.GetFirstAsync(x => - x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, x => new { x.Id, - x.SubSystemId, - x.OrderNo, - x.OrderType, x.CustomId }); if (order == default) @@ -59,25 +55,25 @@ public partial class TrackService : ApplicationService, ITrackService } var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); - if (userInfo.Code != "200" || userInfo.Data is null) + if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) { //TODO: log || ex - throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo?.Msg}"); + throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo.Msg}"); } var name = userInfo.Data.UserName; // 新增/更新轨迹 var @event = ObjectMapper.Map(input); - @event.SubSystemId = order.SubSystemId; + @event.SubSystemId = input.SubSystemId; @event.CustomId = order.CustomId; @event.OrderIdentifiers = new[] { new OrderIdentifier { OrderId = order.Id, - OrderNo = order.OrderNo, - OrderType = order.OrderType, + OrderNo = input.OrderNo, + OrderType = input.OrderType, } }; @event.OperationMan = name; @@ -94,32 +90,19 @@ public partial class TrackService : ApplicationService, ITrackService [HttpPost("Track/Delete")] public async Task DeleteTrackAsync(DeleteTrackInput input) { - var order = await _orderRepository.GetFirstAsync( - x => x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, - x => new - { - x.Id, - x.SubSystemId - }); - if (order == default) + var orderId = await _orderRepository.GetFirstAsync( + x => x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && x.OrderNo == input.OrderNo, + x => x.Id); + if (orderId == default) { throw new BusinessException(message: $"订单:{input.OrderNo}不存在"); } - // todo:判断是否可以删除取决于这条轨迹的创建人是否是系统,这里要改 - // todo:这里重构吧,加入一个追踪id,然后根据追踪id删除,既可以防止误删,又可以减少查询 - var codes = input.TrackCodes; - - if (codes.Count == 0) - { - throw new BusinessException(message: "没有一个轨迹代码是可删的"); - } - var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); - if (userInfo.Code != "200" || userInfo.Data is null) + if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) { //TODO: log || ex - throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo?.Msg}"); + throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo.Msg}"); } var name = userInfo.Data.UserName; @@ -127,9 +110,9 @@ public partial class TrackService : ApplicationService, ITrackService // 删除轨迹 var @event = new TrackDeleteEvent { - OrderIds = new[] { order.Id }, - TrackCodes = codes, - SubSystemId = order.SubSystemId, + OrderIds = new[] { orderId }, + TrackCodes = input.TrackCodes, + SubSystemId = input.SubSystemId, OperationMan = name }; await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event); @@ -146,46 +129,33 @@ public partial class TrackService : ApplicationService, ITrackService [HttpPost("Track/BatchDelete")] public async Task BatchDeleteTrackAsync(BatchDeleteTrackInput input) { - var orders = await _orderRepository.GetListAsync(x => - x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo) - , x => new - { - x.Id, - x.SubSystemId - } - ); + input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空 + var orderIds = await _orderRepository.GetListAsync(x => + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && + input.OrderNos.Contains(x.OrderNo) + , x => x.Id); - // todo:判断是否可以删除取决于这条轨迹的创建人是否是系统,这里要改 - var codes = input.TrackCodes; - - if (codes.Count == 0) + if (orderIds.Count == 0) { - throw new BusinessException(message: "没有一个轨迹代码是可删的"); + throw new BusinessException(message: "订单一个都不存在"); } + // 获取用户name var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); - if (userInfo.Code != "200" || userInfo.Data is null) + if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) { - //TODO: log || ex - throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo?.Msg}"); + throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo.Msg}"); } - var name = userInfo.Data.UserName; - - // todo:重构 - - // // 删除轨迹 - // foreach (var group in codes.GroupBy(x => x.OrderId)) - // { - // var @event = new TrackDeleteEvent - // { - // OrderIds = group.Select(x => x.OrderId).ToArray(), - // TrackCodes = input.TrackCodes, - // SubSystemId = orders.First(x => x.Id == group.Key).SubSystemId, - // OperationMan = name - // }; - // await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event); - // } + // 删除轨迹 + var @event = new TrackDeleteEvent + { + OrderIds = orderIds.ToArray(), + TrackCodes = input.TrackCodes, + SubSystemId = input.SubSystemId, + OperationMan = userInfo.Data.UserName + }; + await _capPublisher.PublishAsync(GlobalConst.TrackDeleteSubscribe, @event); return new UnifyResultDto(true, true); } @@ -200,59 +170,51 @@ public partial class TrackService : ApplicationService, ITrackService public async Task BatchUpsertTrackAsync(BatchUpsertTrackInput input) { input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空 - if (input.OrderNos.Count == 0) - { - throw new BusinessException(message: "订单一个都不存在"); - } - var orders = await _orderRepository.GetListAsync(x => - x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo), + x.SubSystemId == input.SubSystemId && x.OrderType == input.OrderType && + input.OrderNos.Contains(x.OrderNo), x => new { x.Id, x.OrderNo, - x.SubSystemId, x.CustomId }); - var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); - if (userInfo.Code != "200" || userInfo.Data is null) + if (orders.Count == 0) { - //TODO: log || ex - throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo?.Msg}"); + throw new BusinessException(message: "订单一个都不存在"); } - var name = userInfo.Data.UserName; + // 获取用户name + var userInfo = await _requestCurrentUserService.Service.GetCurrentUserBasicInfoAsync(); + if (userInfo.Code != GlobalConst.SuccessCode || userInfo.Data is null) + { + throw new BusinessException(message: $"调用用户中心,获取用户信息失败:{userInfo.Msg}"); + } - foreach (var group in orders.GroupBy(x => new + // 按客户新增/更新轨迹(为了推送轨迹时方便) + foreach (var group in orders.GroupBy(x => x.CustomId)) { - x.SubSystemId, - x.CustomId - })) - { - // 新增/更新轨迹 var @event = new TrackUpsertEvent { - SubSystemId = group.Key.SubSystemId, - CustomId = group.Key.CustomId, - OrderIdentifiers = - group.Select(order => new OrderIdentifier - { - OrderId = order.Id, - OrderNo = order.OrderNo, - OrderType = input.OrderType, - }).ToArray(), + SubSystemId = input.SubSystemId, + CustomId = group.Key, + OrderIdentifiers = group.Select(order => new OrderIdentifier + { + OrderId = order.Id, + OrderNo = order.OrderNo, + OrderType = input.OrderType, + }).ToArray(), IsAdd = input.IsAdd, TrackCode = input.TrackCode, TrackPlace = input.TrackPlace, - TrackTime = input.TrackTime!.Value, - TrackTimeZone = input.TrackTimeZone!.Value, - OperationMan = name + TrackTime = input.TrackTime, + TrackTimeZone = input.TrackTimeZone, + OperationMan = userInfo.Data.UserName }; await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, @event); } - return new UnifyResultDto(true, true); } } diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs index bec1a467..fdc5b12e 100644 --- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs +++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs @@ -61,7 +61,7 @@ public class TrackContentService : ApplicationService var dto = ObjectMapper.Map(detailInfo); if (dto.TrackFlagId == 0) dto.TrackFlagId = null; - return new UnifyResultDto("200", "", dto); + return new UnifyResultDto(GlobalConst.SuccessCode, "", dto); } /// @@ -190,7 +190,7 @@ public class TrackContentService : ApplicationService var entity = ObjectMapper.Map(input); var isTrue = await _trackContentRepository.InsertAsync(entity); - return new UnifyResultDto("200", "新增成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "新增成功", isTrue); } private async Task UpdateAsync(EditTrackContentInput input) @@ -261,7 +261,7 @@ public class TrackContentService : ApplicationService ts.Complete(); } - return new UnifyResultDto("200", "修改成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "修改成功", isTrue); } private async Task DeleteAsync(EditTrackContentInput input) @@ -291,7 +291,7 @@ public class TrackContentService : ApplicationService var isTrue = await _trackContentRepository.SoftDeleteAsync(x => x.Id == input.Id); - return new UnifyResultDto("200", "删除成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除成功", isTrue); } #endregion 私有方法 diff --git a/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs b/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs index e3074d7d..7f2669d1 100644 --- a/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs +++ b/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs @@ -61,7 +61,7 @@ public class TrackFlagService : ApplicationService, ITransientDependency } var dto = ObjectMapper.Map(detailInfo); - return new UnifyResultDto("200", "", dto); + return new UnifyResultDto(GlobalConst.SuccessCode, "", dto); } /// @@ -111,7 +111,7 @@ public class TrackFlagService : ApplicationService, ITransientDependency var entity = ObjectMapper.Map(input); var isTrue = await _trackFlagRepository.InsertAsync(entity); - return new UnifyResultDto("200", "新增成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "新增成功", isTrue); } private async Task UpdateAsync(EditTrackFlagInput input) @@ -145,7 +145,7 @@ public class TrackFlagService : ApplicationService, ITransientDependency ObjectMapper.Map(input, templateEntity); var isTrue = await _trackFlagRepository.UpdateAsync(templateEntity); - return new UnifyResultDto("200", "修改成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "修改成功", isTrue); } private async Task DeleteAsync(EditTrackFlagInput input) @@ -163,7 +163,7 @@ public class TrackFlagService : ApplicationService, ITransientDependency var isTrue = await _trackFlagRepository.SoftDeleteAsync(x => x.Id == input.Id); - return new UnifyResultDto("200", "删除成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除成功", isTrue); } #endregion diff --git a/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs b/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs index 513e675e..d24eeaef 100644 --- a/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs +++ b/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs @@ -88,7 +88,7 @@ public class TrackNodeService : ApplicationService, ITransientDependency if (string.IsNullOrEmpty(input.NodeName) || string.IsNullOrEmpty(input.NodeEnName) || !input.SubSystemId.HasValue) { - return new UnifyResultDto("200", "NodeName,NodeEnName,SubSystemId 必填", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "NodeName,NodeEnName,SubSystemId 必填", false); } var trackNodesEntitys = await _trackNodeRepository.GetListAsync(a => @@ -113,13 +113,13 @@ public class TrackNodeService : ApplicationService, ITransientDependency if (!StringHelper.IsValidEnglishString(input.NodeEnName)) { - return new UnifyResultDto("200", "节点英文名称必须是英文和常用英文符号", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "节点英文名称必须是英文和常用英文符号", false); } var entity = ObjectMapper.Map(input); var isTrue = await _trackNodeRepository.InsertAsync(entity); - return new UnifyResultDto("200", "新增成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "新增成功", isTrue); } private async Task UpdateAsync(EditTrackNodeInput input) @@ -128,13 +128,13 @@ public class TrackNodeService : ApplicationService, ITransientDependency if (string.IsNullOrEmpty(input.NodeName) || string.IsNullOrEmpty(input.NodeEnName)) { - return new UnifyResultDto("200", "NodeName,NodeEnName 必填", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "NodeName,NodeEnName 必填", false); } var trackNodesEntitys = await _trackNodeRepository.GetFirstAsync(a => a.Id == input.Id); if (trackNodesEntitys == null) { - return new UnifyResultDto("200", "没有找到数据,更新失败", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "没有找到数据,更新失败", false); } #endregion @@ -143,14 +143,14 @@ public class TrackNodeService : ApplicationService, ITransientDependency trackNodesEntitys.NodeName = input.NodeName; var isTrue = await _trackNodeRepository.UpdateAsync(trackNodesEntitys); - return new UnifyResultDto("200", "修改成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "修改成功", isTrue); } private async Task DeleteAsync(EditTrackNodeInput input) { if (input.Id <= 0 || !input.SubSystemId.HasValue) { - return new UnifyResultDto("200", "SubSystemId 必填", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "SubSystemId 必填", false); } var trackStatus = @@ -158,11 +158,11 @@ public class TrackNodeService : ApplicationService, ITransientDependency val.Node == input.Id && val.SubSystemId == input.SubSystemId); if (trackStatus != null) { - return new UnifyResultDto("200", "删除失败,该节点已被使用", false); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除失败,该节点已被使用", false); } var rows = await _trackNodeRepository.DeleteById(input.Id); - return new UnifyResultDto("200", "删除成功", rows > 0); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除成功", rows > 0); } #endregion diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index aa33fb92..7b921aaa 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -4,7 +4,6 @@ using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackContentAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.Order; namespace SJZY.Track.Application.Services.TrackOrders; @@ -183,8 +182,6 @@ public class TrackOrderService : ApplicationService [HttpGet("GetOrderOperationsById")] public async Task> GetOrderOperationsByIdAsync(int orderId) { - // todo:分页?dto? return await _orderOperationRecordRepository.GetOrderOperationsByIdAsync(orderId); - ; } } diff --git a/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs b/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs index 8fadc9b6..d923cb07 100644 --- a/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs +++ b/src/SJZY.Track.Application/Services/TrackPull/TrackPullCacheService.cs @@ -3,7 +3,6 @@ using SJZY.Expand.ABP.Core; using SJZY.Track.Application.Contract.Dtos.TrackPull; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.TrackPullAggregate; -using SJZY.Track.Domain.Consts; using SJZY.Track.Domain.Dtos.TrackPull; namespace SJZY.Track.Application.Services.TrackPull; diff --git a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs index 626096a4..7ab3cbfd 100644 --- a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs +++ b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs @@ -2,7 +2,6 @@ using SJZY.Expand.ABP.Core; using SJZY.Track.Application.Contract.Dtos.TrackPush; using SJZY.Track.Application.Contract.Services; using SJZY.Track.Domain.Aggregates.TrackPushAggregate; -using SJZY.Track.Domain.Consts; using Volo.Abp.DependencyInjection; namespace SJZY.Track.Application.Services.TrackPush; diff --git a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs index 62cd75dd..be742360 100644 --- a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs +++ b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs @@ -61,7 +61,7 @@ public class TrackStatusService : ApplicationService, ITransientDependency } var dto = ObjectMapper.Map(detailInfo); - return new UnifyResultDto("200", "", dto); + return new UnifyResultDto(GlobalConst.SuccessCode, "", dto); } /// @@ -118,7 +118,7 @@ public class TrackStatusService : ApplicationService, ITransientDependency var entity = ObjectMapper.Map(input); var isTrue = await _trackStatusRepository.InsertAsync(entity); - return new UnifyResultDto("200", "新增成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "新增成功", isTrue); } private async Task UpdateAsync(EditTrackStatusInput input) @@ -157,7 +157,7 @@ public class TrackStatusService : ApplicationService, ITransientDependency ObjectMapper.Map(input, templateEntity); var isTrue = await _trackStatusRepository.UpdateAsync(templateEntity); - return new UnifyResultDto("200", "修改成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "修改成功", isTrue); } private async Task DeleteAsync(EditTrackStatusInput input) @@ -175,7 +175,7 @@ public class TrackStatusService : ApplicationService, ITransientDependency var isTrue = await _trackStatusRepository.SoftDeleteAsync(x => x.Id == input.Id); - return new UnifyResultDto("200", "删除成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除成功", isTrue); } #endregion diff --git a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs index 56b3ca02..4a93668c 100644 --- a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs +++ b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs @@ -60,7 +60,7 @@ public class TrackTemplateService : ApplicationService } var dto = ObjectMapper.Map(detailInfo); - return new UnifyResultDto("200", "", dto); + return new UnifyResultDto(GlobalConst.SuccessCode, "", dto); } /// @@ -228,7 +228,7 @@ public class TrackTemplateService : ApplicationService var entity = ObjectMapper.Map(input); var isTrue = await _trackTemplateRepository.InsertAsync(entity); - return new UnifyResultDto("200", "新增成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "新增成功", isTrue); } private async Task UpdateAsync(EditTrackTemplateInput input) @@ -259,14 +259,14 @@ public class TrackTemplateService : ApplicationService ObjectMapper.Map(input, templateEntity); var isTrue = await _trackTemplateRepository.UpdateAsync(templateEntity); - return new UnifyResultDto("200", "修改成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "修改成功", isTrue); } private async Task DeleteAsync(EditTrackTemplateInput input) { var isTrue = await _trackTemplateRepository.SoftDeleteAsync(x => x.Id == input.Id); - return new UnifyResultDto("200", "删除成功", isTrue); + return new UnifyResultDto(GlobalConst.SuccessCode, "删除成功", isTrue); } #endregion 私有方法 diff --git a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs index 680114b7..08af0976 100644 --- a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs +++ b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs @@ -11,7 +11,6 @@ using SJZY.InterfaceRelay.Application.Contracts; using SJZY.Track.Application.CAP; using SJZY.Track.Application.Contract; using SJZY.Track.Application.Localization; -using SJZY.Track.Domain.Consts; using SJZY.UserCenter.Contracts; using SJZY.UserCenter.SharedModel; using SJZY.UserCenter.SharedModel.Pub; diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs index 7025ac47..e30046df 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs @@ -8,7 +8,7 @@ public interface ITrackDetailsRepository : IElasticsearchClientService> GetLatestListAsync(int[] eventOrderIds, List trackCodes); - Task> GetListAsync(int orderType, List orderNos); + Task> GetListAsync(int subSystemId, int orderType, List orderNos); Task AnyAsync(int orderId, string originTrackDataHash); diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs index 4369adb7..62560ee4 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs @@ -7,6 +7,11 @@ namespace SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; [ElasticsearchType(RelationName = GlobalConst.TrackIndex)] public class TrackDetailsIndex : IdBaseIndex { + /// + /// 子系统 + /// + public int SubSystemId { get; set; } + /// /// 订单Id /// diff --git a/src/SJZY.Track.Domain/Consts/GlobalConst.cs b/src/SJZY.Track.Domain/Consts/GlobalConst.cs index acdb876e..15bf88b4 100644 --- a/src/SJZY.Track.Domain/Consts/GlobalConst.cs +++ b/src/SJZY.Track.Domain/Consts/GlobalConst.cs @@ -9,4 +9,6 @@ public partial class GlobalConst public const int NormalLimit = 10000; public const float NoneTrackTimeZone = 99999; + + public const string SuccessCode = "200"; } diff --git a/src/SJZY.Track.Domain/Consts/InterfaceRelayConst.cs b/src/SJZY.Track.Domain/Consts/InterfaceRelayConst.cs index 741cfb7a..3cd55b3d 100644 --- a/src/SJZY.Track.Domain/Consts/InterfaceRelayConst.cs +++ b/src/SJZY.Track.Domain/Consts/InterfaceRelayConst.cs @@ -8,7 +8,7 @@ public class InterfaceRelayConst /// /// 接口通成功代码 /// - public const string SuccessCode = "200"; + public const string SuccessCode = GlobalConst.SuccessCode; /// /// 获取轨迹接口代码 diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs index 60bf4d27..c6a68df9 100644 --- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs @@ -104,9 +104,9 @@ public class OrderRepository : BasicRepository, IOrderRepository, I // 软删订单主表 await SoftDeleteAsync(x => x.Id == orderId); - // 软删订单模板 // 软删订单航班 // 软删订单关联关系 + // 软删订单拉取状态 tran.Complete(); } diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs index b472bea7..79031f1b 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs @@ -178,7 +178,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract> GetListAsync(int orderType, List orderNos) + public async Task> GetListAsync(int subSystemId, int orderType, List orderNos) { if (orderNos.Count < 1) return new List(); @@ -195,7 +195,9 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract q.Bool(b => b - .Must(mu => mu + .Must( + mu => mu.Term(f => f.SubSystemId, subSystemId), + mu => mu .Terms(t => t .Field(f => f.OrderNo.Suffix("keyword")) .Terms(orderNos)