diff --git a/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs b/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs index dff48044..b621a191 100644 --- a/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs +++ b/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs @@ -55,4 +55,25 @@ public static class DateTimeHelper return sign * (hours + minutes / 60f); } + + /// + /// 将浮点数时区转换为GMT格式 + /// 如果为null则返回"--" + /// + /// + /// + public static string ConvertFloatToTimeZone(float? timezone) + { + if (timezone == null) return "--"; + + if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--"; + + // 将小数形式的小时转换为时区偏移量 + var hours = (int) timezone.Value; // 提取整数部分作为小时 + var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟 + var offset = new TimeSpan(hours, minutes, 0); + var timeZoneStr = offset.ToString(); + var flag = timezone > 0f ? "+" : ""; + return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}"; + } } diff --git a/src/SJZY.Track.Application/Services/Warning/CompleteWarningService.cs b/src/SJZY.Track.Application/Services/Warning/CompleteWarningService.cs index 93a53005..fa3797bd 100644 --- a/src/SJZY.Track.Application/Services/Warning/CompleteWarningService.cs +++ b/src/SJZY.Track.Application/Services/Warning/CompleteWarningService.cs @@ -186,7 +186,7 @@ public class CompleteWarningService : ApplicationService LatestTrackContent = orderIdTrack?.TrackContent, LatestTrackPlace = orderIdTrack?.TrackPlace, LatestTrackTime = orderIdTrack?.TrackTime, - LatestTrackTimeZone = FormatTimeZone(orderIdTrack?.TrackTimeZone), + LatestTrackTimeZone = DateTimeHelper.ConvertFloatToTimeZone(orderIdTrack?.TrackTimeZone), NotifyUserNames = ToUserNames(x.NotifyUsers), CreateTime = x.CreateTime, @@ -229,22 +229,6 @@ public class CompleteWarningService : ApplicationService }).ToList() }).ToList(); } - - // 格式化时区 - string FormatTimeZone(float? timezone) - { - if (timezone == null) return "--"; - - if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--"; - - // 将小数形式的小时转换为时区偏移量 - var hours = (int) timezone.Value; // 提取整数部分作为小时 - var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟 - var offset = new TimeSpan(hours, minutes, 0); - var timeZoneStr = offset.ToString(); - var flag = timezone > 0f ? "+" : ""; - return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}"; - } } /// diff --git a/src/SJZY.Track.Application/Services/Warning/ReturnWarningService.cs b/src/SJZY.Track.Application/Services/Warning/ReturnWarningService.cs index 00be37c8..7eb2eb8a 100644 --- a/src/SJZY.Track.Application/Services/Warning/ReturnWarningService.cs +++ b/src/SJZY.Track.Application/Services/Warning/ReturnWarningService.cs @@ -3,6 +3,7 @@ using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Track.Application.Contract.Dtos.Warning; using SJZY.Track.Application.Contract.Dtos.Warning.Return; using SJZY.Track.Application.Contract.Events; +using SJZY.Track.Application.Helpers; using SJZY.Track.Application.Services.Warning.Handlers; using SJZY.Track.Application.Services.Warning.Model; using SJZY.Track.Domain.Aggregates.OrderAggregate; @@ -146,7 +147,7 @@ public class ReturnWarningService : ApplicationService TrackContent = x.TrackContent, TrackPlace = x.TrackPlace, TrackTime = x.TrackTime, - TrackTimeZone = FormatTimeZone(x.TrackTimeZone), + TrackTimeZone = DateTimeHelper.ConvertFloatToTimeZone(x.TrackTimeZone), TrackCreateTime = x.TrackCreateTime, // 轨迹信息(映射后) PushTrackCode = x.PushTrackCode, @@ -186,22 +187,6 @@ public class ReturnWarningService : ApplicationService return string.Join(',', notifyUsers.ToObject>().Select(x => x.UserName)); } - // 格式化时区 - string FormatTimeZone(float? timezone) - { - if (timezone == null) return "--"; - - if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--"; - - // 将小数形式的小时转换为时区偏移量 - var hours = (int) timezone.Value; // 提取整数部分作为小时 - var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟 - var offset = new TimeSpan(hours, minutes, 0); - var timeZoneStr = offset.ToString(); - var flag = timezone > 0f ? "+" : ""; - return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}"; - } - // 时间 string FormatTimeSpan(long? milliseconds) { diff --git a/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs b/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs index baa69df7..46ed5dc3 100644 --- a/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs +++ b/src/SJZY.Track.Application/Services/Warning/TransportWarningService.cs @@ -223,20 +223,20 @@ public class TransportWarningService : ApplicationService // 最新轨迹 (不冗余) LatestTrackContent = orderIdTrack?.TrackContent, LatestTrackTime = orderIdTrack?.TrackTime, - LatestTrackTimeZone = FormatTimeZone(orderIdTrack?.TrackTimeZone), + LatestTrackTimeZone = DateTimeHelper.ConvertFloatToTimeZone(orderIdTrack?.TrackTimeZone), LatestTrackPlace = orderIdTrack?.TrackPlace, // 起始轨迹 StartTrackStatus = x.StartTrackStatus, StartTrackContent = x.StartTrackContent, StartTrackTime = x.StartTrackTime, - StartTrackTimeZone = FormatTimeZone(x.StartTrackTimeZone), + StartTrackTimeZone = DateTimeHelper.ConvertFloatToTimeZone(x.StartTrackTimeZone), // 截止轨迹 EndTrackStatus = x.EndTrackStatus, EndTrackContent = x.EndTrackContent, EndTrackTime = x.EndTrackTime, - EndTrackTimeZone = FormatTimeZone(x.EndTrackTimeZone), + EndTrackTimeZone = DateTimeHelper.ConvertFloatToTimeZone(x.EndTrackTimeZone), WarningName = x.WarningName, WarningRuleDescription = x.WarningRuleDescription, @@ -283,22 +283,6 @@ public class TransportWarningService : ApplicationService return $"{timeSpan.Days:00}天{timeSpan.Hours:00}小时{timeSpan.Minutes:00}分钟"; } - - // 格式化时区 - string FormatTimeZone(float? timezone) - { - if (timezone == null) return "--"; - - if (Math.Abs(timezone.Value - GlobalConst.NoneTrackTimeZone) < 1) return "--"; - - // 将小数形式的小时转换为时区偏移量 - var hours = (int) timezone.Value; // 提取整数部分作为小时 - var minutes = (int) ((timezone.Value - hours) * 60); // 将小数部分乘以 60 转换为分钟 - var offset = new TimeSpan(hours, minutes, 0); - var timeZoneStr = offset.ToString(); - var flag = timezone > 0f ? "+" : ""; - return $"GMT {flag}{timeZoneStr.RemovePostFix(":00")}"; - } } ///