temp
This commit is contained in:
parent
67811638a9
commit
84e2764ebe
@ -24,7 +24,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
[CapSubscribe(GlobalConst.TrackChangeAfterUpdateOrderSubscribe)]
|
[CapSubscribe(GlobalConst.TrackChangeAfterUpdateOrderSubscribe)]
|
||||||
public async Task ConsumerAsync(TrackChangeAfterUpdateOrderEvent @event)
|
public async Task ConsumerAsync(TrackChangeAfterUpdateOrderEvent @event)
|
||||||
{
|
{
|
||||||
var orders = await _orderRepository.GetListAsync(x => @event.OrderIds.Contains(x.Id), x => MapOrderSummary(x));
|
var orders = await GetOrdersAsync(@event.OrderIds);
|
||||||
|
|
||||||
if (orders.Count == 0) return;
|
if (orders.Count == 0) return;
|
||||||
|
|
||||||
@ -68,7 +68,34 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 预警计算
|
// 预警计算
|
||||||
await _forewarningNotifyService.WarningCalculateAsync( BuiltWarningDto(orders, @event));
|
await _forewarningNotifyService.WarningCalculateAsync(BuiltWarningDto(orders, @event));
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<List<OrderEntity>> GetOrdersAsync(int[] orderIds)
|
||||||
|
{
|
||||||
|
return await _orderRepository.GetListAsync(order => orderIds.Contains(order.Id), order => new OrderEntity
|
||||||
|
{
|
||||||
|
Id = order.Id,
|
||||||
|
|
||||||
|
// 轨迹
|
||||||
|
IsCompleted = order.IsCompleted,
|
||||||
|
LatestTrackContent = order.LatestTrackContent,
|
||||||
|
LatestTrackEnContent = order.LatestTrackEnContent,
|
||||||
|
LatestTrackPlace = order.LatestTrackPlace,
|
||||||
|
LatestTrackTime = order.LatestTrackTime,
|
||||||
|
LatestTrackTimeZone = order.LatestTrackTimeZone,
|
||||||
|
|
||||||
|
// 因素
|
||||||
|
CargoType = order.CargoType,
|
||||||
|
CreateTime = order.CreateTime,
|
||||||
|
ArrivalCountry = order.ArrivalCountry,
|
||||||
|
ArrivalProvince = order.ArrivalProvince,
|
||||||
|
ArrivalCity = order.ArrivalCity,
|
||||||
|
ArrivalPostCode = order.ArrivalPostCode,
|
||||||
|
IsTransit = order.IsTransit,
|
||||||
|
LeavePort = order.LeavePort,
|
||||||
|
ProductCode = order.ProductCode
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private WarningDto BuiltWarningDto(List<OrderEntity> orders, TrackChangeAfterUpdateOrderEvent @event)
|
private WarningDto BuiltWarningDto(List<OrderEntity> orders, TrackChangeAfterUpdateOrderEvent @event)
|
||||||
@ -95,31 +122,4 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
|
|||||||
}).ToList()
|
}).ToList()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private OrderEntity MapOrderSummary(OrderEntity order)
|
|
||||||
{
|
|
||||||
return new OrderEntity
|
|
||||||
{
|
|
||||||
Id = order.Id,
|
|
||||||
|
|
||||||
// 轨迹
|
|
||||||
IsCompleted = order.IsCompleted,
|
|
||||||
LatestTrackContent = order.LatestTrackContent,
|
|
||||||
LatestTrackEnContent = order.LatestTrackEnContent,
|
|
||||||
LatestTrackPlace = order.LatestTrackPlace,
|
|
||||||
LatestTrackTime = order.LatestTrackTime,
|
|
||||||
LatestTrackTimeZone = order.LatestTrackTimeZone,
|
|
||||||
|
|
||||||
// 因素
|
|
||||||
CargoType = order.CargoType,
|
|
||||||
CreateTime = order.CreateTime,
|
|
||||||
ArrivalCountry = order.ArrivalCountry,
|
|
||||||
ArrivalProvince = order.ArrivalProvince,
|
|
||||||
ArrivalCity = order.ArrivalCity,
|
|
||||||
ArrivalPostCode = order.ArrivalPostCode,
|
|
||||||
IsTransit = order.IsTransit,
|
|
||||||
LeavePort = order.LeavePort,
|
|
||||||
ProductCode = order.ProductCode
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -51,10 +51,10 @@ public class ForewarningNotifyService : IForewarningNotifyService, ITransientDep
|
|||||||
order
|
order
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach (var rule in endingRules)
|
foreach (var member in endingRules.Select(rule =>
|
||||||
|
new WarningNotifyCacheEntry(rule.Id, order.Id).ToString())
|
||||||
|
)
|
||||||
{
|
{
|
||||||
var entry = new WarningNotifyCacheEntry(rule.Id, order.Id);
|
|
||||||
var member = entry.ToString();
|
|
||||||
// todo: pipeline optimize?
|
// todo: pipeline optimize?
|
||||||
var score = await RedisHelper.Client.ZScoreAsync(GlobalConst.ForewarningNotifyKey, member);
|
var score = await RedisHelper.Client.ZScoreAsync(GlobalConst.ForewarningNotifyKey, member);
|
||||||
// tips: score is null 说明发生ending时,没有匹配到规则,所以没有add到set,不需要删除
|
// tips: score is null 说明发生ending时,没有匹配到规则,所以没有add到set,不需要删除
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user