tangjiang 2 週間 前
コミット
ed03e07f62
1 ファイル変更48 行追加0 行削除
  1. 48 0
      src/Hotline.Api/Controllers/Job/ScheduledTasksController.cs

+ 48 - 0
src/Hotline.Api/Controllers/Job/ScheduledTasksController.cs

@@ -0,0 +1,48 @@
+using Hotline.CallCenter.Calls;
+using Hotline.Orders;
+using MediatR;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace Hotline.Api.Controllers.Job
+{
+    public class ScheduledTasksController : BaseController
+    {
+        private readonly IOrderVisitRepository _orderVisitRepository;
+        private readonly ILogger<ScheduledTasksController> _logger;
+        private readonly IMediator _mediator;
+        private readonly IOrderVisitDomainService _orderVisitDomainService;
+
+        public ScheduledTasksController(IOrderVisitRepository orderVisitRepository,
+            ILogger<ScheduledTasksController> logger,
+            IMediator mediator,
+            IOrderVisitDomainService orderVisitDomainService)
+        {
+            _orderVisitRepository = orderVisitRepository;
+            _logger = logger;
+            _mediator = mediator;
+            _orderVisitDomainService = orderVisitDomainService;
+        }
+
+        /// <summary>
+        /// 每天晚上凌晨处理前一天语音回访没处理的数据
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("voice-evaluation-visit-job")]
+        [AllowAnonymous]
+        public async Task VoiceEvaluationVisitJob()
+        {
+            var list = await _orderVisitRepository.Queryable()
+                .Where(p => p.VisitState == Share.Enums.Order.EVisitState.AiVisiting)
+                .ToListAsync();
+            if (list != null && list.Any())
+            {
+                foreach (var item in list)
+                {
+                    item.VisitState = Share.Enums.Order.EVisitState.WaitForVisit;
+                    await _orderVisitRepository.UpdateAsync(item, HttpContext.RequestAborted);
+                }
+            }
+        }
+    }
+}