diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackOrder/TrackPushRecordOutput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackOrder/TrackPushRecordOutput.cs new file mode 100644 index 00000000..bc136ca0 --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackOrder/TrackPushRecordOutput.cs @@ -0,0 +1,75 @@ +namespace SJZY.Track.Application.Contract.Dtos.TrackOrder; + +public class TrackPushRecordOutput +{ + /// + /// 订单Id + /// + public int OrderId { get; set; } + + /// + /// 接口通请求Id + /// + public Guid RequestId { get; set; } + + /// + /// 信息 + /// + public string Message { get; set; } = null!; + + /// + /// 操作类型 + /// + public string OptionType { get; set; } = null!; + + /// + /// 轨迹状态 + /// + public string TrackStatus { get; set; } = null!; + + /// + /// 轨迹内容代码 + /// + public string TrackCode { get; set; } = null!; + + /// + /// 轨迹内容 + /// + public string TrackContent { get; set; } = null!; + + /// + /// 轨迹发生地 + /// + public string TrackPlace { get; set; } = null!; + + /// + /// 轨迹发生时间 + /// + public DateTime TrackTime { get; set; } + + /// + /// 轨迹发生时区 + /// + public float TrackTimeZone { get; set; } + + /// + /// 轨迹发生时区 + /// + public string TrackGTMTimeZone { get; set; } = null!; + + /// + /// 是否成功 + /// + public bool IsSuccess { get; set; } + + /// + /// 推送内容(json) + /// + public string PushContent { get; set; } = null!; + + /// 创建人 + public string? CreateUser { get; set; } + + /// 创建时间 + public DateTime CreateTime { get; set; } +} \ 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 8befae94..dbe6b8f6 100644 --- a/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/OrderAutoMapperProfile.cs @@ -1,8 +1,10 @@ using AutoMapper; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Application.Contract.Dtos.ProvideServices; +using SJZY.Track.Application.Contract.Dtos.TrackOrder; using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; using SJZY.Track.Domain.Dtos.Order; using SJZY.Track.Domain.Enums; using Volo.Abp.AutoMapper; @@ -34,6 +36,8 @@ public class OrderAutoMapperProfile : Profile .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)); + + CreateMap(MemberList.None); } /// diff --git a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs index 5f3c1179..477456cb 100644 --- a/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs +++ b/src/SJZY.Track.Application/Services/TrackOrders/TrackOrderService.cs @@ -160,8 +160,20 @@ public class TrackOrderService : ApplicationService /// /// 订单id [HttpGet("GetTrackPushRecords")] - public async Task> GetTrackPushRecordsAsync(int orderId) + public async Task> GetTrackPushRecordsAsync(int orderId) { - return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(orderId); + var records = await _trackPushRecordsRepository.GetTrackPushRecordsAsync(orderId); + + var res = ObjectMapper.Map, List>(records); + + res.ForEach(x => + { + int hours = (int)x.TrackTimeZone; // 提取整数部分作为小时 + int minutes = (int)((x.TrackTimeZone - hours) * 60); // 将小数部分乘以 60 转换为分钟 + x.TrackGTMTimeZone = + $"GTM {(x.TrackTimeZone >= 0 ? "+" : "-")}{new TimeSpan(hours, minutes, 0).ToString().RemovePostFix(":00")}"; + }); + + return res; } } \ No newline at end of file