调试轨迹刷新

This commit is contained in:
李鹏军 2024-03-14 10:10:04 +08:00
parent 6a6e46482a
commit 92bf6f549f
5 changed files with 37 additions and 25 deletions

View File

@ -10,32 +10,32 @@ public class TrackPullParamConfigDto
/// <summary>
/// 轨迹时区参数名
/// </summary>
public string TrackTimeZoneName { get; set; } = null!;
public string? TrackTimeZoneName { get; set; }
/// <summary>
/// 轨迹代码参数名
/// </summary>
public string TrackContentCodeName { get; set; } = null!;
public string? TrackContentCodeName { get; set; }
/// <summary>
/// 轨迹内容参数名
/// </summary>
public string TrackContentName { get; set; } = null!;
public string? TrackContentName { get; set; }
/// <summary>
/// 轨迹发生地参数名
/// </summary>
public string TrackPlaceName { get; set; } = null!;
public string? TrackPlaceName { get; set; }
/// <summary>
/// 轨迹状态参数名
/// </summary>
public string TrackStatusName { get; set; } = null!;
public string? TrackStatusName { get; set; }
/// <summary>
/// 轨迹发生时间参数名
/// </summary>
public string TrackTimeName { get; set; } = null!;
public string? TrackTimeName { get; set; }
/// <summary>
/// 订单数组路径

View File

@ -29,14 +29,14 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
}
[CapSubscribe(GlobalConst.TrackRefreshSubscribe)]
public async Task ConsumerAsync(InterfaceRelayTrackRefreshEvent @event)
public async Task ConsumerAsync(InterfaceRelayForwardReplayEvent @event)
{
// tips:attach返回的是服务商id,必有
var attach = JsonConvert.DeserializeObject<TrackRefreshAttach>(@event.Attach);
if (attach is null) return;
var config = await _trackPullCacheService.GetPullConfigAsync(attach.ServiceProviderId, attach.SubSystemId);
var config = await _trackPullCacheService.GetPullConfigAsync(attach.SubSystemId, attach.ServiceProviderId);
var data = JObject.FromObject(@event.Data);
var data = JObject.Parse(@event.Data.ToString()!);
var orderToken = data[config.ParamConfig.OrderPath];
if (orderToken is JArray orderTokens)
{
@ -98,30 +98,31 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
TrackPullContentConfigDto? matchedContentConfig = null;
// 1、匹配轨迹代码
if (paramConfig.TrackContentCodeName != null)
{
var trackCode = trackToken[paramConfig.TrackContentCodeName]?.Value<string>();
if (!trackCode.IsNullOrWhiteSpace())
{
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackContentCodeValue == trackCode);
}
}
// 2、匹配轨迹状态
if (matchedContentConfig is null)
else if (paramConfig.TrackStatusName != null)
{
var trackStatus = trackToken[paramConfig.TrackStatusName]?.Value<string>();
if (!trackStatus.IsNullOrWhiteSpace())
{
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValue == trackCode);
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValue == trackStatus);
}
}
// 3、匹配轨迹内容
if (matchedContentConfig is null)
else if (paramConfig.TrackContentName != null)
{
var trackContent = trackToken[paramConfig.TrackContentName]?.Value<string>();
if (!trackContent.IsNullOrWhiteSpace())
{
Debug.Assert(trackContent != null, nameof(trackContent) + " != null");
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackContentValue == trackCode);
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackContentValue == trackContent);
// 按关键字分析轨迹内容
if (matchedContentConfig is null)
@ -155,7 +156,10 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
if (matchedContentConfig is null) return;
var trackPlace = trackToken[paramConfig.TrackPlaceName]?.Value<string>();
// 轨迹发生地
var trackPlace = paramConfig.TrackPlaceName == null
? null
: trackToken[paramConfig.TrackPlaceName]?.Value<string>();
if (trackPlace.IsNullOrWhiteSpace())
{
Expression<Func<OrderEntity, string?>> resultExpression =
@ -173,12 +177,20 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
x.Id == trackUpsertEvent.OrderId, resultExpression);
}
// 轨迹发生时间
var trackTime = paramConfig.TrackTimeName == null
? null
: trackToken[paramConfig.TrackTimeName]?.Value<DateTime>();
// 轨迹发生时区
var trackTimeZone = paramConfig.TrackTimeZoneName == null
? null
: trackToken[paramConfig.TrackTimeZoneName]?.Value<float>();
// 新增/更新轨迹
trackUpsertEvent.TrackCode = matchedContentConfig.TrackContentCode;
trackUpsertEvent.TrackPlace = trackPlace ?? "CN";
trackUpsertEvent.TrackTime = trackToken[paramConfig.TrackTimeName]?.Value<DateTime>() ?? DateTime.Now;
trackUpsertEvent.TrackTimeZone = trackToken[paramConfig.TrackTimeZoneName]?.Value<float>() ??
matchedContentConfig.TrackTimeZoneValue ?? 8;
trackUpsertEvent.TrackTime = trackTime ?? DateTime.Now;
trackUpsertEvent.TrackTimeZone = trackTimeZone ?? matchedContentConfig.TrackTimeZoneValue ?? 8;
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertSubscribe, trackUpsertEvent);
}
}

View File

@ -8,7 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SJZY.InterfaceRelay.Application.Contracts" Version="7.1.4"/>
<PackageReference Include="SJZY.InterfaceRelay.Application.Contracts" Version="7.1.5-beta3"/>
<PackageReference Include="Volo.Abp.Http.Client" Version="7.0.2" />
<PackageReference Include="Volo.Abp.FluentValidation" Version="7.0.2" />
<PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.0.3-alpha8" />

View File

@ -50,7 +50,7 @@ public class TrackPushPullService : ApplicationService
}).ToList();
// 批量获取轨迹
await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
var requestId = await _httpClientProxy.Service.BatchForwardThenPushToQueueAsync(
"A012", group.Key.ServiceProviderCode, data,
GlobalConst.TrackRefreshSubscribe, JsonConvert.SerializeObject(group.Key));
}

View File

@ -149,7 +149,7 @@ public partial class TrackService : ApplicationService, ITrackService
public async Task<bool> BatchDeleteTrackAsync(BatchDeleteTrackInput input)
{
var orders = await _orderRepository.GetListAsync(x =>
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo) && !x.IsPushCompleted
x.OrderType == input.OrderType && input.OrderNos.Contains(x.OrderNo)
, x => new
{
x.Id, x.SubSystemId