track/src/SJZY.Track.Application/EventHandlers/TrackInsertForNotMappedEventHandler.cs
2024-04-12 21:34:15 +08:00

50 lines
1.9 KiB
C#

using DotNetCore.CAP;
using SJZY.Track.Application.Contract.Events;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Consts;
using Volo.Abp.DependencyInjection;
namespace SJZY.Track.Application.EventHandlers;
public class TrackInsertForNotMappedEventHandler : ITransientDependency, ICapSubscribe
{
private readonly ITrackDetailsRepository _trackDetailsRepository;
public TrackInsertForNotMappedEventHandler(ITrackDetailsRepository trackDetailsRepository)
{
_trackDetailsRepository = trackDetailsRepository;
}
[CapSubscribe(GlobalConst.TrackInsertForNotMappedEventSubscribe)]
public async Task ConsumerAsync(TrackInsertForNotMappedEvent @event)
{
if (await _trackDetailsRepository.AnyAsync(@event.OrderId, @event.TrackTime))
{
return; // 无法映射的轨迹只做新增
}
// 新增服务商轨迹到es
var track = new TrackDetailsIndex
{
IndexName = $"{GlobalConst.TrackIndex}-{DateTime.Now:yyyy.MM.dd}",
OrderId = @event.OrderId,
OrderNo = @event.OrderNo,
OrderType = @event.OrderType,
TrackPlace = @event.TrackPlace,
TrackTime = @event.TrackTime,
TrackTimeZone = @event.TrackTimeZone,
ServiceProviderName = @event.ServiceProviderName,
OriginTrackContent = @event.OriginTrackContent,
OriginTrackData = @event.OriginTrackData,
CreateUser = GlobalConst.SystemUser,
CreateTime = DateTime.Now
};
track.TrackCode = GlobalConst.EmptyString;
track.TrackStatus = GlobalConst.EmptyString;
track.TrackContent = GlobalConst.EmptyString;
track.TrackEnContent = GlobalConst.EmptyString;
track.ZeroTrackTime = track.TrackTime.Subtract(TimeSpan.FromHours(track.TrackTimeZone));
await _trackDetailsRepository.UpdateAsync(track);
}
}