feat: PullChangeBottomLineUpdateOrderEvent 事件迁移
This commit is contained in:
parent
f1d15c34df
commit
6b43722fa6
@ -73,7 +73,6 @@ public class TrackPushContentConfigDto
|
||||
/// 扩展字段参数值
|
||||
/// </summary>
|
||||
public string? ExpandFieldsValue { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 时间格式枚举
|
||||
|
||||
@ -36,5 +36,10 @@
|
||||
/// 轨迹内容英文
|
||||
/// </summary>
|
||||
public string EntrackStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 节点名称
|
||||
/// </summary>
|
||||
public string? NodeName { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
namespace SJZY.Track.Application.Contract.Events;
|
||||
|
||||
public class PullChangeBottomLineUpdateOrderEvent
|
||||
{
|
||||
public List<int> OrderIds { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||
/// </summary>
|
||||
public int DeficiencyTagValue { get; set; }
|
||||
}
|
||||
@ -56,4 +56,9 @@ public class TrackChangeAfterUpdateOrderEvent
|
||||
/// 轨迹内容代码
|
||||
/// </summary>
|
||||
public string? TrackCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||
/// </summary>
|
||||
public int DeficiencyTagValue { get; set; }
|
||||
}
|
||||
@ -53,4 +53,9 @@ public class TrackUpsertEvent
|
||||
public List<int> Visited { get; set; } = new();
|
||||
|
||||
public TrackRefreshStruct TrackRefreshData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||
/// </summary>
|
||||
public int DeficiencyTagValue { get; set; }
|
||||
}
|
||||
@ -15,6 +15,7 @@ public class TrackPullAutoMapperProfile : Profile
|
||||
.ForMember(dest => dest.IsPush, opt => opt.MapFrom(source => false));
|
||||
CreateMap<EditTrackPullContentInput, TrackPullContentConfigEntity>(MemberList.None)
|
||||
.ForMember(dest => dest.TrackKeyword, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywords)))
|
||||
.ForMember(dest => dest.TrackZonePlaceValue, opt => opt.MapFrom(src => string.Join(',', src.TrackTimePlaceValue)))
|
||||
.ForMember(dest => dest.TrackKeywordReverse, opt => opt.MapFrom(src => string.Join(',', src.TrackKeywordReverses)));
|
||||
CreateMap<GetTrackPullConfigDetailOutputVO, TrackPullParamConfigDto>(MemberList.None);
|
||||
CreateMap<GetTrackPullContentListCacheVO, TrackPullContentConfigDto>(MemberList.None);
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
using DotNetCore.CAP;
|
||||
using SJZY.Track.Application.Contract.Events;
|
||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||
using SJZY.Track.Domain.Consts;
|
||||
using Volo.Abp.DependencyInjection;
|
||||
|
||||
namespace SJZY.Track.Application.CAP.EventHandlers;
|
||||
|
||||
/// <summary>
|
||||
/// 拉去轨迹后,执行了兜底操作还是失败的标记操作
|
||||
/// </summary>
|
||||
public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency, ICapSubscribe
|
||||
{
|
||||
private readonly IOrderRepository _orderRepository;
|
||||
|
||||
public PullChangeBottomLineUpdateOrderEventHandler(IOrderRepository orderRepository)
|
||||
{
|
||||
_orderRepository = orderRepository;
|
||||
}
|
||||
|
||||
[CapSubscribe(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe)]
|
||||
public async Task ConsumerAsync(PullChangeBottomLineUpdateOrderEvent @event)
|
||||
{
|
||||
var rows =await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
|
||||
}
|
||||
}
|
||||
@ -48,6 +48,12 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
||||
}
|
||||
}
|
||||
|
||||
// 执行轨迹兜底时 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
|
||||
if (@event.DeficiencyTagValue > 0 && @event.DeficiencyTagValue<=3)
|
||||
{
|
||||
order.DeficiencyTag = @event.DeficiencyTagValue;
|
||||
}
|
||||
|
||||
if (!order.IsCompleted)
|
||||
{
|
||||
order.IsCompleted = @event.IsCompleted;
|
||||
@ -75,7 +81,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
||||
await _orderRepository.UpdateRangeAsync(updateOrders, x => new
|
||||
{
|
||||
x.IsCompleted, x.LatestTrackContent, x.LatestTrackEnContent, x.LatestTrackPlace, x.LatestTrackTime,
|
||||
x.LatestTrackTimeZone,x.IsTriggerPull
|
||||
x.LatestTrackTimeZone,x.IsTriggerPull,x.DeficiencyTag
|
||||
});
|
||||
|
||||
// 预警计算
|
||||
|
||||
@ -225,6 +225,16 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
return;
|
||||
}
|
||||
|
||||
int deficiencyTagValue = 0;
|
||||
// 触发了兜底,但是没有兜底住,对订单进行标记
|
||||
if (hasPlaceBottomLine || hasTimezoneBottomLine)
|
||||
{
|
||||
//1表示时区,2表示发生地,3表示两种
|
||||
var placeTagValue = hasPlaceBottomLine ? 2 : 0;
|
||||
var timezoneTagValue = hasTimezoneBottomLine ? 1 : 0;
|
||||
deficiencyTagValue = placeTagValue + timezoneTagValue;
|
||||
}
|
||||
|
||||
// 新增/更新轨迹
|
||||
var trackUpsertEvent = new TrackUpsertEvent
|
||||
{
|
||||
@ -237,6 +247,7 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
OrderType = context.OrderType,
|
||||
}
|
||||
},
|
||||
|
||||
TrackRefreshData = new TrackRefreshStruct
|
||||
{
|
||||
ServiceProviderName = context.ServiceProviderName,
|
||||
@ -250,26 +261,13 @@ public class TrackRefreshEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackCode = matchedContentConfig.TrackContentCode,
|
||||
TrackPlace = trackPlace ?? GlobalConst.EmptyString,
|
||||
TrackTime = trackTime ?? DateTime.Now,
|
||||
TrackTimeZone = trackTimeZone ?? 8
|
||||
TrackTimeZone = trackTimeZone ?? 8,
|
||||
DeficiencyTagValue = deficiencyTagValue
|
||||
};
|
||||
|
||||
trackUpsertEvent.IsAdd =
|
||||
!await _trackDetailsRepository.AnyByCodeAsync(context.OrderId, matchedContentConfig.TrackContentCode);
|
||||
await _capPublisher.PublishAsync(GlobalConst.TrackUpsertForRefreshSubscribe, trackUpsertEvent);
|
||||
|
||||
// 触发了兜底,但是没有兜底住,对订单进行标记
|
||||
if (hasPlaceBottomLine || hasTimezoneBottomLine)
|
||||
{
|
||||
//1表示时区,2表示发生地,3表示两种
|
||||
var placeTagValue = hasPlaceBottomLine ? 2 : 0;
|
||||
var timezoneTagValue = hasTimezoneBottomLine ? 1 : 0;
|
||||
PullChangeBottomLineUpdateOrderEvent deficiencyTagEvent = new PullChangeBottomLineUpdateOrderEvent
|
||||
{
|
||||
OrderIds = new List<int>(){context.OrderId},
|
||||
DeficiencyTagValue = placeTagValue+timezoneTagValue
|
||||
};
|
||||
await _capPublisher.PublishAsync(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe, deficiencyTagEvent);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -194,7 +194,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
||||
TrackPlace = @event.TrackPlace,
|
||||
TrackTime = @event.TrackTime,
|
||||
TrackTimeZone = @event.TrackTimeZone,
|
||||
TrackCode = @event.TrackCode
|
||||
TrackCode = @event.TrackCode,
|
||||
DeficiencyTagValue = @event.DeficiencyTagValue
|
||||
});
|
||||
|
||||
// 触发轨迹推送事件(异步)
|
||||
|
||||
@ -22,17 +22,17 @@ public class TrackPushService : ApplicationService
|
||||
private readonly ICapPublisher _capPublisher;
|
||||
private readonly ITrackPushRecordsRepository _trackPushRecordsRepository;
|
||||
private readonly IHttpClientProxy<IRequestCurrentUserService> _requestCurrentUserService;
|
||||
TrackPushEventHandler _trackPushEventHandler;
|
||||
|
||||
public TrackPushService(IOrderRepository orderRepository
|
||||
, ICapPublisher capPublisher
|
||||
, ITrackPushRecordsRepository trackPushRecordsRepository,
|
||||
IHttpClientProxy<IRequestCurrentUserService> requestCurrentUserService, TrackPushEventHandler trackPushEventHandler)
|
||||
IHttpClientProxy<IRequestCurrentUserService> requestCurrentUserService)
|
||||
{
|
||||
_orderRepository = orderRepository;
|
||||
_capPublisher = capPublisher;
|
||||
_trackPushRecordsRepository = trackPushRecordsRepository;
|
||||
_requestCurrentUserService = requestCurrentUserService;
|
||||
_trackPushEventHandler = trackPushEventHandler;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -43,24 +43,6 @@ public class TrackPushService : ApplicationService
|
||||
[HttpPost("Track/Push")]
|
||||
public async Task<string> PushTrackAsync(PushTrackInput input)
|
||||
{
|
||||
var trackPushEvenst = new TrackPushEvent
|
||||
{
|
||||
OptionType = OptionType.新增, // Assuming OptionType.新增 corresponds to 1
|
||||
SubSystemId = 9534,
|
||||
CustomId = 228618,
|
||||
OrderIds = new int[] { 1 },
|
||||
TrackCode = "CP",
|
||||
OperationMan = "郑志红",
|
||||
SystemPushInfo = new SystemPushStruct
|
||||
{
|
||||
TrackStatus = null,
|
||||
TrackContent = null,
|
||||
TrackPlace = null,
|
||||
TrackTime = DateTime.Parse("0001-01-01T00:00:00"),
|
||||
TrackTimeZone = 0.0f
|
||||
}
|
||||
};
|
||||
await _trackPushEventHandler.ConsumerAsync(trackPushEvenst);
|
||||
input.OrderNos = input.OrderNos.Where(x => !x.IsNullOrWhiteSpace()).Distinct().ToList(); // 单号去重、去空
|
||||
|
||||
var orders = await _orderRepository.GetArrayAsync(x =>
|
||||
|
||||
@ -25,7 +25,7 @@ public class TrackStatusEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
||||
public string EnStatus { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// 所属节点(主数据枚举ServiceNode)
|
||||
/// 所属节点(来自表 t_track_node) 之前是枚举,后续调整为表
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "Node")]
|
||||
public int Node { get; set; }
|
||||
|
||||
@ -56,9 +56,4 @@ public partial class GlobalConst
|
||||
/// 关联订单后补轨迹
|
||||
/// </summary>
|
||||
public const string OrderLinkAfterFillTrack = "SJZY.Track.OrderLinkAfterFillTrack";
|
||||
|
||||
/// <summary>
|
||||
/// 拉取轨迹触发兜底后更新订单
|
||||
/// </summary>
|
||||
public const string PullChangeBottomLineUpdateOrderSubscribe = "SJZY.Track.PullChangeBottomLineUpdateOrder";
|
||||
}
|
||||
@ -36,4 +36,9 @@ public class GetTrackStatusDetailVO
|
||||
/// 轨迹内容英文
|
||||
/// </summary>
|
||||
public string EntrackStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 节点名称
|
||||
/// </summary>
|
||||
public string? NodeName { get; set; }
|
||||
}
|
||||
@ -5,6 +5,11 @@ namespace SJZY.Track.Domain.Enums;
|
||||
/// </summary>
|
||||
public enum DateTimeFormatEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 默认
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 时间戳
|
||||
/// </summary>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
using SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
||||
using SJZY.Track.Domain.Dtos.TrackStatus;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
@ -14,9 +15,10 @@ public class TrackStatusRepository : BasicRepository<TrackStatusEntity>, ITrackS
|
||||
public async Task<GetTrackStatusDetailVO?> GetDetailAsync(int id)
|
||||
{
|
||||
var detail = await Context.Queryable<TrackStatusEntity>()
|
||||
.LeftJoin<VSystemEntity>((a, b) => a.SubSystemId == b.Id&&b.IsDeleted==false)
|
||||
.Where((a, b) => a.Id == id)
|
||||
.Select((a, b) => new GetTrackStatusDetailVO
|
||||
.InnerJoin<TrackNodeEntity>((a,t)=>a.Node==t.Id)
|
||||
.LeftJoin<VSystemEntity>((a, t,b) => a.SubSystemId == b.Id&&b.IsDeleted==false)
|
||||
.Where((a,t, b) => a.Id == id)
|
||||
.Select((a, t,b) => new GetTrackStatusDetailVO
|
||||
{
|
||||
Id = a.Id,
|
||||
SubSystemId = a.SubSystemId,
|
||||
@ -24,7 +26,8 @@ public class TrackStatusRepository : BasicRepository<TrackStatusEntity>, ITrackS
|
||||
Code = a.Code,
|
||||
EntrackStatus = a.EnStatus,
|
||||
NodeId = a.Node,
|
||||
TrackStatus = a.Status
|
||||
TrackStatus = a.Status,
|
||||
NodeName = t.NodeName
|
||||
})
|
||||
.FirstAsync();
|
||||
return detail;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user