diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs index 578c31b2..7f6898d7 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetTrackInput.cs @@ -1,3 +1,5 @@ +using System.ComponentModel.DataAnnotations; + namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; public class GetTrackInput @@ -5,6 +7,8 @@ public class GetTrackInput /// /// 订单类型 /// + [Required] + [Range(1, int.MaxValue)] public int OrderType { get; set; } /// @@ -14,12 +18,14 @@ public class GetTrackInput /// /// 时区 +8 +8.25 -8.5 -9 + /// 不传默认+8 /// - public float TimeZone { get; set; } + public float? TimeZone { get; set; } = 8; /// /// 排序方式 /// + [Required] public SortMethod SortMethod { get; set; } } diff --git a/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs index f79ef0b8..27f73eda 100644 --- a/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs @@ -21,6 +21,10 @@ public class OrderAutoMapperProfile : Profile CreateMap(MemberList.None); CreateMap(MemberList.None); CreateMap, UnifyPageResultDto>(MemberList.None); - CreateMap(MemberList.None); + CreateMap(MemberList.None).ForMember(dest => dest.Id, opt => opt.MapFrom(m => m.OrderId)) + .ForMember(dest => dest.Code, opt => opt.MapFrom(m => m.TrackCode)) + .ForMember(dest => dest.Content, opt => opt.MapFrom(m => m.TrackContent)) + .ForMember(dest => dest.EnContent, opt => opt.MapFrom(m => m.TrackEnContent)) + .ForMember(dest => dest.TrackTimeZone, opt => opt.MapFrom(m => m.TraceTimeZone.ToString())); } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs index 96bb5de5..1abafb1b 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs @@ -22,7 +22,7 @@ public class TrackQueryService : ApplicationService IProvideQueries provideQueries) { _trackDetailsRepository = trackDetailsRepository; - _orderRepository=orderRepository; + _orderRepository = orderRepository; _provideQueries = provideQueries; } @@ -44,7 +44,6 @@ public class TrackQueryService : ApplicationService input.OrderNos = input.OrderNos.Distinct().ToList(); // 单号去重 var details = await _trackDetailsRepository.GetListAsync(input.OrderType, input.OrderNos); - var isTurn = input.TimeZone != 0; foreach (var group in details.GroupBy(x => x.OrderId)) { var item = new GetTrackOutput(); @@ -57,8 +56,8 @@ public class TrackQueryService : ApplicationService Status = x.TrackStatus, Content = x.TrackContent, Location = x.TrackPlace, - Time = isTurn ? x.TrackTime.AddHours(input.TimeZone - x.TraceTimeZone) : x.TrackTime, - TimeZone = isTurn ? input.TimeZone : x.TraceTimeZone + Time = x.TrackTime.AddHours(input.TimeZone!.Value - x.TraceTimeZone), + TimeZone = input.TimeZone!.Value }).ToList(); res.Add(item); @@ -70,6 +69,7 @@ public class TrackQueryService : ApplicationService } #region 轨迹订单明细列表 + /// /// 根据轨迹订单id获取轨迹订单明细列表 /// @@ -87,9 +87,11 @@ public class TrackQueryService : ApplicationService return new List(); } + #endregion - #region 轨迹订单分页 + #region 轨迹订单分页 + /// /// 获取分页的轨迹订单 /// @@ -104,6 +106,7 @@ public class TrackQueryService : ApplicationService ObjectMapper.Map, UnifyPageResultDto>(pageList); return pageResultDto; } + #endregion private async Task TrackDetailSort(List list, GetTrackInput input) diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs index 064f9445..a44a15bc 100644 --- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs +++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs @@ -56,7 +56,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries, .OrderBy(a => a.Sort) .Select((a, b) => new OrderedTrackCodeDto { - TemplateId = a.Id, + TemplateId = a.TrackTemplateId, Code = b.Code }) .ToListAsync(); diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs index a0e6cead..cf78c66f 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs @@ -44,7 +44,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract(x => x .Source(s => s.Includes(fd => fd + .Field(f => f.OrderNo) .Field(f => f.TrackStatus) .Field(f => f.TrackCode) .Field(f => f.TrackContent) @@ -89,33 +90,26 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract?> GetListAsync(int orderId) { - var data = await Context.SearchAsync(x => x - .Source(s => s.Includes(fd => fd - .Field(f => f.TrackStatus) - .Field(f => f.TrackCode) - .Field(f => f.TrackContent) - .Field(f => f.TrackPlace) - .Field(f => f.TrackTime) - .Field(f => f.TraceTimeZone) - )).Query(q => - q.Terms(t => t.Field(f => f.OrderId).Terms(orderId)) - && q.Term(t => t.Field(f => f.IsDeleted).Value(false)) - ) - ); + var data = await Context.SearchAsync(x => x.Query(q => q.Term(t => t.OrderId, orderId)) + .Size(1000) + .Sort(s => s.Field(f => f.TrackTime, SortOrder.Descending))); return data?.Documents?.ToList(); } public async Task DeleteTrackAsync(int orderId, List trackCodes) { - await Context.UpdateByQueryAsync(x => x + var r = await Context.UpdateByQueryAsync(x => x .Query( q => q.Term(t => t.OrderId, orderId) - && q.Terms(t => t.Field(f => f.TrackCode).Terms(trackCodes))) + && q.Terms(t => t.Field(f => f.TrackCode.Suffix("keyword")).Terms(trackCodes))) .Script(s => s .Source("ctx._source.isDeleted = true")) ); + + if (!r.IsValid) + throw new Exception($"轨迹数据删除失败,原因:{r.DebugInformation}"); } public async Task<(List list, long total)> GetListAsync(TrackDetailsQueryInput input)