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(); }