From 6739e98662c16571da7aec0e9b52fab0afd3833b Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 13 六月 2025 14:07:28 +0800 Subject: [PATCH] fix:修订支付回调和供应商回调并发问题 --- LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs | 65 +++++++++++++++++--------------- 1 files changed, 35 insertions(+), 30 deletions(-) diff --git a/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs b/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs index 5bd2dec..0d8287d 100644 --- a/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs +++ b/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs @@ -26,6 +26,7 @@ { private readonly int _doWorkHour = 0; private readonly int _doWorkMinute = 1; + private readonly ILogger<CheckUnPayOrderWork> logger; private readonly ILifePayOrderService lifePayOrderService; private readonly ILifePayService lifePayService; private readonly IAbpDistributedLock distributedLock; @@ -33,13 +34,15 @@ public CheckUnPayOrderWork( AbpAsyncTimer timer, + ILogger<CheckUnPayOrderWork> logger, IServiceScopeFactory serviceScopeFactory, ILifePayOrderService lifePayOrderService, ILifePayService lifePayService, IAbpDistributedLock distributedLock, IRepository<LifePayOrder, Guid> lifePayOrderRepository) : base(timer, serviceScopeFactory) { - timer.Period = (int)TimeSpan.FromSeconds(5).TotalMilliseconds; + timer.Period = (int)TimeSpan.FromMinutes(30).TotalMilliseconds; + this.logger = logger; this.lifePayOrderService = lifePayOrderService; this.lifePayService = lifePayService; this.distributedLock = distributedLock; @@ -52,38 +55,40 @@ try { Logger.LogInformation($"妫�鏌ユ湭鏀粯璁㈠崟鐘舵�佸紑濮�: {DateTime.Now}"); - var end = DateTime.Now; - var start = end.AddMinutes(-15); - var orders = lifePayOrderRepository.Where(it => it.PayStatus == LifePayStatusEnum.鏈敮浠� && it.CreationTime >= start && it.CreationTime <= end).ToList(); - foreach (var order in orders) - { - await using var orderLock = await distributedLock.TryAcquireAsync($"LockKey:UpdateOrder:{order.OrderNo}", TimeSpan.FromSeconds(60)); + //var end = DateTime.Now; + //var start = end.AddMinutes(-45); + //end = end.AddMinutes(-15); + //var orders = lifePayOrderRepository.Where(it => it.PayStatus == LifePayStatusEnum.鏈敮浠� && it.CreationTime >= start && it.CreationTime <= end).ToList(); + //foreach (var order in orders) + //{ + // await using var orderLock = await distributedLock.TryAcquireAsync($"LockKey:UpdateOrder:{order.OrderNo}", TimeSpan.FromSeconds(60)); + // logger.LogInformation($"閿侊細LockKey:UpdateOrder:{order.OrderNo} - {orderLock != null}"); - Logger.LogInformation($"璁㈠崟锛歿order.OrderNo}-{order.ToJson()}"); - var wxPayNotice = await lifePayService.WxPayTradeQuery(order.OrderNo); - var json = wxPayNotice.ToJson(); - Logger.LogInformation($"璁㈠崟锛坽wxPayNotice.OutTradeNo}锛変俊鎭�: {json}"); - if (wxPayNotice.OutTradeNo.Contains("JF") && wxPayNotice.TradeState == LifePaymentConstant.WxPayStatus.鏀粯鎴愬姛) - { - await lifePayService.LifePaySuccessHandler(wxPayNotice.OutTradeNo, wxPayNotice.TransactionId); + // Logger.LogInformation($"璁㈠崟锛歿order.OrderNo}-{order.ToJson()}"); + // var wxPayNotice = await lifePayService.WxPayTradeQuery(order.OrderNo); + // var json = wxPayNotice.ToJson(); + // Logger.LogInformation($"璁㈠崟锛坽wxPayNotice.OutTradeNo}锛変俊鎭�: {json}"); + // if (wxPayNotice.OutTradeNo.Contains("JF") && wxPayNotice.TradeState == LifePaymentConstant.WxPayStatus.鏀粯鎴愬姛) + // { + // await lifePayService.LifePaySuccessHandler(wxPayNotice.OutTradeNo, wxPayNotice.TransactionId); - // 鎻掑叆鏀舵敮娴佹按 - await lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() - { - OrderNo = wxPayNotice.OutTradeNo, - OutOrderNo = wxPayNotice.TransactionId, - LifePayType = LifePayTypeEnum.WxPay, - ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses, - Amount = wxPayNotice.Amount.Total - }); + // // 鎻掑叆鏀舵敮娴佹按 + // await lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() + // { + // OrderNo = wxPayNotice.OutTradeNo, + // OutOrderNo = wxPayNotice.TransactionId, + // LifePayType = LifePayTypeEnum.WxPay, + // ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses, + // Amount = wxPayNotice.Amount.Total + // }); - Logger.LogInformation("宸叉敼涓烘敮浠樻垚鍔�"); - } - else - { - Logger.LogInformation("鏈洿鏂�"); - } - } + // Logger.LogInformation("宸叉敼涓烘敮浠樻垚鍔�"); + // } + // else + // { + // Logger.LogInformation("鏈洿鏂�"); + // } + //} } catch (Exception ex) { -- Gitblit v1.9.1