|
@@ -347,11 +347,10 @@ namespace Hotline.Api.Controllers
|
|
|
{
|
|
|
switch (request.TypeId)
|
|
|
{
|
|
|
- //待处理子表
|
|
|
case 1:
|
|
|
var aiVisit = await _aiOrderVisitRepository.Queryable()
|
|
|
.Includes(x => x.AiOrderVisitDetails,s=>s.OrderVisit)
|
|
|
- .FirstAsync(x => x.Id == request.Id);
|
|
|
+ .FirstAsync(x => x.Id == request.Id,HttpContext.RequestAborted);
|
|
|
if (aiVisit!=null && !string.IsNullOrEmpty(aiVisit.BatchUid))
|
|
|
{
|
|
|
if (aiVisit.TaskState != EAiOrderVisitTaskState.NoStarted || aiVisit.TaskState != EAiOrderVisitTaskState.InProgress)
|
|
@@ -406,6 +405,103 @@ namespace Hotline.Api.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 暂停外呼任务
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("callout/pausecallouttask")]
|
|
|
+ public async Task PauseCalloutTask([FromBody] CloseCalloutTaskReq request)
|
|
|
+ {
|
|
|
+ switch (request.TypeId)
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ var aiVisit = await _aiOrderVisitRepository.Queryable()
|
|
|
+ .FirstAsync(x => x.Id == request.Id,HttpContext.RequestAborted);
|
|
|
+ if (aiVisit != null && !string.IsNullOrEmpty(aiVisit.BatchUid))
|
|
|
+ {
|
|
|
+ if (aiVisit.TaskState != EAiOrderVisitTaskState.NoStarted || aiVisit.TaskState != EAiOrderVisitTaskState.InProgress)
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能终止");
|
|
|
+
|
|
|
+ bool isOk = await _aiVisitService.ChangeStatusAsync(aiVisit.BatchUid, "stop", HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (!isOk)
|
|
|
+ throw UserFriendlyException.SameMessage("终止失败");
|
|
|
+
|
|
|
+ aiVisit.TaskState = EAiOrderVisitTaskState.Pause;
|
|
|
+ await _aiOrderVisitRepository.UpdateAsync(aiVisit, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ var callOut = await _callOutTaskRepository.Queryable()
|
|
|
+ .FirstAsync(x => x.Id == request.Id);
|
|
|
+ if (callOut != null && !string.IsNullOrEmpty(callOut.BatchUid))
|
|
|
+ {
|
|
|
+ if (callOut.AiCallOutTaskState != EAiCallOutTaskState.NoStarted || callOut.AiCallOutTaskState != EAiCallOutTaskState.InProgress)
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能终止");
|
|
|
+
|
|
|
+ bool isOk = await _aiVisitService.ChangeStatusAsync(callOut.BatchUid, "stop", HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (!isOk)
|
|
|
+ throw UserFriendlyException.SameMessage("终止失败");
|
|
|
+ //处理业务数据
|
|
|
+ callOut.AiCallOutTaskState = EAiCallOutTaskState.Pause;
|
|
|
+ await _callOutTaskRepository.UpdateAsync(callOut, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw UserFriendlyException.SameMessage("未知业务");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 启动外呼任务
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("callout/startcallouttask")]
|
|
|
+ public async Task StartCalloutTask([FromBody] CloseCalloutTaskReq request)
|
|
|
+ {
|
|
|
+ switch (request.TypeId)
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ var aiVisit = await _aiOrderVisitRepository.Queryable()
|
|
|
+ .FirstAsync(x => x.Id == request.Id, HttpContext.RequestAborted);
|
|
|
+ if (aiVisit != null && !string.IsNullOrEmpty(aiVisit.BatchUid))
|
|
|
+ {
|
|
|
+ if (aiVisit.TaskState != EAiOrderVisitTaskState.Pause)
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能启动");
|
|
|
+
|
|
|
+ bool isOk = await _aiVisitService.ChangeStatusAsync(aiVisit.BatchUid, "start", HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (!isOk)
|
|
|
+ throw UserFriendlyException.SameMessage("启动失败");
|
|
|
+
|
|
|
+ aiVisit.TaskState = EAiOrderVisitTaskState.InProgress;
|
|
|
+ await _aiOrderVisitRepository.UpdateAsync(aiVisit, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ var callOut = await _callOutTaskRepository.Queryable()
|
|
|
+ .FirstAsync(x => x.Id == request.Id);
|
|
|
+ if (callOut != null && !string.IsNullOrEmpty(callOut.BatchUid))
|
|
|
+ {
|
|
|
+ if (callOut.AiCallOutTaskState != EAiCallOutTaskState.Pause)
|
|
|
+ throw UserFriendlyException.SameMessage("当前状态不能启动");
|
|
|
+
|
|
|
+ bool isOk = await _aiVisitService.ChangeStatusAsync(callOut.BatchUid, "start", HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (!isOk)
|
|
|
+ throw UserFriendlyException.SameMessage("启动失败");
|
|
|
+ //处理业务数据
|
|
|
+ callOut.AiCallOutTaskState = EAiCallOutTaskState.Pause;
|
|
|
+ await _callOutTaskRepository.UpdateAsync(callOut, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
#endregion
|
|
|
|