xf 1 hafta önce
ebeveyn
işleme
86cd9cc0de

+ 7 - 1
src/Hotline.Application/OrderApp/Handlers/OrderDelayHandler/OrderDelayBatchReviewTaskCompetedHandler.cs

@@ -13,6 +13,7 @@ using Hotline.Orders;
 using Hotline.Share.Dtos.Article;
 using Hotline.Share.Enums.Article;
 using Hotline.Share.Enums.Order;
+using Microsoft.Extensions.Logging;
 using XF.Domain.Authentications;
 using XF.Domain.Repository;
 
@@ -26,15 +27,18 @@ public class OrderDelayBatchReviewTaskCompetedHandler : INotificationHandler<App
     private readonly IRepository<Apptask> _apptaskRepository;
     private readonly IOrderDelayRepository _orderDelayRepository;
     private readonly ICircularRecordDomainService _circularRecordDomainService;
+    private readonly ILogger<OrderDelayBatchReviewTaskCompetedHandler> _logger;
 
     public OrderDelayBatchReviewTaskCompetedHandler(
         IRepository<Apptask> apptaskRepository,
         IOrderDelayRepository orderDelayRepository,
-        ICircularRecordDomainService circularRecordDomainService)
+        ICircularRecordDomainService circularRecordDomainService,
+        ILogger<OrderDelayBatchReviewTaskCompetedHandler> logger)
     {
         _apptaskRepository = apptaskRepository;
         _orderDelayRepository = orderDelayRepository;
         _circularRecordDomainService = circularRecordDomainService;
+        _logger = logger;
     }
 
     /// <summary>Handles a notification</summary>
@@ -47,6 +51,8 @@ public class OrderDelayBatchReviewTaskCompetedHandler : INotificationHandler<App
         var apptask = await _apptaskRepository.Queryable()
             .Includes(d => d.ApptaskItems)
             .FirstAsync(d => d.Id == notification.ApptaskItem.ApptaskId, cancellationToken);
+        _logger.LogInformation("批量延期任务执行完毕:{name}", apptask.Name);
+
         var unSuccessItems = apptask.ApptaskItems
             .Where(d => d.TaskStatus != ETaskStatus.Succeeded)
             .ToList();

+ 2 - 2
src/Hotline/BatchTask/ApptaskDomainService.cs

@@ -97,8 +97,8 @@ public class ApptaskDomainService : IApptaskDomainService, IScopeDependency
     public async Task<bool> IsCompletedAsync(string taskId, CancellationToken cancellation)
     {
         var anyUnCompleted = await _apptaskItemRepository.Queryable()
-            .AnyAsync(d => (d.TaskStatus == ETaskStatus.Waiting || d.TaskStatus == ETaskStatus.Processing)
-                           && d.ApptaskId == taskId, cancellation);
+            .AnyAsync(d => d.ApptaskId == taskId
+                && d.TaskEndTime == null, cancellation);
         return !anyUnCompleted;
     }