调整推送索引字段
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>
|
/// </summary>
|
||||||
public int TrackContentId { get; set; }
|
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>
|
||||||
/// 轨迹发生地
|
/// 轨迹发生地
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -51,11 +51,18 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
RequestId = res.RequestId,
|
RequestId = res.RequestId,
|
||||||
Message = res.Msg,
|
Message = res.Msg,
|
||||||
OptionType = @event.OptionType.ToString(),
|
OptionType = @event.OptionType.ToString(),
|
||||||
|
TrackStatus = @event.TrackStatus,
|
||||||
|
TrackCode = @event.TrackCode,
|
||||||
|
TrackContent = @event.TrackContent,
|
||||||
TrackPlace = @event.TrackPlace,
|
TrackPlace = @event.TrackPlace,
|
||||||
TrackTime = @event.TrackTime,
|
TrackTime = @event.TrackTime,
|
||||||
TrackTimeZone = @event.TrackTimeZone,
|
TrackTimeZone = @event.TrackTimeZone,
|
||||||
|
TrackContentCodeValue = @event.TrackContentCodeValue,
|
||||||
|
TrackContentValue = @event.TrackContentValue,
|
||||||
|
TrackEnContentValue = @event.TrackEnContentValue,
|
||||||
|
TrackStatusValue = @event.TrackStatusValue,
|
||||||
|
ExpandFieldsValue = @event.ExpandFieldsValue,
|
||||||
IsSuccess = isSuccess,
|
IsSuccess = isSuccess,
|
||||||
IsAuto = @event.OperationMan == null,
|
|
||||||
CreateUser = @event.OperationMan ?? "系统",
|
CreateUser = @event.OperationMan ?? "系统",
|
||||||
CreateTime = DateTime.Now
|
CreateTime = DateTime.Now
|
||||||
});
|
});
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
using DotNetCore.CAP;
|
using DotNetCore.CAP;
|
||||||
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.Track.Application.Contract.Dtos.ProvideServices;
|
||||||
using SJZY.Track.Application.Contract.Events;
|
using SJZY.Track.Application.Contract.Events;
|
||||||
using SJZY.Track.Application.Contract.Services;
|
using SJZY.Track.Application.Contract.Services;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
@ -155,37 +156,50 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
|||||||
/// <param name="track"></param>
|
/// <param name="track"></param>
|
||||||
private async Task HandleTrackPushAsync(TrackUpsertEvent @event, TrackDetailsIndex track)
|
private async Task HandleTrackPushAsync(TrackUpsertEvent @event, TrackDetailsIndex track)
|
||||||
{
|
{
|
||||||
var config = await _trackPushCacheService.InferNextPushContentOrNullAsync(
|
TrackPushContentConfigDto? config;
|
||||||
@event.SubSystemId, @event.CustomId, @event.LatestPushTrackContentId);
|
OptionType optionType = OptionType.修改;
|
||||||
|
// 推送更新
|
||||||
if (config == null || !config.IsAutoPush) return;
|
if (!track.Id.IsNullOrWhiteSpace())
|
||||||
|
|
||||||
// 当前发生的轨迹就是要推送的
|
|
||||||
if (config.TrackContentId == track.TrackContentId && config.OrderType == @event.OrderType)
|
|
||||||
{
|
{
|
||||||
var trackPushEvent = new TrackPushEvent
|
config = await _trackPushCacheService.GetPushContentConfigAsync(
|
||||||
{
|
@event.SubSystemId, @event.CustomId, track.TrackContentId);
|
||||||
ServiceProviderCode = config.ServiceProviderCode,
|
if (!config.IsCanUpdate) return;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
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,
|
ServiceProviderCode = config.ServiceProviderCode,
|
||||||
OrderNo = order.OrderNo,
|
OrderNo = order.OrderNo,
|
||||||
|
TrackContentId = config.TrackContentId,
|
||||||
|
TrackStatus = track.TrackStatus,
|
||||||
|
TrackCode = track.TrackCode,
|
||||||
|
TrackContent = track.TrackContent,
|
||||||
TrackPlace = track.TrackPlace,
|
TrackPlace = track.TrackPlace,
|
||||||
TrackTime = track.TrackTime.AddHours(config.TrackTimeZone ??
|
TrackTime = track.TrackTime.AddHours(config.TrackTimeZone ??
|
||||||
track.TrackTimeZone - track.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.Application.Contract.Dtos.TrackOrder;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
|
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||||
using SJZY.Track.Domain.Enums;
|
using SJZY.Track.Domain.Enums;
|
||||||
@ -17,16 +18,19 @@ public class TrackOrderService : ApplicationService
|
|||||||
private readonly ITrackOrderQueries _trackOrderQueries;
|
private readonly ITrackOrderQueries _trackOrderQueries;
|
||||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||||
private readonly ITrackContentRepository _trackContentRepository;
|
private readonly ITrackContentRepository _trackContentRepository;
|
||||||
|
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
||||||
|
|
||||||
public TrackOrderService(
|
public TrackOrderService(
|
||||||
ITrackOrderQueries trackOrderQueries,
|
ITrackOrderQueries trackOrderQueries,
|
||||||
ITrackDetailsRepository trackDetailsRepository,
|
ITrackDetailsRepository trackDetailsRepository,
|
||||||
ITrackContentRepository trackContentRepository
|
ITrackContentRepository trackContentRepository,
|
||||||
|
ITrackPushRecordsRepository trackPushRecordsRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_trackOrderQueries = trackOrderQueries;
|
_trackOrderQueries = trackOrderQueries;
|
||||||
_trackDetailsRepository = trackDetailsRepository;
|
_trackDetailsRepository = trackDetailsRepository;
|
||||||
_trackContentRepository = trackContentRepository;
|
_trackContentRepository = trackContentRepository;
|
||||||
|
_trackPushRecordsRepository = trackPushRecordsRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 轨迹订单明细
|
#region 轨迹订单明细
|
||||||
@ -136,4 +140,15 @@ public class TrackOrderService : ApplicationService
|
|||||||
WarnCount = counts.FirstOrDefault(x => x.ProblemType == (int)TrackProblemType.Warn)?.Count ?? 0,
|
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>
|
/// <returns></returns>
|
||||||
Task<bool> DeleteTrackAsync(int orderId, List<string> trackCodes);
|
Task<bool> DeleteTrackAsync(int orderId, List<string> trackCodes);
|
||||||
|
|
||||||
Task<List<TrackDetailsIndex>?> GetListAsync(List<int> orderIds);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取最近一条发生的轨迹
|
/// 获取最近一条发生的轨迹
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -8,4 +8,11 @@ public interface ITrackPushRecordsRepository
|
|||||||
/// <param name="index"></param>
|
/// <param name="index"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task AddAsync(TrackPushRecordIndex index);
|
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>
|
/// </summary>
|
||||||
public string IndexName { get; set; } = null!;
|
public string IndexName { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 订单Id
|
||||||
|
/// </summary>
|
||||||
|
public int OrderId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 接口通请求Id
|
/// 接口通请求Id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -28,9 +33,19 @@ public class TrackPushRecordIndex : IdBaseIndex
|
|||||||
public string OptionType { get; set; } = null!;
|
public string OptionType { get; set; } = null!;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否自动推送
|
/// 轨迹状态
|
||||||
/// </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>
|
/// <summary>
|
||||||
/// 轨迹发生地
|
/// 轨迹发生地
|
||||||
@ -52,6 +67,31 @@ public class TrackPushRecordIndex : IdBaseIndex
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsSuccess { get; set; }
|
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>
|
/// <summary>创建人</summary>
|
||||||
public string? CreateUser { get; set; }
|
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.Expand.ElasticSearch.Services;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackPushAggregate;
|
||||||
@ -25,4 +26,16 @@ public class TrackPushRecordsRepository : ElasticSearchContextAbstract<TrackDeta
|
|||||||
LogHelper.Error($"轨迹推送记录写入es失败,原因:{r.DebugInformation}。");
|
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