瀏覽代碼

修复延迟获取关联回访通话错误

qinchaoyue 5 月之前
父節點
當前提交
e361464745

+ 2 - 2
src/Hotline.Application.Tests/Application/DefaultCallApplicationTest.cs

@@ -79,11 +79,11 @@ public class DefaultCallApplicationTest
     public async Task OrderVisitRelevanceCallId_Test()
     {
         var inDto = new VisitDto();
-        inDto.CallId = "202411141932330603100751FLOW";
+        inDto.CallId = "202411151100300273100069FLOW";
         inDto.Id = "08dd046b-b3b3-4ccf-8a15-09133d27dce0";
         await _defaultCallApplication.OrderVisitRelevanceCallIdAsync(inDto, CancellationToken.None);
 
         var visit = await _orderVisitRepository.GetAsync(inDto.Id);
-        visit.CallId.ShouldBe("01JCN757M8F3Z9JJPZ0VBSNQPJ");
+        visit.CallId.ShouldBe("01JCPW9ZJ2683ZVN69ZGNZ0A4B");
     }
 }

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

@@ -375,7 +375,7 @@ public abstract class DefaultCallApplication : ICallApplication
         if (visit == null) return;
 
         var callId = await _callNativeRepository.Queryable()
-            .Where(m => m.CallNo == dto.CallId && m.AudioFile != null)
+            .Where(m => m.CallNo == dto.CallId && string.IsNullOrEmpty(m.AudioFile) == false)
             .OrderByDescending(m => m.Duration)
             .Select(m => m.Id)
             .FirstAsync();

+ 6 - 2
src/Hotline.Application/Orders/OrderApplication.cs

@@ -72,6 +72,7 @@ using System.Linq;
 using System.Linq.Dynamic.Core;
 using System.Threading;
 using Hotline.Application.CallCenter;
+using Hotline.Repository.SqlSugar.Orders;
 
 namespace Hotline.Application.Orders;
 
@@ -333,8 +334,11 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         var IsCenter = _sessionContextProvider.SessionContext.OrgIsCenter;
         int orgLevel = _sessionContextProvider.SessionContext.OrgLevel;
         var orgCode = _sessionContextProvider.SessionContext.OrgId;
-        return _orderRepository.Queryable(canView: !IsCenter).Includes(d => d.OrderDelays)
-
+        //var query = _orderRepository.Queryable();
+        //if (IsCenter == true)
+        //    query = _orderRepository.Queryable(canView: !IsCenter);
+        //return query.Includes(d => d.OrderDelays)
+        return _orderRepository.Queryable(canView: !IsCenter)
             .WhereIF(orgLevel == 3, d => SqlFunc.Subqueryable<WorkflowStep>()
                 .Where(step => step.ExternalId == d.Id && step.Status != EWorkflowStepStatus.Handled &&
                                ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) &&