调整推送索引字段
This commit is contained in:
parent
21c6422f23
commit
6cc32ffbad
@ -0,0 +1,5 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class TrackPushRecordItem
|
||||
{
|
||||
}
|
||||
@ -27,6 +27,21 @@ public class TrackPushEvent
|
||||
/// </summary>
|
||||
public int TrackContentId { get; set; }
|
||||
|
||||
/// <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>
|
||||
|
||||
@ -51,11 +51,18 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
||||
RequestId = res.RequestId,
|
||||
Message = res.Msg,
|
||||
OptionType = @event.OptionType.ToString(),
|
||||
TrackStatus = @event.TrackStatus,
|
||||
TrackCode = @event.TrackCode,
|
||||
TrackContent = @event.TrackContent,
|
||||
TrackPlace = @event.TrackPlace,
|
||||
TrackTime = @event.TrackTime,
|
||||
TrackTimeZone = @event.TrackTimeZone,
|
||||
TrackContentCodeValue = @event.TrackContentCodeValue,
|
||||
TrackContentValue = @event.TrackContentValue,
|
||||
TrackEnContentValue = @event.TrackEnContentValue,
|
||||
TrackStatusValue = @event.TrackStatusValue,
|
||||
ExpandFieldsValue = @event.ExpandFieldsValue,
|
||||
IsSuccess = isSuccess,
|
||||
IsAuto = @event.OperationMan == null,
|
||||
CreateUser = @event.OperationMan ?? "系统",
|
||||
CreateTime = DateTime.Now
|
||||
});
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using DotNetCore.CAP;
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Contract.Events;
|
||||
using SJZY.Track.Application.Contract.Services;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
@ -155,37 +156,50 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
||||
/// <param name="track"></param>
|
||||
private async Task HandleTrackPushAsync(TrackUpsertEvent @event, TrackDetailsIndex track)
|
||||
{
|
||||
var config = await _trackPushCacheService.InferNextPushContentOrNullAsync(
|
||||
@event.SubSystemId, @event.CustomId, @event.LatestPushTrackContentId);
|
||||
|
||||
if (config == null || !config.IsAutoPush) return;
|
||||
|
||||
// 当前发生的轨迹就是要推送的
|
||||
if (config.TrackContentId == track.TrackContentId && config.OrderType == @event.OrderType)
|
||||
TrackPushContentConfigDto? config;
|
||||
OptionType optionType = OptionType.修改;
|
||||
// 推送更新
|
||||
if (!track.Id.IsNullOrWhiteSpace())
|
||||
{
|
||||
var trackPushEvent = new TrackPushEvent
|
||||
{
|
||||
ServiceProviderCode = config.ServiceProviderCode,
|
||||
OrderNo = track.OrderNo,
|
||||
TrackContentId = config.TrackContentId,
|
||||
TrackPlace = track.TrackPlace,
|
||||
TrackTime = track.TrackTime.AddHours(config.TrackTimeZone ?? track.TrackTimeZone - track.TrackTimeZone),
|
||||
TrackTimeZone = (float)(config.TrackTimeZone ?? track.TrackTimeZone),
|
||||
TrackContentCodeValue = config.TrackContentCodeValue,
|
||||
TrackContentValue = config.TrackContentValue,
|
||||
TrackEnContentValue = config.TrackEnContentValue,
|
||||
TrackStatusValue = config.TrackStatusValue,
|
||||
ExpandFieldsValue = config.ExpandFieldsValue
|
||||
};
|
||||
|
||||
// 推送更新
|
||||
if (!track.Id.IsNullOrWhiteSpace())
|
||||
{
|
||||
trackPushEvent.OptionType = OptionType.修改;
|
||||
if (!config.IsCanUpdate) return;
|
||||
}
|
||||
|
||||
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
||||
config = await _trackPushCacheService.GetPushContentConfigAsync(
|
||||
@event.SubSystemId, @event.CustomId, track.TrackContentId);
|
||||
if (!config.IsCanUpdate) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 推送新增,需要根据上一次的推送 推断 本次推送 是否可行
|
||||
config = await _trackPushCacheService.InferNextPushContentOrNullAsync(
|
||||
@event.SubSystemId, @event.CustomId, @event.LatestPushTrackContentId);
|
||||
|
||||
if (config == null || !config.IsAutoPush) return;
|
||||
|
||||
// 当前发生的轨迹就是要推送的
|
||||
if (config.TrackContentId != track.TrackContentId) return;
|
||||
|
||||
optionType = OptionType.新增;
|
||||
}
|
||||
|
||||
if (config.OrderType != @event.OrderType) return;
|
||||
|
||||
var trackPushEvent = new TrackPushEvent
|
||||
{
|
||||
OptionType = optionType,
|
||||
ServiceProviderCode = config.ServiceProviderCode,
|
||||
OrderNo = track.OrderNo,
|
||||
TrackContentId = config.TrackContentId,
|
||||
TrackStatus = track.TrackStatus,
|
||||
TrackCode = track.TrackCode,
|
||||
TrackContent = track.TrackContent,
|
||||
TrackPlace = track.TrackPlace,
|
||||
TrackTime = track.TrackTime.AddHours(config.TrackTimeZone ?? track.TrackTimeZone - track.TrackTimeZone),
|
||||
TrackTimeZone = (float)(config.TrackTimeZone ?? track.TrackTimeZone),
|
||||
TrackContentCodeValue = config.TrackContentCodeValue,
|
||||
TrackContentValue = config.TrackContentValue,
|
||||
TrackEnContentValue = config.TrackEnContentValue,
|
||||
TrackStatusValue = config.TrackStatusValue,
|
||||
ExpandFieldsValue = config.ExpandFieldsValue
|
||||
};
|
||||
|
||||
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
|
||||
}
|
||||
}
|
||||
@ -78,6 +78,10 @@ public class TrackPushService : ApplicationService
|
||||
{
|
||||
ServiceProviderCode = config.ServiceProviderCode,
|
||||
OrderNo = order.OrderNo,
|
||||
TrackContentId = config.TrackContentId,
|
||||
TrackStatus = track.TrackStatus,
|
||||
TrackCode = track.TrackCode,
|
||||
TrackContent = track.TrackContent,
|
||||
TrackPlace = track.TrackPlace,
|
||||
TrackTime = track.TrackTime.AddHours(config.TrackTimeZone ??
|
||||
track.TrackTimeZone - track.TrackTimeZone),
|
||||
|
||||
@ -3,6 +3,7 @@ using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||
using SJZY.Track.Domain.Enums;
|
||||
@ -17,16 +18,19 @@ public class TrackOrderService : ApplicationService
|
||||
private readonly ITrackOrderQueries _trackOrderQueries;
|
||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||
private readonly ITrackContentRepository _trackContentRepository;
|
||||
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
||||
|
||||
public TrackOrderService(
|
||||
ITrackOrderQueries trackOrderQueries,
|
||||
ITrackDetailsRepository trackDetailsRepository,
|
||||
ITrackContentRepository trackContentRepository
|
||||
ITrackContentRepository trackContentRepository,
|
||||
ITrackPushRecordsRepository trackPushRecordsRepository
|
||||
)
|
||||
{
|
||||
_trackOrderQueries = trackOrderQueries;
|
||||
_trackDetailsRepository = trackDetailsRepository;
|
||||
_trackContentRepository = trackContentRepository;
|
||||
_trackPushRecordsRepository = trackPushRecordsRepository;
|
||||
}
|
||||
|
||||
#region 轨迹订单明细
|
||||
@ -136,4 +140,15 @@ public class TrackOrderService : ApplicationService
|
||||
WarnCount = counts.FirstOrDefault(x => x.ProblemType == (int)TrackProblemType.Warn)?.Count ?? 0,
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹推送记录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <param name="orderId">订单id</param>
|
||||
[HttpGet]
|
||||
public async Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId)
|
||||
{
|
||||
return await _trackPushRecordsRepository.GetTrackPushRecordsAsync(orderId);
|
||||
}
|
||||
}
|
||||
@ -23,8 +23,6 @@ public interface ITrackDetailsRepository
|
||||
/// <returns></returns>
|
||||
Task<bool> DeleteTrackAsync(int orderId, List<string> trackCodes);
|
||||
|
||||
Task<List<TrackDetailsIndex>?> GetListAsync(List<int> orderIds);
|
||||
|
||||
/// <summary>
|
||||
/// 获取最近一条发生的轨迹
|
||||
/// </summary>
|
||||
|
||||
@ -8,4 +8,11 @@ public interface ITrackPushRecordsRepository
|
||||
/// <param name="index"></param>
|
||||
/// <returns></returns>
|
||||
Task AddAsync(TrackPushRecordIndex index);
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹推送记录
|
||||
/// </summary>
|
||||
/// <param name="orderId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId);
|
||||
}
|
||||
@ -12,6 +12,11 @@ public class TrackPushRecordIndex : IdBaseIndex
|
||||
/// </summary>
|
||||
public string IndexName { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 订单Id
|
||||
/// </summary>
|
||||
public int OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 接口通请求Id
|
||||
/// </summary>
|
||||
@ -28,9 +33,19 @@ public class TrackPushRecordIndex : IdBaseIndex
|
||||
public string OptionType { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 是否自动推送
|
||||
/// 轨迹状态
|
||||
/// </summary>
|
||||
public bool IsAuto { get; set; }
|
||||
public string TrackStatus { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹内容代码
|
||||
/// </summary>
|
||||
public string TrackCode { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹内容
|
||||
/// </summary>
|
||||
public string TrackContent { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹发生地
|
||||
@ -52,6 +67,31 @@ public class TrackPushRecordIndex : IdBaseIndex
|
||||
/// </summary>
|
||||
public bool IsSuccess { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹代码参数值
|
||||
/// </summary>
|
||||
public string? TrackContentCodeValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹内容参数值
|
||||
/// </summary>
|
||||
public string? TrackContentValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹内容英文参数值
|
||||
/// </summary>
|
||||
public string? TrackEnContentValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹状态参数值
|
||||
/// </summary>
|
||||
public string? TrackStatusValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 扩展字段参数值
|
||||
/// </summary>
|
||||
public string? ExpandFieldsValue { get; set; }
|
||||
|
||||
/// <summary>创建人</summary>
|
||||
public string? CreateUser { get; set; }
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using Nest;
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Expand.ElasticSearch.Services;
|
||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||
@ -25,4 +26,16 @@ public class TrackPushRecordsRepository : ElasticSearchContextAbstract<TrackDeta
|
||||
LogHelper.Error($"轨迹推送记录写入es失败,原因:{r.DebugInformation}。");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<List<TrackPushRecordIndex>> GetTrackPushRecordsAsync(int orderId)
|
||||
{
|
||||
var data = await Context.SearchAsync<TrackPushRecordIndex>(x => x
|
||||
.Query(q =>
|
||||
q.Term(t => t.OrderId, orderId)
|
||||
)
|
||||
.Size(1000)
|
||||
.Sort(s => s.Field(f => f.CreateTime, SortOrder.Descending)));
|
||||
|
||||
return data.Documents.ToList();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user