Explorar o código

Merge branch 'feature/snapshot' into test

qinchaoyue hai 3 meses
pai
achega
fdf6a43bf6

+ 12 - 3
src/Hotline.Application/Orders/Handles/SnapshotHandler/GuiderSystemTimeoutHandler.cs

@@ -13,6 +13,7 @@ using Hotline.Orders;
 using Hotline.Settings;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Enums.FlowEngine;
+using Hotline.Share.Tools;
 using Hotline.Snapshot.Notifications;
 using MediatR;
 using XF.Domain.Exceptions;
@@ -44,11 +45,19 @@ namespace Hotline.Application.Orders.Handles.Snapshot
         /// <param name="cancellationToken">Cancellation token</param>
         public async Task Handle(GuiderSystemTimeOutBackNotification notification, CancellationToken cancellationToken)
         {
-            _systemLogRepository.Add("网格员超时未回复", notification.OrderId, "收到事件", "", 1);
-            if (_systemSettingCacheManager.Snapshot)
+            try
+            {
+                if (_systemSettingCacheManager.Snapshot)
+                {
+                    await _orderApplication.HandleFromWanggeyuanToMaskAsync(notification.OrderId, cancellationToken);
+                }
+            }
+            catch (Exception e)
             {
-                await _orderApplication.HandleFromWanggeyuanToMaskAsync(notification.OrderId, cancellationToken);
+                _systemLogRepository.Add("网格员超时未回复", notification.OrderId, "方法异常", status: 0, executeResult: e.ToJson());
+                throw;
             }
+            _systemLogRepository.Add("网格员超时未回复", notification.OrderId, "收到事件", "", 1);
         }
     }
 }

+ 1 - 0
src/Hotline.Application/Snapshot/SnapshotApplicationBase.cs

@@ -565,6 +565,7 @@ public abstract class SnapshotApplicationBase
         if (result.Code == 0)
         {
             int intervalTime = await _industryRepository.GetIntervalTimeAsync(orderSnapshot.IndustryId, _sysSetting.OvertimeBack, cancellationToken);
+            _systemLog.Add(LogName, $"OrderNo: {order.No}", $"intervalTime: {intervalTime}");
             await _capPublisher.PublishDelayAsync(TimeSpan.FromHours(intervalTime), EventNames.GuiderSystemReplyDelay, new PostGuiderSystemDelayed(order.Id), cancellationToken: cancellationToken);
         }
     }

+ 2 - 1
src/Hotline.Repository.SqlSugar/System/SystemLogRepository.cs

@@ -18,7 +18,7 @@ public class SystemLogRepository : BaseRepository<SystemLog>, ISystemLogReposito
     {
     }
 
-    public void Add(string name, string executeParam = "", string remark = "", [CallerMemberName]string executeUrl = "", int status = 0, string ipUrl = "")
+    public void Add(string name, string executeParam = "", string remark = "", [CallerMemberName]string executeUrl = "", int status = 0, string ipUrl = "", string executeResult = "")
     {
         try
         {
@@ -26,6 +26,7 @@ public class SystemLogRepository : BaseRepository<SystemLog>, ISystemLogReposito
             {
                 Name = name,
                 ExecuteParam = executeParam,
+                ExecuteResult = executeResult,
                 ExecuteUrl = executeUrl,
                 Remark = remark,
                 Status = status,

+ 1 - 1
src/Hotline/Settings/ISystemLogRepository.cs

@@ -18,5 +18,5 @@ public interface ISystemLogRepository : IRepository<SystemLog>
     /// <param name="remark">备注</param>
     /// <param name="status">状态(0失败 1成功)</param>
     /// <returns></returns>
-    void Add(string name, string executeParam = "", string remark = "", [CallerMemberName]string executeUrl = "", int status = 0, string ipUrl = "");
+    void Add(string name, string executeParam = "", string remark = "", [CallerMemberName]string executeUrl = "", int status = 0, string ipUrl = "", string executeResult = "");
 }