qinchaoyue 3 сар өмнө
parent
commit
9252c4d413

+ 10 - 7
src/Hotline.Application.Tests/Domain/OrderVisitDomainServiceTest.cs

@@ -108,7 +108,7 @@ public class OrderVisitDomainServiceTest : TestBase
     [InlineData("1", "Visited", "5", "非常满意", "非常满意")]
     //[InlineData("非常满意", "Visited", "5", "非常满意")]
     [InlineData("2", "Visited", "4", "满意", "满意")]
-    [InlineData("3", "Visited", "4", "满意", "满意")]
+    [InlineData("3", "Visited", "4", "满意", "一般")]
     //[InlineData("不满意", "SMSUnsatisfied", "2", "不满意")]
     [InlineData("5", "SMSUnsatisfied", "2", "不满意", "不满意")]
     [InlineData("0", "Visited", "0", "默认满意", "超过48小时自动回访")]
@@ -249,12 +249,15 @@ public class OrderVisitDomainServiceTest : TestBase
     public async Task Init_SettingOrderVisitSmsReplyRule_Data()
     {
         IEnumerable<SettingOrderVisitSmsReplyRule> entities = [
-            new () {AppScope = "ZiGong", ReplyRegular = "1", VisitContent = "非常满意", VisitState = EVisitState.Visited, SeatEvaluate = ESeatEvaluate.VerySatisfied,VoiceEvaluate = EVoiceEvaluate.VerySatisfied,OrgProcessingResults=5, OrgHandledAttitude = 5 },
-            new () {AppScope = "ZiGong", ReplyRegular = "2", VisitContent = "满意", VisitState = EVisitState.Visited, SeatEvaluate = ESeatEvaluate.Satisfied,VoiceEvaluate = EVoiceEvaluate.Satisfied,OrgProcessingResults=4, OrgHandledAttitude = 4 },
-            new () {AppScope = "ZiGong", ReplyRegular = "3", VisitContent = "一般", VisitState = EVisitState.Visited, SeatEvaluate = ESeatEvaluate.Normal,VoiceEvaluate = EVoiceEvaluate.Normal,OrgProcessingResults= 4, OrgHandledAttitude = 4 },
-            new () {AppScope = "ZiGong", ReplyRegular = "4", VisitContent = "不满意", VisitState = EVisitState.SMSUnsatisfied, SeatEvaluate = ESeatEvaluate.NoSatisfied,VoiceEvaluate = EVoiceEvaluate.NoSatisfied,OrgProcessingResults=2, OrgHandledAttitude = 2 },
-            new () {AppScope = "ZiGong", ReplyRegular = "5", VisitContent = "非常不满意", VisitState = EVisitState.SMSUnsatisfied, SeatEvaluate = ESeatEvaluate.NoSatisfied,VoiceEvaluate = EVoiceEvaluate.VeryNoSatisfied,OrgProcessingResults=2, OrgHandledAttitude = 2 },
-            new () {AppScope = "ZiGong", ReplyRegular = "默认满意", VisitContent = "超过48小时自动回访", VisitState = EVisitState.Visited, SeatEvaluate = ESeatEvaluate.DefaultSatisfied,VoiceEvaluate = EVoiceEvaluate.DefaultSatisfied,OrgProcessingResults=0, OrgHandledAttitude = 0 }
+            new () {Name = "非常满意的规则", AppScope = "ZiGong", ReplyRegular = "1", VisitContent = "非常满意", VisitState = EVisitState.Visited, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults=5, OrgHandledAttitude = 5, VisitType = EVisitType.SmsVisit},
+            new () {Name = "满意的规则", AppScope = "ZiGong", ReplyRegular = "2", VisitContent = "满意", VisitState = EVisitState.Visited, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults=4, OrgHandledAttitude = 4 , VisitType = EVisitType.SmsVisit},
+            new () {Name = "一般的规则", AppScope = "ZiGong", ReplyRegular = "3", VisitContent = "一般", VisitState = EVisitState.Visited, SeatEvaluate = null, VoiceEvaluate = null,OrgProcessingResults= 4, OrgHandledAttitude = 4 , VisitType = EVisitType.SmsVisit},
+            new () {Name = "不满意的规则", AppScope = "ZiGong", ReplyRegular = "4", VisitContent = "不满意", VisitState = EVisitState.SMSUnsatisfied, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults=2, OrgHandledAttitude = 2 , VisitType = null},
+            new () {Name = "非常不满意的规则", AppScope = "ZiGong", ReplyRegular = "5", VisitContent = "非常不满意", VisitState = EVisitState.SMSUnsatisfied, SeatEvaluate = null, VoiceEvaluate = null,OrgProcessingResults=2, OrgHandledAttitude = 2, VisitType = null},
+            new () {Name = "默认满意的规则", AppScope = "ZiGong", ReplyRegular = "0", VisitContent = "超过48小时自动回访", VisitState = EVisitState.Visited, SeatEvaluate = null, VoiceEvaluate = null,OrgProcessingResults=0, OrgHandledAttitude = 0, VisitType = EVisitType.SmsVisit},
+            new () {Name = "对部门处理结果满意", AppScope = "YiBin", ReplyRegular = "1", VisitContent = "满意", VisitState = EVisitState.Visited, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults = 4 , OrgHandledAttitude = null, VisitType = EVisitType.SmsVisit},
+            new () {Name = "默认满意的规则", AppScope = "YiBin", ReplyRegular = "0", VisitContent = "超过48小时自动回访", VisitState = EVisitState.Visited, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults=0, OrgHandledAttitude = 0 , VisitType = EVisitType.SmsVisit},
+            new () {Name = "对部门处理结果不满意的规则", AppScope = "YiBin", ReplyRegular = "2", VisitContent = "不满意", VisitState = EVisitState.Visited, SeatEvaluate = null,VoiceEvaluate = null,OrgProcessingResults=0, OrgHandledAttitude = 0 , VisitType = null},
             ];
 
         foreach (var item in entities)

+ 9 - 7
src/Hotline/Orders/OrderVisitDomainService.cs

@@ -110,15 +110,17 @@ public class OrderVisitDomainService : IOrderVisitDomainService, IScopeDependenc
     private async Task UpdateSmsReplyAsync(OrderVisit orderVisit, string replyTxt)
     {
         orderVisit.Order ??= await _orderRepository.GetAsync(orderVisit.OrderId);
-        orderVisit.VisitType = EVisitType.SmsVisit;
-        if (new string[] { "4", "5", "不满意", "非常不满意" }.Contains(replyTxt))
-        {
-            // “短信不满意待回访”状态下,由其他方式再次进行回访,回访方式需更新为最新的回访方式
-            // 故在此置为空
-            orderVisit.VisitType = null;
-        }
+        //orderVisit.VisitType = EVisitType.SmsVisit;
+        //if (new string[] { "4", "5", "不满意", "非常不满意" }.Contains(replyTxt))
+        //{
+        //    // “短信不满意待回访”状态下,由其他方式再次进行回访,回访方式需更新为最新的回访方式
+        //    // 故在此置为空
+        //    orderVisit.VisitType = null;
+        //}
         var smsReplyRule = GetVisitEvaluateByReplyTxt(replyTxt);
         var visitSatisfactionKv = smsReplyRule.GetOrgProcessingResults(_systemDicDataCacheManager.VisitSatisfaction);
+        if (smsReplyRule.VisitType != null)
+            orderVisit.VisitType = smsReplyRule.VisitType.Value;
         if (smsReplyRule.OrgProcessingResults != null)
             orderVisit.NowEvaluate = visitSatisfactionKv;
 

+ 13 - 7
src/Hotline/Settings/SettingOrderVisitSmsReplyRule.cs

@@ -1,15 +1,9 @@
-using Hotline.Caching.Interfaces;
-using Hotline.Share.Dtos;
+using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.Order;
 using Mapster;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
 using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using XF.Domain.Repository;
 
 namespace Hotline.Settings;
@@ -20,6 +14,18 @@ namespace Hotline.Settings;
 [Description("短信回访规则设置")]
 public class SettingOrderVisitSmsReplyRule : FullStateEntity
 {
+    /// <summary>
+    /// 名字
+    /// </summary>
+    [SugarColumn(ColumnDescription = "规则名字")]
+    public string Name { get; set; }
+
+    /// <summary>
+    /// 回访方式
+    /// </summary>
+    [SugarColumn(IsNullable = true, ColumnDescription = "回访方式(不需要更新就填NULL)")]
+    public EVisitType? VisitType { get; set; }
+
     /// <summary>
     /// 回复内容匹配正则
     /// </summary>