50 lines
1.9 KiB
C#
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);
|
|
}
|
|
} |