feat:移除t_track_pull_config:11个有关itfx参数路径的字段(无需定义,必须走itfx映射)
This commit is contained in:
parent
ecfcf8b5fb
commit
36ff1c955c
@ -160,7 +160,6 @@
|
|||||||
"TrackPlaceName": "location",
|
"TrackPlaceName": "location",
|
||||||
"TrackUtcTimeName": "timeUtc",
|
"TrackUtcTimeName": "timeUtc",
|
||||||
"TrackIsoTimeName": "timeIso",
|
"TrackIsoTimeName": "timeIso",
|
||||||
"PodName": "pod",
|
|
||||||
"TrackTimeName": "time",
|
"TrackTimeName": "time",
|
||||||
"TrackTimeZoneName": "timezone",
|
"TrackTimeZoneName": "timezone",
|
||||||
"TrackExtraNames": "extra",
|
"TrackExtraNames": "extra",
|
||||||
|
|||||||
@ -4,66 +4,11 @@ namespace TrackCenter.Application.Dtos.TrackPull;
|
|||||||
|
|
||||||
public class TrackPullParamConfigDto
|
public class TrackPullParamConfigDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 单号参数名
|
|
||||||
/// </summary>
|
|
||||||
public string OrderNoName { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹代码参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackContentCodeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹内容参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackContentName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生地参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackPlaceName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹状态参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackStatusName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹扩展信息参数名集合(逗号分割)
|
/// 轨迹扩展信息参数名集合(逗号分割)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? TrackExtraNames { get; set; }
|
public string? TrackExtraNames { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹UTC时间参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackUtcTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生ISO时间参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackIsoTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生时间参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹时区参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackTimeZoneName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单数组路径
|
|
||||||
/// </summary>
|
|
||||||
public string OrderPath { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹明细数组路径
|
|
||||||
/// </summary>
|
|
||||||
public string TrackDetailsPath { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹内容代码
|
/// 轨迹内容代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -42,6 +42,16 @@ public class InterfaceRelayParamsConfigOptions
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string TrackIsoTimeName { get; set; }
|
public string TrackIsoTimeName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹UTC时间参数名
|
||||||
|
/// </summary>
|
||||||
|
public string TrackUtcTimeName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹扩展信息参数名集合(逗号分割)
|
||||||
|
/// </summary>
|
||||||
|
public string? TrackExtraNames { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹发生时间参数名
|
/// 轨迹发生时间参数名
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -4,12 +4,14 @@ using DotNetCore.CAP;
|
|||||||
using Fake.UnitOfWork;
|
using Fake.UnitOfWork;
|
||||||
using InterfaceForward.Domain.Shared.Helpers;
|
using InterfaceForward.Domain.Shared.Helpers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using RabbitMQ.Client.Events;
|
using RabbitMQ.Client.Events;
|
||||||
using TrackCenter.Application.Dtos.TrackPull;
|
using TrackCenter.Application.Dtos.TrackPull;
|
||||||
using TrackCenter.Application.Events;
|
using TrackCenter.Application.Events;
|
||||||
using TrackCenter.Application.Helpers;
|
using TrackCenter.Application.Helpers;
|
||||||
|
using TrackCenter.Application.Options;
|
||||||
using TrackCenter.Application.Services.TrackPull;
|
using TrackCenter.Application.Services.TrackPull;
|
||||||
using TrackCenter.Domain.Aggregates.OrderAggregate;
|
using TrackCenter.Domain.Aggregates.OrderAggregate;
|
||||||
using TrackCenter.Domain.Aggregates.TrackDetailsAggregate;
|
using TrackCenter.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
@ -17,29 +19,18 @@ using TrackCenter.Domain.Aggregates.TrackDetailsAggregate;
|
|||||||
namespace TrackCenter.Application.Rabbit;
|
namespace TrackCenter.Application.Rabbit;
|
||||||
|
|
||||||
[ExposeServices(typeof(IRabbitHandler))]
|
[ExposeServices(typeof(IRabbitHandler))]
|
||||||
public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
public class TrackRefreshEventHandler(
|
||||||
{
|
IOrderRepository orderRepository,
|
||||||
private readonly ICapPublisher _capPublisher;
|
ICapPublisher capPublisher,
|
||||||
private readonly ILogger<TrackRefreshEventHandler> _logger;
|
TrackPullCacheService trackPullCacheService,
|
||||||
private readonly IOrderRepository _orderRepository;
|
|
||||||
private readonly ITrackDetailsEsRepository _trackDetailsEsRepository;
|
|
||||||
private readonly TrackPullCacheService _trackPullCacheService;
|
|
||||||
|
|
||||||
public TrackRefreshEventHandler(IOrderRepository orderRepository,
|
|
||||||
ICapPublisher capPublisher, TrackPullCacheService trackPullCacheService,
|
|
||||||
ITrackDetailsEsRepository trackDetailsEsRepository,
|
ITrackDetailsEsRepository trackDetailsEsRepository,
|
||||||
ILogger<TrackRefreshEventHandler> logger)
|
ILogger<TrackRefreshEventHandler> logger,
|
||||||
|
IOptionsMonitor<InterfaceRelayParamsConfigOptions> options)
|
||||||
|
: ITransientDependency, IRabbitHandler
|
||||||
{
|
{
|
||||||
_orderRepository = orderRepository;
|
public bool Enable(ConsumeOptions coptions)
|
||||||
_capPublisher = capPublisher;
|
|
||||||
_trackPullCacheService = trackPullCacheService;
|
|
||||||
_trackDetailsEsRepository = trackDetailsEsRepository;
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool Enable(ConsumeOptions options)
|
|
||||||
{
|
{
|
||||||
return options.Queue.StartsWith(GlobalConst.TrackRefreshSubscribe);
|
return coptions.Queue.StartsWith(GlobalConst.TrackRefreshSubscribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
[UnitOfWork]
|
[UnitOfWork]
|
||||||
@ -52,7 +43,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
var @event = System.Text.Json.JsonSerializer.Deserialize<InterfaceRelayForwardReplayEvent>(msg);
|
var @event = System.Text.Json.JsonSerializer.Deserialize<InterfaceRelayForwardReplayEvent>(msg);
|
||||||
if (@event == null)
|
if (@event == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning(
|
logger.LogWarning(
|
||||||
$"rabbit on queue received msg can't convert to {nameof(InterfaceRelayForwardReplayEvent)}");
|
$"rabbit on queue received msg can't convert to {nameof(InterfaceRelayForwardReplayEvent)}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -69,14 +60,14 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
{
|
{
|
||||||
if (!@event.IsSuccess)
|
if (!@event.IsSuccess)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("请求id: {@RequestId},轨迹刷新失败", @event.RequestId);
|
logger.LogWarning("请求id: {@RequestId},轨迹刷新失败", @event.RequestId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var attach = Base64Helper.DeSerialize<TrackRefreshAttach>(@event.Attach);
|
var attach = Base64Helper.DeSerialize<TrackRefreshAttach>(@event.Attach);
|
||||||
if (attach is null || @event.Data.IsNullOrWhiteSpace())
|
if (attach is null || @event.Data.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
_logger.LogWarning("请求id: {@RequestId},轨迹消费失败,attach或data解析为空", @event.RequestId);
|
logger.LogWarning("请求id: {@RequestId},轨迹消费失败,attach或data解析为空", @event.RequestId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,17 +80,17 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
|
|
||||||
// 客户A 渠道B 产品A
|
// 客户A 渠道B 产品A
|
||||||
|
|
||||||
var config = await _trackPullCacheService.GetPullParamsWithContentAsync(attach.AppKey,
|
var config = await trackPullCacheService.GetPullParamsWithContentAsync(attach.AppKey,
|
||||||
attach.ServiceProviderCode);
|
attach.ServiceProviderCode);
|
||||||
if (config is null)
|
if (config is null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("请求id: {@RequestId},轨迹消费失败,找不到拉取配置:{@Attach}", attach.ToJson(), @event.RequestId);
|
logger.LogWarning("请求id: {@RequestId},轨迹消费失败,找不到拉取配置:{@Attach}", attach.ToJson(), @event.RequestId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var data = JToken.Parse(@event.Data);
|
var data = JToken.Parse(@event.Data);
|
||||||
|
|
||||||
var orderToken = data.SelectToken(config.ParamConfig.OrderPath);
|
var orderToken = data.SelectToken(options.CurrentValue.OrderPath);
|
||||||
if (orderToken is JArray orderTokens)
|
if (orderToken is JArray orderTokens)
|
||||||
{
|
{
|
||||||
foreach (var token in orderTokens)
|
foreach (var token in orderTokens)
|
||||||
@ -116,7 +107,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
private async Task HandleOrderAsync(JToken orderToken, TrackPullParamsWithContentDto paramsWithContent,
|
private async Task HandleOrderAsync(JToken orderToken, TrackPullParamsWithContentDto paramsWithContent,
|
||||||
TrackRefreshAttach attach)
|
TrackRefreshAttach attach)
|
||||||
{
|
{
|
||||||
var paramConfig = paramsWithContent.ParamConfig;
|
var paramConfig = options.CurrentValue;
|
||||||
var orderNo = orderToken.SelectToken(paramConfig.OrderNoName)?.Value<string>();
|
var orderNo = orderToken.SelectToken(paramConfig.OrderNoName)?.Value<string>();
|
||||||
if (orderNo.IsNullOrWhiteSpace()) return;
|
if (orderNo.IsNullOrWhiteSpace()) return;
|
||||||
|
|
||||||
@ -125,10 +116,10 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
|
|
||||||
//回传单号可能是主单也可能是外部单号
|
//回传单号可能是主单也可能是外部单号
|
||||||
//通过平台code和(外部单号/主单号)查询主单
|
//通过平台code和(外部单号/主单号)查询主单
|
||||||
var order = await _orderRepository.GetTrackOrderByProviderAndOrderNo(attach.ServiceProviderCode, orderNo!);
|
var order = await orderRepository.GetTrackOrderByProviderAndOrderNo(attach.ServiceProviderCode, orderNo!);
|
||||||
if (order == default)
|
if (order == default)
|
||||||
{
|
{
|
||||||
_logger.LogError($"请求id: {attach.ToJson()},轨迹消费失败,找不到主单,平台code:{attach.ServiceProviderCode},单号:{orderNo}");
|
logger.LogError($"请求id: {attach.ToJson()},轨迹消费失败,找不到主单,平台code:{attach.ServiceProviderCode},单号:{orderNo}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,17 +152,17 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
{
|
{
|
||||||
var originTrackDataHash = StringHelper.GetHash(JsonConvert.SerializeObject(trackToken));
|
var originTrackDataHash = StringHelper.GetHash(JsonConvert.SerializeObject(trackToken));
|
||||||
// 如果已经存在一模一样的报文了说明处理过了,直接return
|
// 如果已经存在一模一样的报文了说明处理过了,直接return
|
||||||
if (await _trackDetailsEsRepository.AnyAsync(context.OrderId, originTrackDataHash))
|
if (await trackDetailsEsRepository.AnyAsync(context.OrderId, originTrackDataHash))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var paramConfig = paramsWithContent.ParamConfig;
|
var paramConfig = options.CurrentValue;
|
||||||
var contentConfigs = paramsWithContent.ContentConfigs;
|
var contentConfigs = paramsWithContent.ContentConfigs;
|
||||||
TrackPullContentConfigDto? matchedContentConfig = null;
|
TrackPullContentConfigDto? matchedContentConfig = null;
|
||||||
|
|
||||||
// 轨迹内容
|
// 轨迹内容
|
||||||
var trackContent = paramConfig.TrackContentName == null
|
var trackContent = paramConfig.TrackContentName.IsNullOrWhiteSpace()
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackContentName)?.Value<string>();
|
: trackToken.SelectToken(paramConfig.TrackContentName)?.Value<string>();
|
||||||
|
|
||||||
@ -180,7 +171,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
// 2、匹配轨迹状态
|
// 2、匹配轨迹状态
|
||||||
if (matchedContentConfig == null && !paramConfig.TrackStatusName.IsNullOrWhiteSpace())
|
if (matchedContentConfig == null && !paramConfig.TrackStatusName.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
var trackStatus = trackToken.SelectToken(paramConfig.TrackStatusName!)?.Value<string>();
|
var trackStatus = trackToken.SelectToken(paramConfig.TrackStatusName)?.Value<string>();
|
||||||
if (!trackStatus.IsNullOrWhiteSpace())
|
if (!trackStatus.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValues.Contains(trackStatus!));
|
matchedContentConfig = contentConfigs.FirstOrDefault(x => x.TrackStatusValues.Contains(trackStatus!));
|
||||||
@ -224,23 +215,23 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 轨迹发生ISO时间
|
// 轨迹发生ISO时间
|
||||||
var trackIsoTime = paramConfig.TrackIsoTimeName == null
|
var trackIsoTime = paramConfig.TrackIsoTimeName.IsNullOrWhiteSpace()
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackIsoTimeName)?.Value<DateTimeOffset?>();
|
: trackToken.SelectToken(paramConfig.TrackIsoTimeName)?.Value<DateTimeOffset?>();
|
||||||
// 轨迹发生UTC时间
|
// 轨迹发生UTC时间
|
||||||
var trackUtcTime = paramConfig.TrackUtcTimeName == null
|
var trackUtcTime = string.IsNullOrWhiteSpace(paramConfig.TrackUtcTimeName)
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackUtcTimeName)?.Value<DateTime?>();
|
: trackToken.SelectToken(paramConfig.TrackUtcTimeName)?.ToObject<DateTime?>();
|
||||||
// 轨迹发生时间
|
// 轨迹发生时间
|
||||||
var trackTime = trackIsoTime?.DateTime ?? (paramConfig.TrackTimeName == null
|
var trackTime = trackIsoTime?.DateTime ?? (paramConfig.TrackTimeName.IsNullOrWhiteSpace()
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackTimeName)?.Value<DateTime?>());
|
: trackToken.SelectToken(paramConfig.TrackTimeName)?.Value<DateTime?>());
|
||||||
// 轨迹发生时区
|
// 轨迹发生时区
|
||||||
var trackTimeZone = (float?) trackIsoTime?.Offset.TotalHours ?? (paramConfig.TrackTimeZoneName == null
|
var trackTimeZone = (float?) trackIsoTime?.Offset.TotalHours ?? (paramConfig.TrackTimeZoneName.IsNullOrWhiteSpace()
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackTimeZoneName)?.Value<float?>());
|
: trackToken.SelectToken(paramConfig.TrackTimeZoneName)?.Value<float?>());
|
||||||
// 轨迹发生地
|
// 轨迹发生地
|
||||||
var trackPlace = paramConfig.TrackPlaceName == null
|
var trackPlace = paramConfig.TrackPlaceName.IsNullOrWhiteSpace()
|
||||||
? null
|
? null
|
||||||
: trackToken.SelectToken(paramConfig.TrackPlaceName)?.Value<string?>();
|
: trackToken.SelectToken(paramConfig.TrackPlaceName)?.Value<string?>();
|
||||||
// 轨迹扩展信息,根据输入的多个字段提取报文内容,构建一个新的对象的json形式
|
// 轨迹扩展信息,根据输入的多个字段提取报文内容,构建一个新的对象的json形式
|
||||||
@ -253,7 +244,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
|
|
||||||
if (matchedContentConfig is null)
|
if (matchedContentConfig is null)
|
||||||
{
|
{
|
||||||
_logger.LogDebug("订单号:{OrderNo},未匹配到轨迹内容,轨迹报文:{TrackContent}",
|
logger.LogDebug("订单号:{OrderNo},未匹配到轨迹内容,轨迹报文:{TrackContent}",
|
||||||
context.OrderNo, trackToken.ToString());
|
context.OrderNo, trackToken.ToString());
|
||||||
await InsertNotMappedTrackAsync(trackToken, context, trackPlace, trackTime.Value, trackTimeZone.Value, trackContent, trackExtra);
|
await InsertNotMappedTrackAsync(trackToken, context, trackPlace, trackTime.Value, trackTimeZone.Value, trackContent, trackExtra);
|
||||||
return;
|
return;
|
||||||
@ -289,23 +280,10 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
//服务商轨迹默认不对外
|
//服务商轨迹默认不对外
|
||||||
IsExternal = false,
|
IsExternal = false,
|
||||||
Source = (int) TrackSourceEnum.ExternalServiceProvide,
|
Source = (int) TrackSourceEnum.ExternalServiceProvide,
|
||||||
Remarks = null,
|
|
||||||
Files = null,
|
|
||||||
Content = null,
|
|
||||||
EnStatus = null,
|
|
||||||
TrackPlaceCity = null,
|
|
||||||
TrackPlaceCityId = null,
|
|
||||||
TrackPlaceProvince = null,
|
|
||||||
TrackPlaceProvinceId = null,
|
|
||||||
TrackPlaceNation = null,
|
|
||||||
TrackPlaceNationId = null,
|
|
||||||
TrackPlacePostcode = null,
|
|
||||||
DestinationTimeZone = null,
|
|
||||||
EstimatedDeliveryDate = null,
|
|
||||||
Extra = trackExtra
|
Extra = trackExtra
|
||||||
};
|
};
|
||||||
|
|
||||||
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertForRefreshSubscribe, trackUpsertEvent);
|
await capPublisher.PublishAsync(GlobalConst.TrackUpsertForRefreshSubscribe, trackUpsertEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task InsertNotMappedTrackAsync(JToken trackToken, TrackRefreshContext context, string? trackPlace,
|
private async Task InsertNotMappedTrackAsync(JToken trackToken, TrackRefreshContext context, string? trackPlace,
|
||||||
@ -338,17 +316,6 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
//服务商轨迹默认不对外
|
//服务商轨迹默认不对外
|
||||||
IsExternal = false,
|
IsExternal = false,
|
||||||
Source = (int) TrackSourceEnum.ExternalServiceProvide,
|
Source = (int) TrackSourceEnum.ExternalServiceProvide,
|
||||||
Remarks = null,
|
|
||||||
Files = null,
|
|
||||||
TrackPlaceCity = null,
|
|
||||||
TrackPlaceCityId = null,
|
|
||||||
TrackPlaceProvince = null,
|
|
||||||
TrackPlaceProvinceId = null,
|
|
||||||
TrackPlaceNation = null,
|
|
||||||
TrackPlaceNationId = null,
|
|
||||||
TrackPlacePostcode = null,
|
|
||||||
DestinationTimeZone = null,
|
|
||||||
EstimatedDeliveryDate = null,
|
|
||||||
Extra = extra
|
Extra = extra
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -356,7 +323,7 @@ public class TrackRefreshEventHandler : ITransientDependency, IRabbitHandler
|
|||||||
? track.TrackTime
|
? track.TrackTime
|
||||||
: track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));
|
: track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));
|
||||||
|
|
||||||
await _trackDetailsEsRepository.AddAsync(track);
|
await trackDetailsEsRepository.AddAsync(track);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string? ExtraBuild(JToken jToken, string trackExtraNames)
|
private static string? ExtraBuild(JToken jToken, string trackExtraNames)
|
||||||
|
|||||||
@ -1,13 +1,11 @@
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using Fake.Application.Dtos;
|
using Fake.Application.Dtos;
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using TrackCenter.Application.Dtos.TrackPull;
|
using TrackCenter.Application.Dtos.TrackPull;
|
||||||
using TrackCenter.Domain.Aggregates.TrackPullAggregate;
|
using TrackCenter.Domain.Aggregates.TrackPullAggregate;
|
||||||
using TrackCenter.Domain.Dtos.TrackPull;
|
using TrackCenter.Domain.Dtos.TrackPull;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using TrackCenter.Application.Helpers;
|
using TrackCenter.Application.Helpers;
|
||||||
using TrackCenter.Application.Options;
|
|
||||||
|
|
||||||
namespace TrackCenter.Application.Services.TrackPull;
|
namespace TrackCenter.Application.Services.TrackPull;
|
||||||
|
|
||||||
@ -18,8 +16,7 @@ namespace TrackCenter.Application.Services.TrackPull;
|
|||||||
[Route("/Track/PullConfig")]
|
[Route("/Track/PullConfig")]
|
||||||
public class TrackPullService(
|
public class TrackPullService(
|
||||||
ITrackPullConfigRepository trackPullConfigRepository,
|
ITrackPullConfigRepository trackPullConfigRepository,
|
||||||
TrackPullCacheService trackPullCacheService,
|
TrackPullCacheService trackPullCacheService)
|
||||||
IOptionsMonitor<InterfaceRelayParamsConfigOptions> options)
|
|
||||||
: ApplicationServiceBase
|
: ApplicationServiceBase
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -101,26 +98,6 @@ public class TrackPullService(
|
|||||||
{
|
{
|
||||||
var trackPullEntity = ObjectMapper.Map<EditTrackPullConfigInput, TrackPullConfigEntity>(input);
|
var trackPullEntity = ObjectMapper.Map<EditTrackPullConfigInput, TrackPullConfigEntity>(input);
|
||||||
|
|
||||||
if (input.ParseMethod == (int) ParseMethod.InterfaceRelay)
|
|
||||||
{
|
|
||||||
var paramsConfig = options.CurrentValue;
|
|
||||||
if (paramsConfig == null)
|
|
||||||
{
|
|
||||||
throw new BusinessException(message: "未找到接口通参数配置,联系管理员添加");
|
|
||||||
}
|
|
||||||
|
|
||||||
trackPullEntity.OrderPath = paramsConfig.OrderPath;
|
|
||||||
trackPullEntity.OrderNoName = paramsConfig.OrderNoName;
|
|
||||||
trackPullEntity.TrackDetailsPath = paramsConfig.TrackDetailsPath;
|
|
||||||
trackPullEntity.TrackContentCodeName = paramsConfig.TrackContentCodeName;
|
|
||||||
trackPullEntity.TrackStatusName = paramsConfig.TrackStatusName;
|
|
||||||
trackPullEntity.TrackContentName = paramsConfig.TrackContentName;
|
|
||||||
trackPullEntity.TrackPlaceName = paramsConfig.TrackPlaceName;
|
|
||||||
trackPullEntity.TrackIsoTimeName = paramsConfig.TrackIsoTimeName;
|
|
||||||
trackPullEntity.TrackTimeName = paramsConfig.TrackTimeName;
|
|
||||||
trackPullEntity.TrackTimeZoneName = paramsConfig.TrackTimeZoneName;
|
|
||||||
}
|
|
||||||
|
|
||||||
using (var ts = TransacationHelper.GetReadCommitted())
|
using (var ts = TransacationHelper.GetReadCommitted())
|
||||||
{
|
{
|
||||||
var id = await trackPullConfigRepository.InsertReturnIdentityAsync(trackPullEntity);
|
var id = await trackPullConfigRepository.InsertReturnIdentityAsync(trackPullEntity);
|
||||||
@ -148,25 +125,6 @@ public class TrackPullService(
|
|||||||
throw new BusinessException("配置不存在");
|
throw new BusinessException("配置不存在");
|
||||||
|
|
||||||
ObjectMapper.Map(input, oldTrackPullEntity);
|
ObjectMapper.Map(input, oldTrackPullEntity);
|
||||||
if (input.ParseMethod == (int) ParseMethod.InterfaceRelay)
|
|
||||||
{
|
|
||||||
var paramsConfig = options.CurrentValue;
|
|
||||||
if (paramsConfig == null)
|
|
||||||
{
|
|
||||||
throw new BusinessException(message: "未找到接口通参数配置,联系管理员添加");
|
|
||||||
}
|
|
||||||
|
|
||||||
oldTrackPullEntity.OrderPath = paramsConfig.OrderPath;
|
|
||||||
oldTrackPullEntity.OrderNoName = paramsConfig.OrderNoName;
|
|
||||||
oldTrackPullEntity.TrackDetailsPath = paramsConfig.TrackDetailsPath;
|
|
||||||
oldTrackPullEntity.TrackContentCodeName = paramsConfig.TrackContentCodeName;
|
|
||||||
oldTrackPullEntity.TrackStatusName = paramsConfig.TrackStatusName;
|
|
||||||
oldTrackPullEntity.TrackContentName = paramsConfig.TrackContentName;
|
|
||||||
oldTrackPullEntity.TrackPlaceName = paramsConfig.TrackPlaceName;
|
|
||||||
oldTrackPullEntity.TrackIsoTimeName = paramsConfig.TrackIsoTimeName;
|
|
||||||
oldTrackPullEntity.TrackTimeName = paramsConfig.TrackTimeName;
|
|
||||||
oldTrackPullEntity.TrackTimeZoneName = paramsConfig.TrackTimeZoneName;
|
|
||||||
}
|
|
||||||
|
|
||||||
await trackPullConfigRepository.UpdateAsync(oldTrackPullEntity);
|
await trackPullConfigRepository.UpdateAsync(oldTrackPullEntity);
|
||||||
|
|
||||||
|
|||||||
@ -20,72 +20,6 @@ public class TrackPullConfigEntity : FullAuditedAggregateRoot<int, int>
|
|||||||
[SugarColumn(ColumnName = "ServiceProviderCode")]
|
[SugarColumn(ColumnName = "ServiceProviderCode")]
|
||||||
public string ServiceProviderCode { get; set; }
|
public string ServiceProviderCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 解析方式,1取接口通返参映射后的,2取服务商原返参
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "ParseMethod")]
|
|
||||||
public ParseMethod ParseMethod { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单路径
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "OrderPath")]
|
|
||||||
public string OrderPath { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 单号参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "OrderNoName")]
|
|
||||||
public string OrderNoName { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹明细路径
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackDetailsPath")]
|
|
||||||
public string TrackDetailsPath { get; set; } = null!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹状态参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackStatusName")]
|
|
||||||
public string? TrackStatusName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹代码参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackContentCodeName")]
|
|
||||||
public string? TrackContentCodeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹内容参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackContentName")]
|
|
||||||
public string? TrackContentName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生地参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackPlaceName")]
|
|
||||||
public string? TrackPlaceName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生ISO时间参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackIsoTimeName")]
|
|
||||||
public string? TrackIsoTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生时间参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackTimeName")]
|
|
||||||
public string? TrackTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹时区参数名
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(ColumnName = "TrackTimeZoneName")]
|
|
||||||
public string? TrackTimeZoneName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开始轨迹code
|
/// 开始轨迹code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -109,4 +43,10 @@ public class TrackPullConfigEntity : FullAuditedAggregateRoot<int, int>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "SilenceAfterEnd")]
|
[SugarColumn(ColumnName = "SilenceAfterEnd")]
|
||||||
public int SilenceAfterEnd { get; set; }
|
public int SilenceAfterEnd { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹扩展信息参数名集合(逗号分割)
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "TrackExtraNames")]
|
||||||
|
public string? TrackExtraNames { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,16 +6,6 @@ public class GetTrackPullConfigDetailOutputVO
|
|||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹订单号
|
|
||||||
/// </summary>
|
|
||||||
public string OrderNoName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 返参解析对象
|
|
||||||
/// </summary>
|
|
||||||
public int ParseMethod { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 服务商id
|
/// 服务商id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -41,51 +31,6 @@ public class GetTrackPullConfigDetailOutputVO
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string? TrackExtraNames { get; set; }
|
public string? TrackExtraNames { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹发生ISO时间参数名
|
|
||||||
/// </summary>
|
|
||||||
public string? TrackIsoTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹发生时间
|
|
||||||
/// </summary>
|
|
||||||
public string TrackTimeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹时区
|
|
||||||
/// </summary>
|
|
||||||
public string TrackTimeZoneName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹内容代码
|
|
||||||
/// </summary>
|
|
||||||
public string TrackContentCodeName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹内容
|
|
||||||
/// </summary>
|
|
||||||
public string TrackContentName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹发生地
|
|
||||||
/// </summary>
|
|
||||||
public string TrackPlaceName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 拉取轨迹状态
|
|
||||||
/// </summary>
|
|
||||||
public string TrackStatusName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 订单路径
|
|
||||||
/// </summary>
|
|
||||||
public string OrderPath { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 轨迹明细路径
|
|
||||||
/// </summary>
|
|
||||||
public string TrackDetailsPath { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开始轨迹code
|
/// 开始轨迹code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -91,9 +91,6 @@ public class TrackPullConfigRepository : BasicRepository<TrackPullConfigEntity>,
|
|||||||
AppKey = system.AppKey,
|
AppKey = system.AppKey,
|
||||||
ServiceProviderId = service.Id,
|
ServiceProviderId = service.Id,
|
||||||
ServiceProviderCode = service.Code,
|
ServiceProviderCode = service.Code,
|
||||||
OrderNoName = trackPull.OrderNoName,
|
|
||||||
ParseMethod = (int)trackPull.ParseMethod,
|
|
||||||
TrackIsoTimeName = trackPull.TrackIsoTimeName,
|
|
||||||
}, true)
|
}, true)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user