Dun.Jason пре 5 месеци
родитељ
комит
2f359e1b2a

+ 19 - 20
src/Hotline.Api/Controllers/AiController.cs

@@ -545,9 +545,9 @@ namespace Hotline.Api.Controllers
                         var QuestionIdZero = _systemSettingCacheManager.GetSetting(SettingConstants.QuestionIdZero)?.SettingValue[0]; //是否联系
                         var QuestionIdOne = _systemSettingCacheManager.GetSetting(SettingConstants.QuestionIdOne)?.SettingValue[0];//是否解决
                         var QuestionIdTwo = _systemSettingCacheManager.GetSetting(SettingConstants.QuestionIdTwo)?.SettingValue[0];//办件结果满意度
-                        var QuestionIdThree = _systemSettingCacheManager.GetSetting(SettingConstants.QuestionIdThree)?.SettingValue[0];//坐席是否满意
+                        //var QuestionIdThree = _systemSettingCacheManager.GetSetting(SettingConstants.QuestionIdThree)?.SettingValue[0];//坐席是否满意
                         var VisitContentIdOne = _systemSettingCacheManager.GetSetting(SettingConstants.VisitContentIdOne)?.SettingValue[0];//办件结果不满意原因
-                        var VisitContentIdTwo = _systemSettingCacheManager.GetSetting(SettingConstants.VisitContentIdTwo)?.SettingValue[0];//坐席不满意原因
+                        //var VisitContentIdTwo = _systemSettingCacheManager.GetSetting(SettingConstants.VisitContentIdTwo)?.SettingValue[0];//坐席不满意原因
                         #endregion
 
                         var aiOrderVisitDetail = aiOrderVisit.AiOrderVisitDetails.FirstOrDefault(x => x.TaskUid == dto.TaskUid);
@@ -570,9 +570,9 @@ namespace Hotline.Api.Controllers
                                 //过滤结果
                                 Kv? orgProcessingResults = null;
                                 //var orgHandledAttitude = new Kv();
-                                ESeatEvaluate? seatEvaluate = null;
+                                ESeatEvaluate? seatEvaluate = ESeatEvaluate.DefaultSatisfied;
                                 var visitContent = "";
-                                var seatVisitContent = "";
+                                var seatVisitContent = "默认满意";
                                 var volveConent = "";
                                 bool? isSolve = null;
                                 bool? isContact = null;
@@ -637,19 +637,19 @@ namespace Hotline.Api.Controllers
                                             aiOrderVisitDetail.OrderVisit.VisitState = Share.Enums.Order.EVisitState.WaitForVisit;
                                         }
 
-                                        //坐席是否满意
-                                        if (item.QuestionId == QuestionIdThree)
-                                        {
-                                            if (item.QuestionResult == "满意接电坐席")
-                                            {
-                                                seatEvaluate = ESeatEvaluate.Satisfied;
-                                            }
-                                            else if (item.QuestionResult == "不满意接电坐席")
-                                            {
-                                                seatEvaluate = ESeatEvaluate.NoSatisfied;
-                                                seatVisitContent = callRecord.SceneVariable != null ? callRecord.SceneVariable[VisitContentIdTwo] : "";
-                                            }
-                                        }
+                                        ////坐席是否满意
+                                        //if (item.QuestionId == QuestionIdThree)
+                                        //{
+                                        //    if (item.QuestionResult == "满意接电坐席")
+                                        //    {
+                                        //        seatEvaluate = ESeatEvaluate.Satisfied;
+                                        //    }
+                                        //    else if (item.QuestionResult == "不满意接电坐席")
+                                        //    {
+                                        //        seatEvaluate = ESeatEvaluate.NoSatisfied;
+                                        //        seatVisitContent = callRecord.SceneVariable != null ? callRecord.SceneVariable[VisitContentIdTwo] : "";
+                                        //    }
+                                        //}
                                     }
                                 }
 
@@ -675,7 +675,7 @@ namespace Hotline.Api.Controllers
                                     x.VisitContent = visitContent;
                                     x.Volved = isSolve;
                                     x.IsContact = isContact;
-                                    if (string.IsNullOrEmpty(orgProcessingResults?.Key) || seatEvaluate == null || isSolve == null || isContact == null ||  orgProcessingResults?.Value == "不满意" || seatEvaluate== ESeatEvaluate.NoSatisfied)
+                                    if (string.IsNullOrEmpty(orgProcessingResults?.Key) || isSolve == null || isContact == null ||  orgProcessingResults?.Value == "不满意")
                                     {
                                         //x.OrgNoSatisfiedReason = new List<Kv>() { new Kv() { Key = "7", Value = "未回复" } };
                                         //TODO 记录不满意原因到内容中供人工回访甄别选择不满意原因
@@ -732,9 +732,8 @@ namespace Hotline.Api.Controllers
                                 {
                                     aiOrderVisitDetail.OrderVisit.NowEvaluate = orgProcessingResults;
                                 }
-                                //处理是否回访完成
-
 
+                                //处理是否回访完成
                                 await _orderVisitRepository.UpdateAsync(aiOrderVisitDetail.OrderVisit, HttpContext.RequestAborted);
 
                                 //处理Order表

+ 1 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -941,7 +941,7 @@ public class OrderController : BaseController
         if (orderVisit.VisitState == EVisitState.WaitForVisit)
         {
             // 如果是待回访, 就取用户电话评价时评价的内容;
-            var callNative = await _callNativeApplication.GetReplyVoiceOrDefaultByOrderIdAsync(orderVisit.OrderId);
+            var callNative = await _callApplication.GetReplyVoiceOrDefaultByOrderIdAsync(orderVisit.OrderId);
             seat.VoiceEvaluate = callNative;
         }
 

+ 0 - 44
src/Hotline.Application/CallCenter/CallNativeApplication.cs

@@ -1,44 +0,0 @@
-using Hotline.CallCenter.Calls;
-using Hotline.Orders;
-using Hotline.Repository.SqlSugar.CallCenter;
-using Hotline.Share.Enums.Order;
-using Hotline.Share.Tools;
-using XF.Domain.Dependency;
-using XF.Domain.Exceptions;
-
-namespace Hotline.Application.CallCenter;
-public class CallNativeApplication : ICallNativeApplication, IScopeDependency
-{
-    private readonly ICallNativeRepository _callNativeRepository;
-    private readonly ICallDomainService _callDomainService;
-    private readonly IOrderVisitDomainService _orderVisitDomainService;
-
-    public CallNativeApplication(ICallNativeRepository callNativeRepository, IOrderVisitDomainService orderVisitDomainService, ICallDomainService callDomainService)
-    {
-        _callNativeRepository = callNativeRepository;
-        _orderVisitDomainService = orderVisitDomainService;
-        _callDomainService = callDomainService;
-    }
-
-    /// <summary>
-    /// 根据 OrderId 返回用户电话评价枚举
-    /// 默认返回 默认满意
-    /// </summary>
-    /// <param name="orderId"></param>
-    /// <returns></returns>
-    public async Task<EVoiceEvaluate> GetReplyVoiceOrDefaultByOrderIdAsync(string orderId)
-    {
-        var callNative = await _callDomainService.GetByOrderIdAsync(orderId);
-        if (callNative is null || callNative.ReplyTxt.IsNullOrEmpty())
-            return EVoiceEvaluate.DefaultSatisfied;
-
-        try
-        {
-            return _orderVisitDomainService.GetVisitEvaluateByReplyTxt<EVoiceEvaluate>(callNative.ReplyTxt!.Trim());
-        }
-        catch (UserFriendlyException)
-        {
-            return EVoiceEvaluate.DefaultSatisfied;
-        }
-    }
-}

+ 32 - 1
src/Hotline.Application/CallCenter/DefaultCallApplication.cs

@@ -3,11 +3,13 @@ using Hotline.CallCenter.BlackLists;
 using Hotline.CallCenter.Calls;
 using Hotline.CallCenter.Tels;
 using Hotline.Orders;
+using Hotline.Repository.SqlSugar.CallCenter;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.TrCallCenter;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Share.Enums.Order;
 using Hotline.Share.Tools;
 using Hotline.Users;
 using MapsterMapper;
@@ -34,6 +36,8 @@ public abstract class DefaultCallApplication : ICallApplication
     private readonly ISessionContext _sessionContext;
     private readonly IMapper _mapper;
     private readonly ILogger<DefaultCallApplication> _logger;
+    private readonly ICallDomainService _callDomainService;
+    private readonly IOrderVisitDomainService _orderVisitDomainService;
 
     public DefaultCallApplication(
         IRepository<Tel> telRepository,
@@ -47,7 +51,9 @@ public abstract class DefaultCallApplication : ICallApplication
         IUserCacheManager userCacheManager,
         ISessionContext sessionContext,
         IMapper mapper,
-        ILogger<DefaultCallApplication> logger)
+        ILogger<DefaultCallApplication> logger,
+        IOrderVisitDomainService orderVisitDomainService,
+        ICallDomainService callDomainService)
     {
         _telRepository = telRepository;
         _telGroupRepository = telGroupRepository;
@@ -61,6 +67,8 @@ public abstract class DefaultCallApplication : ICallApplication
         _sessionContext = sessionContext;
         _mapper = mapper;
         _logger = logger;
+        _orderVisitDomainService = orderVisitDomainService;
+        _callDomainService = callDomainService;
     }
 
     public DefaultCallApplication()
@@ -361,6 +369,29 @@ public abstract class DefaultCallApplication : ICallApplication
             .ToListAsync(cancellationToken);
     }
 
+    /// <summary>
+    /// 根据 OrderId 返回用户电话评价枚举
+    /// 默认返回 默认满意
+    /// </summary>
+    /// <param name="orderId"></param>
+    /// <returns></returns>
+    public virtual async Task<EVoiceEvaluate> GetReplyVoiceOrDefaultByOrderIdAsync(string orderId)
+    {
+        var callNative = await _callDomainService.GetByOrderIdAsync(orderId);
+        if (callNative is null || callNative.ReplyTxt.IsNullOrEmpty())
+            return EVoiceEvaluate.DefaultSatisfied;
+
+        try
+        {
+            return _orderVisitDomainService.GetVisitEvaluateByReplyTxt<EVoiceEvaluate>(callNative.ReplyTxt!.Trim());
+        }
+        catch (UserFriendlyException)
+        {
+            return EVoiceEvaluate.DefaultSatisfied;
+        }
+    }
+
+
     #region tianrun 临时方案
 
     public virtual Task<TrCallRecord?> GetTianrunCallAsync(string callId, CancellationToken cancellationToken)

+ 8 - 0
src/Hotline.Application/CallCenter/ICallApplication.cs

@@ -5,6 +5,7 @@ using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.TrCallCenter;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Share.Enums.Order;
 
 namespace Hotline.Application.CallCenter
 {
@@ -146,5 +147,12 @@ namespace Hotline.Application.CallCenter
         /// </summary>
         /// <returns></returns>
         List<Kv> GetTelOperationOptions();
+
+        /// <summary>
+        /// 查询语音评价内容
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        ESeatEvaluate GetReplyVoiceOrDefaultByOrderIdAsync(string orderId);
     }
 }

+ 0 - 13
src/Hotline.Application/CallCenter/ICallNativeApplication.cs

@@ -1,13 +0,0 @@
-using Hotline.Share.Enums.Order;
-
-namespace Hotline.Application.CallCenter;
-public interface  ICallNativeApplication
-{
-    /// <summary>
-    /// 根据 OrderId 返回用户电话评价枚举
-    /// 默认返回 默认满意
-    /// </summary>
-    /// <param name="orderId"></param>
-    /// <returns></returns>
-    Task<EVoiceEvaluate> GetReplyVoiceOrDefaultByOrderIdAsync(string orderId);
-}

+ 26 - 2
src/Hotline.Application/CallCenter/TianRunCallApplication.cs

@@ -15,6 +15,7 @@ using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.CallCenter;
 using Hotline.Share.Dtos.TrCallCenter;
 using Hotline.Share.Enums.CallCenter;
+using Hotline.Share.Enums.Order;
 using Hotline.Share.Mq;
 using MapsterMapper;
 using Microsoft.AspNetCore.Http;
@@ -33,6 +34,7 @@ namespace Hotline.Application.CallCenter
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
         private readonly IMapper _mapper;
         private readonly ICapPublisher _capPublisher;
+        private readonly IRepository<TrCallEvaluate> _trCallEvaluateRepository;
 
 
         public TianRunCallApplication(
@@ -42,8 +44,8 @@ namespace Hotline.Application.CallCenter
             ITelApplication telApplication,
             ISystemSettingCacheManager systemSettingCacheManager,
             IMapper mapper
-,
-            ICapPublisher capPublisher)
+            ICapPublisher capPublisher,
+            IRepository<TrCallEvaluate> trCallEvaluateRepository)
         {
             _sessionContext = sessionContext;
             _trCallRecordRepository = trCallRecordRepository;
@@ -52,6 +54,7 @@ namespace Hotline.Application.CallCenter
             _systemSettingCacheManager = systemSettingCacheManager;
             _mapper = mapper;
             _capPublisher = capPublisher;
+            _trCallEvaluateRepository = trCallEvaluateRepository;
         }
 
         /// <summary>
@@ -215,5 +218,26 @@ namespace Hotline.Application.CallCenter
                 .Where(d => d.OtherAccept == callId).ToListAsync(cancellationToken);
             return _mapper.Map<List<CallNative>>(call);
         }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        public override Task<EVoiceEvaluate> GetReplyVoiceOrDefaultByOrderIdAsync(string orderId)
+        {
+            var callNative = await _callDomainService.GetByOrderIdAsync(orderId);
+            if (callNative is null || callNative.ReplyTxt.IsNullOrEmpty())
+                return EVoiceEvaluate.DefaultSatisfied;
+
+            try
+            {
+                return _orderVisitDomainService.GetVisitEvaluateByReplyTxt<EVoiceEvaluate>(callNative.ReplyTxt!.Trim());
+            }
+            catch (UserFriendlyException)
+            {
+                return EVoiceEvaluate.DefaultSatisfied;
+            }
+        }
     }
 }