Browse Source

callqueue

admin 2 years ago
parent
commit
fe70826500

+ 4 - 6
src/CallCenter.Application/Handlers/CallState/RingVisitorToExtNotificationHandler.cs

@@ -13,14 +13,14 @@ namespace CallCenter.Application.Handlers
         private readonly ICallDetailRepository _callDetailRepository;
         private readonly IRealtimeService _realtimeService;
         private readonly IUserCacheManager _userCacheManager;
-        private readonly ICallCacheManager _callCacheManager;
-        public RingVisitorToExtNotificationHandler(ICallRepository callRepository, ICallDetailRepository callDetailRepository,IRealtimeService realtimeService, IUserCacheManager userCacheManager, ICallCacheManager callCacheManager)
+        
+        public RingVisitorToExtNotificationHandler(ICallRepository callRepository, ICallDetailRepository callDetailRepository,IRealtimeService realtimeService, IUserCacheManager userCacheManager)
         {
             _callRepository = callRepository;
             _callDetailRepository = callDetailRepository;
             _realtimeService = realtimeService;
             _userCacheManager = userCacheManager;
-            _callCacheManager = callCacheManager;
+            
         }
 
 
@@ -47,9 +47,7 @@ namespace CallCenter.Application.Handlers
                 };
                 await _callDetailRepository.AddAsync(detail, cancellationToken);
 
-                //处理排队缓存数据 TODO
-                _callCacheManager.RemoveCallCache(model.Id);
-                await _realtimeService.CallQueueAsync(_callCacheManager.GetCallQueueList(), cancellationToken);
+               
 
                 //调用业务弹屏 通知前端
                 var workModel = _userCacheManager.GetWorkByTel(notification.TelNo);

+ 7 - 1
src/CallCenter.Application/Handlers/FlowControl/AnsweredVisitorToExtNotificationHandler.cs

@@ -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)
                 {