From 447ea8ae8f964a809678f566892b4888019a5100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Wed, 6 Mar 2024 10:56:00 +0800 Subject: [PATCH] =?UTF-8?q?fix=E3=80=90S1-=E6=9B=B4=E6=96=B0=E8=BD=A8?= =?UTF-8?q?=E8=BF=B9=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E6=97=B6=E5=8C=BA?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=8C=89=E7=85=A7=E4=BC=A0=E5=8F=82=E6=9D=A5?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E3=80=91https://www.tapd.cn/60863849/bugtrac?= =?UTF-8?q?e/bugs/view=3Fbug=5Fid=3D1160863849001029832?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/ProvideServices/UpsertTrackInput.cs | 19 ++++++++++++++++-- .../AutoMapper/OrderAutoMapperProfile.cs | 10 +++++----- .../EventHandlers/TrackUpsertEventHandler.cs | 10 +++++----- .../ProvideServices/TrackQueryService.cs | 2 +- .../UpsertTrackInputValidation.cs | 13 ------------ .../TrackDetailsIndex.cs | 2 +- .../Repositories/TrackDetailsRepository.cs | 20 +++++++++---------- 7 files changed, 39 insertions(+), 37 deletions(-) delete mode 100644 src/SJZY.Track.Application/Validations/ProviderService/UpsertTrackInputValidation.cs diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs index c2c7b4c6..b62cf77b 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/UpsertTrackInput.cs @@ -22,11 +22,26 @@ public class UpsertTrackInput : OrderNoInfo /// 轨迹发生时间 /// [Required] - public DateTime TrackTime { get; set; } + public DateTime? TrackTime { get; set; } /// /// 轨迹发生时区 /// [Required] - public float TraceTimeZone { get; set; } + [Range(-12, 12)] + public float? TrackTimeZone { get; set; } +} + +public class NotNullAttribute : ValidationAttribute +{ + protected override ValidationResult IsValid(object value, ValidationContext validationContext) + { + if (value == null) + { + return new ValidationResult(ErrorMessage ?? "The field is required.", + new[] { validationContext.MemberName }); + } + + return ValidationResult.Success; + } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs index 5ae0e71d..25cb3b57 100644 --- a/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs @@ -23,10 +23,10 @@ public class OrderAutoMapperProfile : Profile CreateMap(MemberList.None); CreateMap, UnifyPageResultDto>(MemberList.None); CreateMap(MemberList.None).Ignore(dest => dest.TrackTimeZone) - .ForMember(dest => dest.Id, opt => opt.Ignore()) - .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.TrackTimeZoneValue, opt => opt.MapFrom(m => m.TraceTimeZone)); + .ForMember(dest => dest.Id, opt => opt.Ignore()) + .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.TrackTimeZoneValue, opt => opt.MapFrom(m => m.TrackTimeZone)); } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs index fd15e042..67eb29a5 100644 --- a/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/EventHandlers/TrackUpsertEventHandler.cs @@ -83,8 +83,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe TrackContent = trackContent.Content, TrackEnContent = trackContent.EnContent, TrackPlace = @event.TrackPlace, - TrackTime = @event.TrackTime, - TraceTimeZone = @event.TraceTimeZone, + TrackTime = @event.TrackTime!.Value, + TrackTimeZone = @event.TrackTimeZone!.Value, CreateUser = CurrentUserRequest.CurrentUser.Name, CreateTime = DateTime.Now }; @@ -98,8 +98,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe else { track.TrackPlace = @event.TrackPlace; - track.TrackTime = @event.TrackTime; - track.TraceTimeZone = @event.TraceTimeZone; + track.TrackTime = @event.TrackTime!.Value; + track.TrackTimeZone = @event.TrackTimeZone!.Value; track.UpdateUser = CurrentUserRequest.CurrentUser.Name; track.UpdateTime = DateTime.Now; } @@ -115,7 +115,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe TrackEnContent = track.TrackEnContent, TrackPlace = track.TrackPlace, TrackTime = track.TrackTime, - TrackTimeZone = track.TraceTimeZone + TrackTimeZone = track.TrackTimeZone }); // 根据订单关联关系异步向下刷 diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs index a995067c..7b53a713 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs @@ -55,7 +55,7 @@ public class TrackQueryService : ApplicationService Status = x.TrackStatus, Content = x.TrackContent, Location = x.TrackPlace, - Time = x.TrackTime.AddHours(input.TimeZone!.Value - x.TraceTimeZone), + Time = x.TrackTime.AddHours(input.TimeZone!.Value - x.TrackTimeZone), TimeZone = input.TimeZone!.Value }).ToList(); diff --git a/src/SJZY.Track.Application/Validations/ProviderService/UpsertTrackInputValidation.cs b/src/SJZY.Track.Application/Validations/ProviderService/UpsertTrackInputValidation.cs deleted file mode 100644 index ba7e6366..00000000 --- a/src/SJZY.Track.Application/Validations/ProviderService/UpsertTrackInputValidation.cs +++ /dev/null @@ -1,13 +0,0 @@ -using FluentValidation; -using SJZY.Track.Application.Contract.Dtos.ProvideServices; - -namespace SJZY.Track.Application.Validations.ProviderService; - -public class UpsertTrackInputValidation : AbstractValidator, IValidationEnabled -{ - public UpsertTrackInputValidation() - { - RuleFor(x => x.TrackTime).NotNull(); - RuleFor(x => x.TraceTimeZone).NotNull(); - } -} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs index b885e11b..8974dac3 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs @@ -74,7 +74,7 @@ public class TrackDetailsIndex : IdBaseIndex /// /// 轨迹发生时区 /// - public float TraceTimeZone { get; set; } + public float TrackTimeZone { get; set; } /// 删除标记 0正常 1 已删除 public bool IsDeleted { get; set; } diff --git a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs index 191de929..25dee126 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackDetailsRepository.cs @@ -3,7 +3,6 @@ using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ElasticSearch.Services; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Dtos.TrackDetails; -using SJZY.UserCenter.SharedModel.Dtos.PHP.User; namespace SJZY.Track.Repository.Repositories; @@ -53,7 +52,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract(index.Id, u => u .Index(index.IndexName) .Doc(index) - //.Refresh(Refresh.True) // 可选:立即刷新索引使更改立即可见 + //.Refresh(Refresh.True) // 可选:立即刷新索引使更改立即可见 ); if (!r.IsValid) @@ -75,7 +74,7 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract f.TrackContent) .Field(f => f.TrackPlace) .Field(f => f.TrackTime) - .Field(f => f.TraceTimeZone) + .Field(f => f.TrackTimeZone) )) .Query(q => q.Terms(t => t @@ -92,8 +91,8 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract?> GetListAsync(int orderId) { var data = await Context.SearchAsync(x => x.Query(q => q.Term(t => t.OrderId, orderId) - && q.Term(a => a.Field(g => g.IsDeleted).Value(false)) - ) + && q.Term(a => a.Field(g => g.IsDeleted).Value(false)) + ) .Size(1000) .Sort(s => s.Field(f => f.TrackTime, SortOrder.Descending))); @@ -102,11 +101,12 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract?> GetListAsync(List orderIds) { - var data = await Context.SearchAsync(x => x.Query(q => q.Terms(t => t.Field(g => g.OrderId).Terms(orderIds)) - && q.Term(a => a.Field(d => d.IsDeleted).Value(false)) - ) - .Size(10000) - .Sort(s => s.Field(c => c.TrackTime, SortOrder.Descending)) + var data = await Context.SearchAsync(x => x.Query(q => + q.Terms(t => t.Field(g => g.OrderId).Terms(orderIds)) + && q.Term(a => a.Field(d => d.IsDeleted).Value(false)) + ) + .Size(10000) + .Sort(s => s.Field(c => c.TrackTime, SortOrder.Descending)) ); return data?.Documents?.ToList(); }