فهرست منبع

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 5 ماه پیش
والد
کامیت
8aa66d0ac3

+ 16 - 3
src/Hotline.Application.Tests/Controller/OrderControllerTest.cs

@@ -1,6 +1,7 @@
 using AutoFixture;
 using Castle.DynamicProxy;
 using Hotline.Api.Controllers;
+using Hotline.Application.CallCenter;
 using Hotline.Application.Tests.Infrastructure;
 using Hotline.Application.Tests.Mock;
 using Hotline.Caching.Interfaces;
@@ -35,6 +36,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Threading;
 using System.Threading.Tasks;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
@@ -52,9 +54,11 @@ public class OrderControllerTest : TestBase
     private readonly IOrderVisitRepository _orderVisitRepository;
     private readonly IRepository<SystemSetting> _systemSettingRepository;
     private readonly ISystemSettingCacheManager _systemSettingCacheManager;
-    private readonly IRepository<CallNative> _callNativeRepository;
+    private readonly IRepository<CallNative> _callNativeRepository; 
+    private readonly IRepository<CallidRelation> _callIdRelationRepository;
+    private readonly XingTangCallApplication _defaultCallApplication;
 
-    public OrderControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IRepository<Hotspot> hotspotRepository, OrderController orderController, IOrderRepository orderRepository, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, OrderServiceMock orderServiceMock, IRepository<OrderPublish> orderPublishRepository, INotificationHandler<EndWorkflowNotify> orderPublishEndWorkflowHandler, IOrderVisitRepository orderVisitRepository, IRepository<SystemSetting> systemSettingRepository, ISystemSettingCacheManager systemSettingCacheManager, IRepository<CallNative> callNativeRepository) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository)
+    public OrderControllerTest(IAccountRepository accountRepository, IRepository<Role> roleRepository, UserController userController, IRepository<Hotspot> hotspotRepository, OrderController orderController, IOrderRepository orderRepository, IServiceScopeFactory scopeFactory, IRepository<User> userRepository, OrderServiceMock orderServiceMock, IRepository<OrderPublish> orderPublishRepository, INotificationHandler<EndWorkflowNotify> orderPublishEndWorkflowHandler, IOrderVisitRepository orderVisitRepository, IRepository<SystemSetting> systemSettingRepository, ISystemSettingCacheManager systemSettingCacheManager, IRepository<CallNative> callNativeRepository, IRepository<CallidRelation> callIdRelationRepository, XingTangCallApplication defaultCallApplication) : base(accountRepository, roleRepository, userController, scopeFactory, userRepository)
     {
         _hotspotRepository = hotspotRepository;
         _orderController = orderController;
@@ -70,6 +74,8 @@ public class OrderControllerTest : TestBase
         _systemSettingRepository = systemSettingRepository;
         _systemSettingCacheManager = systemSettingCacheManager;
         _callNativeRepository = callNativeRepository;
+        _callIdRelationRepository = callIdRelationRepository;
+        _defaultCallApplication = defaultCallApplication;
     }
 
     /// <summary>
@@ -94,12 +100,19 @@ public class OrderControllerTest : TestBase
             .With(m => m.CallNo, callNo)
             .Create();
         await _callNativeRepository.AddAsync(inDto2);
+        var callOrder = new CallidRelation
+        {
+            Id = callNo,
+            CallId = inDto2.Id,
+        };
+        await _callIdRelationRepository.AddAsync(callOrder, CancellationToken.None);
 
         SetZuoXi();
         var order = _orderServiceMock.CreateOrder(callNo)
             .办理到派单员()
             .GetCreateResult();
         order.ShouldNotBeNull();
+        await _defaultCallApplication.OrderRelateCallHandlerAsync(order.Id, CancellationToken.None);
         var orderEntity = await _orderRepository.GetAsync(order.Id);
         orderEntity.ShouldNotBeNull();
         orderEntity.CallId.ShouldBe(inDto.Id);
@@ -249,7 +262,7 @@ public class OrderControllerTest : TestBase
 
         orderEntity = await _orderRepository.GetAsync(order.Id);
         orderEntity.Status.ShouldBe(EOrderStatus.Filed);
-        var publishList = await _orderController.PublishOrderList(new QueryOrderPublishDto 
+        var publishList = await _orderController.PublishOrderList(new QueryOrderPublishDto
         {
             PageSize = 1000,
             QuerySelf = true

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

@@ -495,6 +495,7 @@ public abstract class DefaultCallApplication : ICallApplication
     /// <returns></returns>
     public virtual async Task OrderRelateCallHandlerAsync(string orderId, CancellationToken cancellationToken)
     {
+        _systemLogRepository.Add("延迟更新工单通话", orderId, $"收到消息", status: 1);
         var callId = await _orderRepository.Queryable()
             .Where(m => m.Id == orderId)
             .Select(m => m.CallId)

+ 1 - 1
src/Hotline.Application/Orders/OrderApplication.cs

@@ -1016,7 +1016,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             await _orderVisitRepository.Updateable()
                 .Where(m => m.Id == item.Id)
                 .SetColumns(m => m.VisitState == EVisitState.SMSVisiting)
-                .SetColumns(m => m.VisitType == EVisitType.SmsVisit)
+                // .SetColumns(m => m.VisitType == EVisitType.SmsVisit)
                 .SetColumns(m => m.EmployeeId == _sessionContextProvider.SessionContext.RequiredUserId)
                 .ExecuteCommandAsync(cancellationToken);
 

+ 5 - 1
src/Hotline/Orders/OrderVisitDetail.cs

@@ -106,10 +106,14 @@ namespace Hotline.Orders
             this.OrgHandledAttitude = visitSatisfactionKv;
         }
 
+        /// <summary>
+        /// 短信回访回填
+        /// </summary>
+        /// <param name="visitSatisfactionKv"></param>
+        /// <exception cref="NotImplementedException"></exception>
         public void ReplyBackfill(ESeatEvaluate seatEvaluate, EVoiceEvaluate voiceEvaluate)
         {
             this.SeatEvaluate ??= seatEvaluate;
-            this.VoiceEvaluate ??= voiceEvaluate;
         }
 
 		/// <summary>

+ 2 - 1
src/Hotline/Orders/OrderVisitDomainService.cs

@@ -77,7 +77,7 @@ public class OrderVisitDomainService : IOrderVisitDomainService, IScopeDependenc
             { "3", $"一般|{EVisitState.Visited}|{ESeatEvaluate.Normal}|{EVoiceEvaluate.Normal}|4"},
             { "4", $"不满意|{EVisitState.SMSUnsatisfied}|{ESeatEvaluate.NoSatisfied}|{EVoiceEvaluate.NoSatisfied}|2"},
             { "5", $"非常不满意|{EVisitState.SMSUnsatisfied}|{ESeatEvaluate.NoSatisfied}|{EVoiceEvaluate.VeryNoSatisfied}|2"},
-            { "默认满意", $"默认满意|{EVisitState.Visited}|{ESeatEvaluate.DefaultSatisfied}|{EVoiceEvaluate.DefaultSatisfied}|4"},
+            { "默认满意", $"默认满意|{EVisitState.Visited}|{ESeatEvaluate.DefaultSatisfied}|{EVoiceEvaluate.DefaultSatisfied}|0"},
         };
         replyTxt = replyTxt.Trim();
         if (ReplyToEnumMap.TryGetValue(replyTxt, out var result) == false)
@@ -128,6 +128,7 @@ public class OrderVisitDomainService : IOrderVisitDomainService, IScopeDependenc
 
     private async Task UpdateSmsReplyAsync(OrderVisit orderVisit, string replyTxt)
     {
+        orderVisit.VisitType = EVisitType.SmsVisit;
         if (new string[] { "4", "5" }.Contains(replyTxt))
         {
             // “短信不满意待回访”状态下,由其他方式再次进行回访,回访方式需更新为最新的回访方式