admin 2 years ago
parent
commit
6aab1b5b6d

+ 1 - 1
src/CallCenter.Api/Controllers/TelController.cs

@@ -471,7 +471,7 @@ namespace CallCenter.Api.Controllers
             {
                 throw new UserFriendlyException("当前通话已结束");
             }
-            if (call.CallStatus == ECallStatus.Answer || call.CallStatus == ECallStatus.Answered)
+            if (call.CallStatus != ECallStatus.Answered && call.CallStatus != ECallStatus.Answer)
             {
                 throw new UserFriendlyException("当前未进行通话,不能发送评价邀请");
             }

+ 2 - 2
src/CallCenter.Api/appsettings.Development.json

@@ -52,7 +52,7 @@
     "Origins": [ "http://localhost:8888", "http://callcenter-admin.fengwo.com", "http://admin.call.fengwo.com" ]
   },
   "SendCallRecord": {
-    "FwUrl": "http://192.168.100.84:8066/api/call/insertcalls"
+    "FwUrl": "http://192.168.100.27:8066/api/call/insertcalls"
   },
   "WorkTimeSettings": {
     "LineSetting": [
@@ -72,7 +72,7 @@
       },
       {
         //"NumNo": "12345",
-        "NumNo": "3495",
+        "NumNo": "3496",
         "MorningBegin": "00:00",
         "MorningEnd": "12:00",
         "AfterBegin": "12:00",

+ 13 - 0
src/CallCenter.Application/Handlers/CallState/DtmfNotificationHandler.cs

@@ -72,6 +72,19 @@ namespace CallCenter.Application.Handlers
                 }
                 detail.Remark = info;
                 await _callDetailRepository.AddAsync(detail, cancellationToken);
+
+                #region 处理评价
+
+                var callDetail = await _callDetailRepository.GetAsync(x => x.CallId == model.Id && x.EventName == "EVALUATE", cancellationToken);
+                if (callDetail!=null)
+                {
+                    callDetail.Remark = info;
+                    await _callDetailRepository.UpdateAsync(callDetail, cancellationToken);
+                }
+
+                #endregion
+
+
                 //调用事件处理
                 var dtmfResult = await _ivrDomainService.GetDtmfAnswerAsync(menuId, info, cancellationToken);
 

+ 1 - 1
src/CallCenter.Application/Handlers/FlowControl/CdrNotificationHandler.cs

@@ -120,7 +120,7 @@ namespace CallCenter.Application.Handlers
                         {
                             callDto.SoundFileName = (await _callRecordRepository.GetAsync(x => x.CallId == callModel.Id && !string.IsNullOrEmpty(x.Recording)))?.Recording;
                         }
-                        callDto.EvaluateResult = "";
+                        callDto.EvaluateResult = call.CallDetails?.FirstOrDefault(x=>x.EventName== "EVALUATE")?.Remark;
                         callDto.EndBy = call.EndBy;
                         callDto.InIvrTime = call.InIvrTime;
                         callDto.OutIvrTime = call.OutIvrTime;

+ 62 - 62
src/CallCenter.CacheManager/BlacklistManager.cs

@@ -1,62 +1,62 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using CacheManager.Core;
-using CallCenter.BlackLists;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using XF.Domain.Dependency;
-
-namespace CallCenter.CacheManager
-{
-    public class BlacklistManager : BackgroundService
-    {
-        //private readonly ICacheManager<Blacklist> _cacheManager;
-        private readonly IServiceScopeFactory _serviceScopeFactory;
-
-        public BlacklistManager(IServiceScopeFactory serviceScopeFactory)
-        {
-            _serviceScopeFactory = serviceScopeFactory;
-
-            //cacheManager.OnAdd += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-            //cacheManager.OnRemove += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-            //cacheManager.OnClear += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-            //cacheManager.OnRemoveByHandle += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-            //cacheManager.OnPut += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-            //cacheManager.OnUpdate += (sender, args) => { Console.WriteLine(args.ToString()); };
-
-        }
-
-        /// <summary>
-        /// This method is called when the <see cref="T:Microsoft.Extensions.Hosting.IHostedService" /> starts. The implementation should return a task that represents
-        /// the lifetime of the long running operation(s) being performed.
-        /// </summary>
-        /// <param name="stoppingToken">Triggered when <see cref="M:Microsoft.Extensions.Hosting.IHostedService.StopAsync(System.Threading.CancellationToken)" /> is called.</param>
-        /// <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the long running operations.</returns>
-        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
-        {
-            var time = TimeSpan.FromMinutes(5);
-            await Task.Delay(time, stoppingToken);
-            while (!stoppingToken.IsCancellationRequested)
-            {
-                using var scope = _serviceScopeFactory.CreateScope();
-                var blacklistRepository = scope.ServiceProvider.GetService<IBlacklistRepository>();
-                var expiredBlackListItems =
-                    await blacklistRepository!.QueryAsync(d => !d.IsDeleted && d.Expired <= DateTime.Now);
-                foreach (var blacklistItem in expiredBlackListItems)
-                {
-                    await blacklistRepository.RemoveAsync(blacklistItem, true, stoppingToken);
-                }
-
-                await Task.Delay(time, stoppingToken);
-            }
-        }
-    }
-}
+//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+//using CacheManager.Core;
+//using CallCenter.BlackLists;
+//using Microsoft.Extensions.DependencyInjection;
+//using Microsoft.Extensions.Hosting;
+//using XF.Domain.Dependency;
+
+//namespace CallCenter.CacheManager
+//{
+//    public class BlacklistManager //: BackgroundService
+//    {
+//        //private readonly ICacheManager<Blacklist> _cacheManager;
+//        private readonly IServiceScopeFactory _serviceScopeFactory;
+
+//        public BlacklistManager(IServiceScopeFactory serviceScopeFactory)
+//        {
+//            _serviceScopeFactory = serviceScopeFactory;
+
+//            //cacheManager.OnAdd += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//            //cacheManager.OnRemove += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//            //cacheManager.OnClear += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//            //cacheManager.OnRemoveByHandle += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//            //cacheManager.OnPut += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//            //cacheManager.OnUpdate += (sender, args) => { Console.WriteLine(args.ToString()); };
+
+//        }
+
+//        /// <summary>
+//        /// This method is called when the <see cref="T:Microsoft.Extensions.Hosting.IHostedService" /> starts. The implementation should return a task that represents
+//        /// the lifetime of the long running operation(s) being performed.
+//        /// </summary>
+//        /// <param name="stoppingToken">Triggered when <see cref="M:Microsoft.Extensions.Hosting.IHostedService.StopAsync(System.Threading.CancellationToken)" /> is called.</param>
+//        /// <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the long running operations.</returns>
+//        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+//        {
+//            var time = TimeSpan.FromMinutes(5);
+//            await Task.Delay(time, stoppingToken);
+//            while (!stoppingToken.IsCancellationRequested)
+//            {
+//                using var scope = _serviceScopeFactory.CreateScope();
+//                var blacklistRepository = scope.ServiceProvider.GetService<IBlacklistRepository>();
+//                var expiredBlackListItems =
+//                    await blacklistRepository!.QueryAsync(d => !d.IsDeleted && d.Expired <= DateTime.Now);
+//                foreach (var blacklistItem in expiredBlackListItems)
+//                {
+//                    await blacklistRepository.RemoveAsync(blacklistItem, true, stoppingToken);
+//                }
+
+//                await Task.Delay(time, stoppingToken);
+//            }
+//        }
+//    }
+//}

+ 21 - 0
src/CallCenter/Settings/WorkTimeSettings.cs

@@ -27,12 +27,33 @@ namespace CallCenter.Settings
 
     public class LineSetting
     {
+        /// <summary>
+        /// 电话号码
+        /// </summary>
         public string NumNo { get; set; }
+        /// <summary>
+        /// 上午开始时间
+        /// </summary>
         public string MorningBegin { get; set; }
+        /// <summary>
+        /// 上午结束时间
+        /// </summary>
         public string MorningEnd { get; set; }
+        /// <summary>
+        /// 下午开始时间
+        /// </summary>
         public string AfterBegin { get; set; }
+        /// <summary>
+        /// 下午结束时间
+        /// </summary>
         public string AfterEnd { get; set; }
+        /// <summary>
+        /// 工作日
+        /// </summary>
         public List<int> WorkDay { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
         public string WorkCategory { get; set; }
         public string RestCategory { get; set; }
         public string WorkToGroup { get; set; }