|
@@ -13,13 +13,15 @@ namespace CallCenter.Application.Handlers
|
|
|
private readonly ICallDetailRepository _callDetailRepository;
|
|
|
private readonly IRealtimeService _realtimeService;
|
|
|
private readonly IUserCacheManager _userCacheManager;
|
|
|
+ private readonly ICallCacheManager _callCacheManager;
|
|
|
|
|
|
- public AnsweredVisitorToExtNotificationHandler(ICallRepository callRepository, ICallDetailRepository callDetailRepository,IRealtimeService realtimeService,IUserCacheManager userCacheManager)
|
|
|
+ public AnsweredVisitorToExtNotificationHandler(ICallRepository callRepository, ICallDetailRepository callDetailRepository,IRealtimeService realtimeService,IUserCacheManager userCacheManager, ICallCacheManager callCacheManager)
|
|
|
{
|
|
|
_callRepository = callRepository;
|
|
|
_callDetailRepository = callDetailRepository;
|
|
|
_realtimeService = realtimeService;
|
|
|
_userCacheManager = userCacheManager;
|
|
|
+ _callCacheManager = callCacheManager;
|
|
|
}
|
|
|
|
|
|
public async Task Handle(AnsweredVisitorToExtNotification notification, CancellationToken cancellationToken)
|
|
@@ -47,6 +49,10 @@ namespace CallCenter.Application.Handlers
|
|
|
await _callDetailRepository.AddAsync(detail, cancellationToken);
|
|
|
|
|
|
|
|
|
+ //处理排队缓存数据 TODO
|
|
|
+ _callCacheManager.RemoveCallCache(model.Id);
|
|
|
+ await _realtimeService.CallQueueAsync(_callCacheManager.GetCallQueueList(), cancellationToken);
|
|
|
+
|
|
|
var callDetail = _callDetailRepository.GetAsync(x => x.CallId == model.Id && x.EventName == "ANSWER");
|
|
|
if (callDetail == null)
|
|
|
{
|