瀏覽代碼

批量转写

田爽 9 月之前
父節點
當前提交
04e72cf8a9
共有 2 個文件被更改,包括 28 次插入42 次删除
  1. 27 41
      src/Hotline.Api/Controllers/CallController.cs
  2. 1 1
      src/Hotline.Share/Dtos/TrCallCenter/TrTelDao.cs

+ 27 - 41
src/Hotline.Api/Controllers/CallController.cs

@@ -142,48 +142,34 @@ namespace Hotline.Api.Controllers
         [HttpPost("calls/transliteration")]
         public async Task CallTransliteration([FromBody] CallTransliteration dto)
         {
-	        string audioFile;
-	        string fromNo;
-	        DateTime? callStartTime = null;
-            string Id;
-			//if (_callcenterOptions.Value.CallCenterType == AppDefaults.CallCenterType.TianRun)
-	  //      {
-		    var call = await _callApplication.GetTianrunCallAsync(dto.Id, HttpContext.RequestAborted);
-		    if (call is null)
-			    throw UserFriendlyException.SameMessage("通话信息错误");
-		    if (call.TransliterationState  == ECallTransliterationState.Underway)
-			    throw UserFriendlyException.SameMessage("正在转写中,请勿重复点击,请稍作等待");
-		    if (call.TransliterationState == ECallTransliterationState.Succeed)
-			    throw UserFriendlyException.SameMessage("转写成功,不能重新转写");
-			call.InitTransliterationId();
-			await _callApplication.EditTransliterationStateAsync(call.Id, ECallTransliterationState.Underway, call.TransliterationId, HttpContext.RequestAborted);
-			audioFile = call.RecordingAbsolutePath;
-		    fromNo = call.CPN;
-		    callStartTime = call.CreatedTime;
-		    Id = call.TransliterationId;
-			//}
-	  //      else if (_callcenterOptions.Value.CallCenterType == AppDefaults.CallCenterType.XingTang)
-	  //      {
-		 //       var call = await _callApplication.GetCallAsync(dto.Id, HttpContext.RequestAborted);
-		 //       if (call is null)
-			//        throw UserFriendlyException.SameMessage("通话信息错误");
-			//	audioFile = call.AudioFile;
-		 //       fromNo = call.FromNo;
-		 //       callStartTime = call.BeginIvrTime;
-		 //       Id = call.Id;
-			//}
-	        var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
-	       
-	        var handler = new AiQualityHandler()
+	        foreach (var id in dto.Ids)
 	        {
-		        Id = Id,
-		        Source = "AiAnswered",
-		        AudioFile = audioFile,
-		        FromNo = fromNo,
-		        CallStartTime = callStartTime,
-		        ViteRecordPrefix = setting?.SettingValue[0],
-	        };
-	        await _publisher.PublishAsync(new AiOrderQualityNotify(handler), PublishStrategy.ParallelNoWait, HttpContext.RequestAborted);
+				var call = await _callApplication.GetTianrunCallAsync(id, HttpContext.RequestAborted);
+				if (call is null)
+					throw UserFriendlyException.SameMessage("通话信息错误");
+				if (call.TransliterationState == ECallTransliterationState.Underway)
+					throw UserFriendlyException.SameMessage("正在转写中,请勿重复点击,请稍作等待");
+				if (call.TransliterationState == ECallTransliterationState.Succeed)
+					throw UserFriendlyException.SameMessage("转写成功,不能重新转写");
+				call.InitTransliterationId();
+				await _callApplication.EditTransliterationStateAsync(call.Id, ECallTransliterationState.Underway, call.TransliterationId, HttpContext.RequestAborted);
+				var audioFile = call.RecordingAbsolutePath;
+				var fromNo = call.CPN;
+				var callStartTime = call.CreatedTime;
+				var Id = call.TransliterationId;
+				var setting = _systemSettingCacheManager.GetSetting(SettingConstants.ViteRecordPrefix);
+
+				var handler = new AiQualityHandler()
+				{
+					Id = Id,
+					Source = "AiAnswered",
+					AudioFile = audioFile,
+					FromNo = fromNo,
+					CallStartTime = callStartTime,
+					ViteRecordPrefix = setting?.SettingValue[0],
+				};
+				await _publisher.PublishAsync(new AiOrderQualityNotify(handler), PublishStrategy.ParallelNoWait, HttpContext.RequestAborted);
+			}
         }
 	}
 }

+ 1 - 1
src/Hotline.Share/Dtos/TrCallCenter/TrTelDao.cs

@@ -972,7 +972,7 @@ namespace Hotline.Share.Dtos.TrCallCenter
 		/// <summary>
 		/// 主叫
 		/// </summary>
-		public string? Id { get; set; }
+		public List<string> Ids { get; set; }
 	}
 	#endregion