xf 2 rokov pred
rodič
commit
653ea7c908
1 zmenil súbory, kde vykonal 14 pridanie a 9 odobranie
  1. 14 9
      src/Hotline/Orders/OrderDomainService.cs

+ 14 - 9
src/Hotline/Orders/OrderDomainService.cs

@@ -12,12 +12,12 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
 {
     private const string OrderNoPrefix = "OrderNo:";
     private readonly IOrderRepository _orderRepository;
-    private readonly ITypedCache<int> _cacheOrderNo;
+    private readonly ITypedCache<CacheOrderNO> _cacheOrderNo;
     private readonly ISessionContext _sessionContext;
 
     public OrderDomainService(
         IOrderRepository orderRepository,
-        ITypedCache<int> cacheOrderNo,
+        ITypedCache<CacheOrderNO> cacheOrderNo,
         ISessionContext sessionContext)
     {
         _orderRepository = orderRepository;
@@ -52,9 +52,9 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
     /// <summary>
     /// 工单办理(每个节点都会触发)
     /// </summary>
-    public async Task OrderManageAsync(EOrderStatus status, EFlowAssignType assignType, 
+    public async Task OrderManageAsync(EOrderStatus status, EFlowAssignType assignType,
         bool isCountersignEnd, bool isCountersignStart,
-        string orderId, DateTime currentStepTime, string CurrentStepName, 
+        string orderId, DateTime currentStepTime, string CurrentStepName,
         IEnumerable<string> handlers,
         CancellationToken cancellationToken)
     {
@@ -87,17 +87,17 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
     {
         var today = DateTime.Today;
         var cacheKey = $"{OrderNoPrefix}{today:yyyyMMdd}";
-        var count = _cacheOrderNo.GetOrAdd(cacheKey, f =>
+        var cacheOrderNo = _cacheOrderNo.GetOrAdd(cacheKey, f =>
         {
             var todayOrderCount = _orderRepository.Queryable(true)
                 .CountAsync(d => d.CreationTime.Date == today.Date)
                 .GetAwaiter()
                 .GetResult();
-            return todayOrderCount;
+            return new CacheOrderNO { TotalCount = todayOrderCount };
         }, ExpireMode.Absolute, TimeSpan.FromDays(1));
-        count += 1;
-        var no = GenerateOrderNo(today, count);
-        _cacheOrderNo.Update(cacheKey, d => count);
+        cacheOrderNo.TotalCount += 1;
+        var no = GenerateOrderNo(today, cacheOrderNo.TotalCount);
+        _cacheOrderNo.Update(cacheKey, d => cacheOrderNo);
         return no;
     }
 
@@ -108,3 +108,8 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
 
     #endregion
 }
+
+public class CacheOrderNO
+{
+    public int TotalCount { get; set; }
+}