diff --git a/src/SJZY.Track.Api/Program.cs b/src/SJZY.Track.Api/Program.cs
index db266046..b1ac2cbf 100644
--- a/src/SJZY.Track.Api/Program.cs
+++ b/src/SJZY.Track.Api/Program.cs
@@ -10,6 +10,7 @@ try
.AddConfigurationContainer()
.AddOptionsFromConfiguration()
.UseSerilogDefault()
+ .AddOTel() //注入OTel
.Host.AddAppSettingsSecretsJson()
.UseAutofac();
@@ -17,6 +18,7 @@ try
var app = builder.Build();
await app.InitializeApplicationAsync();
+ app.UseOTel(); //启动WebApi的请求管道配置
await app.RunAsync();
}
catch (Exception ex)
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/EventHandlers/TrackPushEventHandler.cs b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
index 9ebea1f6..a9a207e9 100644
--- a/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
+++ b/src/SJZY.Track.Application/EventHandlers/TrackPushEventHandler.cs
@@ -70,6 +70,10 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
// 推送新增,需要根据上一次的推送 推断 本次推送 是否可行
config = await _trackPushCacheService.IsValidPushAsync(order.SubSystemId, order.CustomId,
order.LatestPushTrackCode, @event.TrackCode);
+ if (config is not { IsAutoPush: true })
+ {
+ config = null;
+ }
}
}
else
diff --git a/src/SJZY.Track.Application/SJZY.Track.Application.csproj b/src/SJZY.Track.Application/SJZY.Track.Application.csproj
index 172e83f5..7d3d8cee 100644
--- a/src/SJZY.Track.Application/SJZY.Track.Application.csproj
+++ b/src/SJZY.Track.Application/SJZY.Track.Application.csproj
@@ -12,10 +12,10 @@
-
+
-
+
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
diff --git a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
index bf365f28..e5d413f4 100644
--- a/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
+++ b/src/SJZY.Track.Application/Services/TrackPush/TrackPushCacheService.cs
@@ -35,9 +35,11 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
{
// maybe is null
var data = await DoGetPushContentConfigsAsync(subSystemId, customId);
+ var ttl = 3 * 24 * 60 * 60;
+ if (data == null) ttl = 5;
// ttl 3days
await RedisHelper.Client.SetAsync(TrackPushContentKey(subSystemId, customId),
- data, 3 * 24 * 60 * 60);
+ data, ttl);
return data;
}
@@ -66,7 +68,7 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
// find swap
cache.FirstOrDefault(x => x.TrackCode == cache[idx + 1].SwapTrackCode);
- return matched != null && matched.TrackCode == trackCode && matched.IsAutoPush ? matched : default;
+ return matched != null && matched.TrackCode == trackCode ? matched : default;
}
private async Task?> DoGetPushContentConfigsAsync(int subSystemId, int customId)
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
index 4e5f2017..1ba0393a 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderFlightEntity.cs
@@ -40,7 +40,7 @@ public class OrderFlightEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEnt
/// 创建时间
///
[SugarColumn(ColumnName = "CreateTime")]
- public DateTime? CreateTime { get; set; }
+ public DateTime CreateTime { get; set; }
///
/// 是否删除
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
index 71231e99..612cdae2 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs
@@ -59,7 +59,7 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
/// 创建时间
///
[SugarColumn(ColumnName = "CreateTime")]
- public DateTime? CreateTime { get; set; }
+ public DateTime CreateTime { get; set; }
///
/// 是否删除
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs
index 88559ae6..7dee5516 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs
@@ -40,7 +40,7 @@ public class OrderTemplateEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IE
/// 创建时间
///
[SugarColumn(ColumnName = "CreateTime")]
- public DateTime? CreateTime { get; set; }
+ public DateTime CreateTime { get; set; }
///
/// 是否删除
diff --git a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
index cb0a715f..d086d460 100644
--- a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
+++ b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/src/SJZY.Track.Repository/SJZY.Track.Repository.csproj b/src/SJZY.Track.Repository/SJZY.Track.Repository.csproj
index b2285e0b..5fb248b6 100644
--- a/src/SJZY.Track.Repository/SJZY.Track.Repository.csproj
+++ b/src/SJZY.Track.Repository/SJZY.Track.Repository.csproj
@@ -8,8 +8,9 @@
+
-
+