Merge branch 'refs/heads/S33-中台token优化' into test

This commit is contained in:
李鹏军 2024-06-25 17:43:53 +08:00
commit 654ba07fd3
12 changed files with 111 additions and 11 deletions

View File

@ -10,6 +10,7 @@ try
.AddConfigurationContainer() .AddConfigurationContainer()
.AddOptionsFromConfiguration() .AddOptionsFromConfiguration()
.UseSerilogDefault() .UseSerilogDefault()
.AddOTel() //注入OTel
.Host.AddAppSettingsSecretsJson() .Host.AddAppSettingsSecretsJson()
.UseAutofac(); .UseAutofac();
@ -17,6 +18,7 @@ try
var app = builder.Build(); var app = builder.Build();
await app.InitializeApplicationAsync(); await app.InitializeApplicationAsync();
app.UseOTel(); //启动WebApi的请求管道配置
await app.RunAsync(); await app.RunAsync();
} }
catch (Exception ex) catch (Exception ex)

View File

@ -0,0 +1,75 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
public class TrackPushRecordOutput
{
/// <summary>
/// 订单Id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 接口通请求Id
/// </summary>
public Guid RequestId { get; set; }
/// <summary>
/// 信息
/// </summary>
public string Message { get; set; } = null!;
/// <summary>
/// 操作类型
/// </summary>
public string OptionType { get; set; } = null!;
/// <summary>
/// 轨迹状态
/// </summary>
public string TrackStatus { get; set; } = null!;
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹内容
/// </summary>
public string TrackContent { get; set; } = null!;
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public string TrackGTMTimeZone { get; set; } = null!;
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 推送内容(json)
/// </summary>
public string PushContent { get; set; } = null!;
/// <summary>创建人</summary>
public string? CreateUser { get; set; }
/// <summary>创建时间</summary>
public DateTime CreateTime { get; set; }
}

View File

@ -1,8 +1,10 @@
using AutoMapper; using AutoMapper;
using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Application.Contract.Dtos.ProvideServices; 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.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
using SJZY.Track.Domain.Dtos.Order; using SJZY.Track.Domain.Dtos.Order;
using SJZY.Track.Domain.Enums; using SJZY.Track.Domain.Enums;
using Volo.Abp.AutoMapper; 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.Content, opt => opt.MapFrom(m => m.TrackContent))
.ForMember(dest => dest.EnContent, opt => opt.MapFrom(m => m.TrackEnContent)) .ForMember(dest => dest.EnContent, opt => opt.MapFrom(m => m.TrackEnContent))
.ForMember(dest => dest.TrackTimeZoneValue, opt => opt.MapFrom(m => m.TrackTimeZone)); .ForMember(dest => dest.TrackTimeZoneValue, opt => opt.MapFrom(m => m.TrackTimeZone));
CreateMap<TrackPushRecordIndex, TrackPushRecordOutput>(MemberList.None);
} }
/// <summary> /// <summary>

View File

@ -70,6 +70,10 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
// 推送新增,需要根据上一次的推送 推断 本次推送 是否可行 // 推送新增,需要根据上一次的推送 推断 本次推送 是否可行
config = await _trackPushCacheService.IsValidPushAsync(order.SubSystemId, order.CustomId, config = await _trackPushCacheService.IsValidPushAsync(order.SubSystemId, order.CustomId,
order.LatestPushTrackCode, @event.TrackCode); order.LatestPushTrackCode, @event.TrackCode);
if (config is not { IsAutoPush: true })
{
config = null;
}
} }
} }
else else

View File

@ -12,10 +12,10 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="SJZY.InterfaceRelay.Application.Contracts" Version="7.1.8"/> <PackageReference Include="SJZY.InterfaceRelay.Application.Contracts" Version="7.1.9"/>
<PackageReference Include="Volo.Abp.Http.Client" Version="7.0.2" /> <PackageReference Include="Volo.Abp.Http.Client" Version="7.0.2" />
<PackageReference Include="Volo.Abp.FluentValidation" Version="7.0.2" /> <PackageReference Include="Volo.Abp.FluentValidation" Version="7.0.2" />
<PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.0.3-alpha8" /> <PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.0.9-alpha"/>
<PackageReference Include="SJZY.Expand.CAP" Version="7.8.0" /> <PackageReference Include="SJZY.Expand.CAP" Version="7.8.0" />
<PackageReference Include="DotNetCore.CAP" Version="8.0.1" /> <PackageReference Include="DotNetCore.CAP" Version="8.0.1" />
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.0.1" /> <PackageReference Include="DotNetCore.CAP.Dashboard" Version="8.0.1" />

View File

@ -160,8 +160,20 @@ public class TrackOrderService : ApplicationService
/// <returns></returns> /// <returns></returns>
/// <param name="orderId">订单id</param> /// <param name="orderId">订单id</param>
[HttpGet("GetTrackPushRecords")] [HttpGet("GetTrackPushRecords")]
public async Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId) public async Task<List<TrackPushRecordOutput>> GetTrackPushRecordsAsync(int orderId)
{ {
return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(orderId); var records = await _trackPushRecordsRepository.GetTrackPushRecordsAsync(orderId);
var res = ObjectMapper.Map<List<TrackPushRecordIndex>, List<TrackPushRecordOutput>>(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;
} }
} }

View File

@ -35,9 +35,11 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
{ {
// maybe is null // maybe is null
var data = await DoGetPushContentConfigsAsync(subSystemId, customId); var data = await DoGetPushContentConfigsAsync(subSystemId, customId);
var ttl = 3 * 24 * 60 * 60;
if (data == null) ttl = 5;
// ttl 3days // ttl 3days
await RedisHelper.Client.SetAsync(TrackPushContentKey(subSystemId, customId), await RedisHelper.Client.SetAsync(TrackPushContentKey(subSystemId, customId),
data, 3 * 24 * 60 * 60); data, ttl);
return data; return data;
} }
@ -66,7 +68,7 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
// find swap // find swap
cache.FirstOrDefault(x => x.TrackCode == cache[idx + 1].SwapTrackCode); 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<List<TrackPushContentConfigDto>?> DoGetPushContentConfigsAsync(int subSystemId, int customId) private async Task<List<TrackPushContentConfigDto>?> DoGetPushContentConfigsAsync(int subSystemId, int customId)

View File

@ -40,7 +40,7 @@ public class OrderFlightEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEnt
/// 创建时间 /// 创建时间
/// </summary> /// </summary>
[SugarColumn(ColumnName = "CreateTime")] [SugarColumn(ColumnName = "CreateTime")]
public DateTime? CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary> /// <summary>
/// 是否删除 /// 是否删除

View File

@ -59,7 +59,7 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
/// 创建时间 /// 创建时间
/// </summary> /// </summary>
[SugarColumn(ColumnName = "CreateTime")] [SugarColumn(ColumnName = "CreateTime")]
public DateTime? CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary> /// <summary>
/// 是否删除 /// 是否删除

View File

@ -40,7 +40,7 @@ public class OrderTemplateEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IE
/// 创建时间 /// 创建时间
/// </summary> /// </summary>
[SugarColumn(ColumnName = "CreateTime")] [SugarColumn(ColumnName = "CreateTime")]
public DateTime? CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary> /// <summary>
/// 是否删除 /// 是否删除

View File

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="SJZY.Expand.ABP.Core" Version="7.7.1" /> <PackageReference Include="SJZY.Expand.ABP.Core" Version="7.8.6"/>
<PackageReference Include="SJZY.Expand.ElasticSearch" Version="7.0.17" /> <PackageReference Include="SJZY.Expand.ElasticSearch" Version="7.0.17" />
</ItemGroup> </ItemGroup>

View File

@ -8,8 +8,9 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="SJZY.LoggerCenter.HttpApi" Version="7.0.5" /> <PackageReference Include="SJZY.LoggerCenter.HttpApi" Version="7.0.5" />
<PackageReference Include="SJZY.OTel.Extension" Version="1.0.4"/>
<PackageReference Include="Volo.Abp.Autofac" Version="7.0.2" /> <PackageReference Include="Volo.Abp.Autofac" Version="7.0.2" />
<PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.0.3-alpha8" /> <PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.0.9-alpha"/>
<PackageReference Include="SJZY.Expand.CAP" Version="7.8.0" /> <PackageReference Include="SJZY.Expand.CAP" Version="7.8.0" />
</ItemGroup> </ItemGroup>