temp
This commit is contained in:
parent
62fc0a5168
commit
e21f3b8460
@ -5,7 +5,7 @@
|
||||
"Apollo": {
|
||||
"AppId": "SJZY.Track.Configuration",
|
||||
"Env": "DEV",
|
||||
"Namespace": "DEV",
|
||||
"Namespace": "Test",
|
||||
"MetaServer": "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080",
|
||||
"ConfigServer": [ "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080" ]
|
||||
}
|
||||
|
||||
@ -48,7 +48,8 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
if (@event.Data == null || config == null) return;
|
||||
|
||||
var data = JObject.Parse(@event.Data);
|
||||
var orderToken = data[config.ParamConfig.OrderPath];
|
||||
|
||||
var orderToken = data.SelectToken(config.ParamConfig.OrderPath);
|
||||
if (orderToken is JArray orderTokens)
|
||||
{
|
||||
foreach (var token in orderTokens)
|
||||
@ -69,7 +70,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
var orderNo = orderToken[paramConfig.OrderNoName]?.Value<string>();
|
||||
if (orderNo.IsNullOrWhiteSpace()) return;
|
||||
|
||||
var trackToken = orderToken[paramConfig.TrackDetailsPath];
|
||||
var trackToken = orderToken.SelectToken(paramConfig.TrackDetailsPath);
|
||||
if (trackToken is null) return;
|
||||
|
||||
var order = await _orderRepository.GetFirstAsync(x =>
|
||||
@ -115,33 +116,34 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackPullContentConfigDto? matchedContentConfig = null;
|
||||
|
||||
// 1、匹配轨迹代码
|
||||
if (paramConfig.TrackContentCodeName != null)
|
||||
if (!paramConfig.TrackContentCodeName.IsNullOrWhiteSpace())
|
||||
{
|
||||
var trackCode = trackToken[paramConfig.TrackContentCodeName]?.Value<string>();
|
||||
var trackCode = trackToken[paramConfig.TrackContentCodeName!]?.Value<string>();
|
||||
if (!trackCode.IsNullOrWhiteSpace())
|
||||
{
|
||||
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackContentCodeValue == trackCode);
|
||||
}
|
||||
}
|
||||
// 2、匹配轨迹状态
|
||||
else if (paramConfig.TrackStatusName != null)
|
||||
else if (!paramConfig.TrackStatusName.IsNullOrWhiteSpace())
|
||||
{
|
||||
var trackStatus = trackToken[paramConfig.TrackStatusName]?.Value<string>();
|
||||
var trackStatus = trackToken[paramConfig.TrackStatusName!]?.Value<string>();
|
||||
if (!trackStatus.IsNullOrWhiteSpace())
|
||||
{
|
||||
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValue == trackStatus);
|
||||
}
|
||||
}
|
||||
// 3、匹配轨迹内容
|
||||
else if (paramConfig.TrackContentName != null)
|
||||
else if (!paramConfig.TrackContentName.IsNullOrWhiteSpace())
|
||||
{
|
||||
var trackContent = trackToken[paramConfig.TrackContentName]?.Value<string>();
|
||||
var trackContent = trackToken[paramConfig.TrackContentName!]?.Value<string>();
|
||||
if (!trackContent.IsNullOrWhiteSpace())
|
||||
{
|
||||
Debug.Assert(trackContent != null, nameof(trackContent) + " != null");
|
||||
// 3.1 按内容直接匹配
|
||||
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackContentValue == trackContent);
|
||||
|
||||
// 按关键字分析轨迹内容
|
||||
// 3.2 按关键字分析轨迹内容
|
||||
if (matchedContentConfig is null)
|
||||
{
|
||||
foreach (var contentConfig in contentConfigs)
|
||||
@ -192,9 +194,9 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
? null
|
||||
: trackToken[paramConfig.TrackTimeZoneName]?.Value<float>();
|
||||
|
||||
//兜底时区
|
||||
// todo:兜底时区是slow path
|
||||
var hasTimezoneBottomLine = false; //执行了兜底但是没有兜底住,需要记录
|
||||
if (!trackTimeZone.HasValue && matchedContentConfig?.TrackZonePlaceValue != null && matchedContentConfig.TrackZonePlaceValue.HasValue)
|
||||
if (!trackTimeZone.HasValue && matchedContentConfig?.TrackZonePlaceValue is not null)
|
||||
{
|
||||
//兜底没配置的就不需要兜底,拉取的发生地没就没
|
||||
var timezone= await GetTimezone(matchedContentConfig,context.OrderId);
|
||||
@ -214,7 +216,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
OriginTrackData = JsonConvert.SerializeObject(trackToken),
|
||||
TrackPlace = trackPlace ?? GlobalConst.EmptyString,
|
||||
TrackTime = trackTime ?? DateTime.Now,
|
||||
TrackTimeZone = trackTimeZone ?? 8
|
||||
TrackTimeZone = trackTimeZone ?? GlobalConst.NoneTrackTimeZone,
|
||||
};
|
||||
if (paramConfig.TrackContentName != null)
|
||||
{
|
||||
|
||||
@ -4,6 +4,7 @@ using SJZY.Expand.ABP.Core;
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||
using SJZY.InterfaceRelay.Application.Contracts;
|
||||
using SJZY.Track.Application.CAP.EventHandlers;
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
using SJZY.Track.Application.Contract.Services;
|
||||
@ -89,6 +90,23 @@ public class TrackPullService : ApplicationService
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹刷新测试
|
||||
/// </summary>
|
||||
/// <param name="trackRefreshEventHandler"></param>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("Track/TrackRefreshEventTest")]
|
||||
#if DEBUG
|
||||
[AllowAnonymous]
|
||||
#endif
|
||||
public async Task<bool> TrackRefreshEventTest([FromServices]TrackRefreshEventHandler trackRefreshEventHandler, InterfaceRelayForwardReplayEvent input)
|
||||
{
|
||||
await trackRefreshEventHandler.ConsumerAsync(input);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private async Task RefreshForConfigAsync(TrackPullConfigDto config)
|
||||
{
|
||||
var redisKey = _trackPullCacheService.TrackPullKey(config.SubSystemId, config.ServiceProviderId);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Consts;
|
||||
|
||||
namespace SJZY.Track.Application.Services.ProvideServices;
|
||||
|
||||
@ -41,7 +42,7 @@ public partial class TrackService
|
||||
Content = x.TrackContent,
|
||||
OriginContent = x.OriginTrackContent,
|
||||
Location = x.TrackPlace,
|
||||
Time = x.TrackTime.AddHours(input.TimeZone ?? 8 - x.TrackTimeZone),
|
||||
Time = Math.Abs(x.TrackTimeZone - GlobalConst.NoneTrackTimeZone) < 1 ?x.TrackTime: x.ZeroTrackTime.AddHours(input.TimeZone ?? 8),
|
||||
TimeZone = input.TimeZone ?? 8
|
||||
}).ToList();
|
||||
|
||||
|
||||
@ -5,4 +5,6 @@ public partial class GlobalConst
|
||||
public const string SystemUser = "系统";
|
||||
public const string EmptyString = "--";
|
||||
public const int ChunkSize = 100;
|
||||
|
||||
public const float NoneTrackTimeZone = 99999;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user