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