diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/EditTrackPushConfigInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/EditTrackPushConfigInput.cs
index b4ed8f6e..bb4b0066 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/EditTrackPushConfigInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/EditTrackPushConfigInput.cs
@@ -1,4 +1,6 @@
-namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
+using SJZY.Track.Domain.Enums;
+
+namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushConfigInput
{
@@ -48,4 +50,19 @@ public class EditTrackPushConfigInput
/// 是否全量推送
///
public bool? IsAllPush { get; set; }
+
+ ///
+ /// 时间格式枚举
+ ///
+ public DateTimeFormatEnum DateTimeFormatType { get; set; }
+
+ ///
+ /// 日期时间格式模板
+ ///
+ public string? DateTimeFormat { get; set; }
+
+ ///
+ /// 时区格式格式模板
+ ///
+ public string? TimezoneFormat { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushContentConfigDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushContentConfigDto.cs
index c2bcf867..f778ada8 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushContentConfigDto.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPush/TrackPushContentConfigDto.cs
@@ -1,4 +1,6 @@
-namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
+using SJZY.Track.Domain.Enums;
+
+namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushContentConfigDto
{
@@ -71,4 +73,20 @@ public class TrackPushContentConfigDto
/// 扩展字段参数值
///
public string? ExpandFieldsValue { get; set; }
+
+
+ ///
+ /// 时间格式枚举
+ ///
+ public DateTimeFormatEnum DateTimeFormatType { get; set; }
+
+ ///
+ /// 日期时间格式模板
+ ///
+ public string? DateTimeFormat { get; set; }
+
+ ///
+ /// 时区格式格式模板
+ ///
+ public string? TimezoneFormat { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
index 734246eb..cd7ec8f7 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackPushEventHandler.cs
@@ -86,7 +86,9 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (config == null) continue;
if (!config.IsAutoPush) continue;
if (config.OrderType != order.OrderType) continue;
-
+
+ // todo 确认是不是这里转换
+ DateTimeFormat( @event.SystemPushInfo.TrackTime,"yyyy-MM-dd HH:mm:ss");
var log = new TrackPushRecordIndex
{
OptionType = @event.OptionType.ToString(),
@@ -159,6 +161,12 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
throw new BusinessException(message: $"requestId: {r.RequestId}; {r.Msg}");
}
}
+
+
+ private string DateTimeFormat(DateTime dateTime,string format)
+ {
+ return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
+ }
private async Task DoUpdateAsync(TrackPushEvent @event)
{
@@ -250,6 +258,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (config.IsAllPush)
{
+ //todo 这个是指每次都带上之前的轨迹嘛
var history = await _trackPushRecordsRepository.GetLatestTrackPushRecordAsync(log.OrderId);
if (history != default)
{
diff --git a/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs b/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs
new file mode 100644
index 00000000..b0f3e0bd
--- /dev/null
+++ b/src/SJZY.Track.Application/Helpers/DateTimeHelper.cs
@@ -0,0 +1,36 @@
+namespace SJZY.Track.Application.Helpers;
+
+public static class DateTimeHelper
+{
+ ///
+ /// Generates a Unix timestamp from a DateTime object.
+ ///
+ /// The DateTime object to convert to a Unix timestamp.
+ /// The Unix timestamp as a long.
+ public static long GenerateUnixTimestamp(DateTime dateTime)
+ {
+ return new DateTimeOffset(dateTime).ToUnixTimeSeconds();
+ }
+
+ ///
+ /// Formats a DateTime object into a specified format.
+ ///
+ /// The DateTime object to format.
+ /// The format string.
+ /// The formatted date string.
+ public static string FormatDateTime(DateTime dateTime, string format)
+ {
+ return dateTime.ToString(format);
+ }
+
+ ///
+ /// 时区格式化
+ ///
+ ///
+ ///
+ ///
+ public static string TimezoneFormat(float timezone, string format)
+ {
+ return string.Format(format, timezone);
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
index dfda8279..31e38468 100644
--- a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
+++ b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
@@ -48,7 +48,7 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
var trackPushConfig = await _trackPushConfigRepository.GetFirstAsync(
x => x.SubSystemId == subSystemId && x.CustomId == customId, x => new
{
- x.Id, x.IsAutoPush, x.IsAllPush, x.IsCanDelete, x.IsCanUpdate, x.SubSystemId, x.CustomId
+ x.Id, x.IsAutoPush, x.IsAllPush, x.IsCanDelete, x.IsCanUpdate, x.SubSystemId, x.CustomId,x.DateTimeFormatType,x.DateTimeFormat,x.TimezoneFormat
});
if (trackPushConfig == null)
{
@@ -68,6 +68,9 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
IsCanUpdate = trackPushConfig.IsCanUpdate,
IsAllPush = trackPushConfig.IsAllPush,
IsCanDelete = trackPushConfig.IsCanDelete,
+ DateTimeFormatType = trackPushConfig.DateTimeFormatType,
+ DateTimeFormat = trackPushConfig.DateTimeFormat,
+ TimezoneFormat = trackPushConfig.TimezoneFormat,
ServiceProviderCode = item.ServiceProviderCode,
OrderType = item.OrderType,
TrackCode = item.TrackCode,
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs
index 659e3281..8398a0bf 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs
@@ -1,4 +1,6 @@
-namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate;
+using SJZY.Track.Domain.Enums;
+
+namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate;
///
/// 轨迹推送配置表
@@ -53,4 +55,22 @@ public class TrackPushConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot
///
[SugarColumn(ColumnName = "IsAllPush")]
public bool IsAllPush { get; set; }
+
+ ///
+ /// 日期时间格式类型
+ ///
+ [SugarColumn(ColumnName = "DateTimeFormatType")]
+ public DateTimeFormatEnum DateTimeFormatType { get; set; }
+
+ ///
+ /// 日期时间格式模板
+ ///
+ [SugarColumn(ColumnName = "DateTimeFormat")]
+ public string? DateTimeFormat { get; set; }
+
+ ///
+ /// 时区格式格式模板
+ ///
+ [SugarColumn(ColumnName = "TimezoneFormat")]
+ public string? TimezoneFormat { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Enums/DateTimeFormatEnum.cs b/src/SJZY.Track.Domain/Enums/DateTimeFormatEnum.cs
new file mode 100644
index 00000000..37e3c4fc
--- /dev/null
+++ b/src/SJZY.Track.Domain/Enums/DateTimeFormatEnum.cs
@@ -0,0 +1,17 @@
+namespace SJZY.Track.Domain.Enums;
+
+///
+/// 时间样式枚举
+///
+public enum DateTimeFormatEnum
+{
+ ///
+ /// 时间戳
+ ///
+ Timestamp=1,
+
+ ///
+ /// 时间加时区
+ ///
+ DateTimeAndTimezone =2
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Enums/TimezoneSourceEnum.cs b/src/SJZY.Track.Domain/Enums/TimezoneSourceEnum.cs
new file mode 100644
index 00000000..70aca24a
--- /dev/null
+++ b/src/SJZY.Track.Domain/Enums/TimezoneSourceEnum.cs
@@ -0,0 +1,37 @@
+namespace SJZY.Track.Domain.Enums;
+
+///
+/// 推送轨迹时区来源
+///
+public enum TimezoneSourceEnum
+{
+ ///
+ /// 起运城市
+ ///
+ DeliverCity = 1,
+
+ ///
+ /// 接收城市
+ ///
+ ReceiveCity = 2,
+
+ ///
+ /// 起运港口
+ ///
+ DeliverPort = 3,
+
+ ///
+ /// 接收港口
+ ///
+ ReceivePort = 4,
+
+ ///
+ /// 起运国家
+ ///
+ DeliverCountry = 5,
+
+ ///
+ /// 接收国家
+ ///
+ ReceiveCountry = 6
+}
\ No newline at end of file