From 7a540f529d2c9a541993bc9818cad9c9093fec91 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 03 十二月 2025 11:04:35 +0800
Subject: [PATCH] fix: bug
---
LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs | 70 +++++++++++++++++++++--------------
1 files changed, 42 insertions(+), 28 deletions(-)
diff --git a/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs b/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs
index 085423f..0d8287d 100644
--- a/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs
+++ b/LifePayment/LifePayment.Worker/Worker/CheckUnPayOrderWork.cs
@@ -6,16 +6,19 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Nest;
+using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.BackgroundWorkers;
+using Volo.Abp.DistributedLocking;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
using ZeroD.Util;
+using ZeroD.Util.Fadd;
namespace LifePayment.Worker.Worker
{
@@ -23,20 +26,26 @@
{
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;
private readonly IRepository<LifePayOrder, Guid> lifePayOrderRepository;
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.FromMinutes(10).TotalMilliseconds;
+ timer.Period = (int)TimeSpan.FromMinutes(30).TotalMilliseconds;
+ this.logger = logger;
this.lifePayOrderService = lifePayOrderService;
this.lifePayService = lifePayService;
+ this.distributedLock = distributedLock;
this.lifePayOrderRepository = lifePayOrderRepository;
}
@@ -46,35 +55,40 @@
try
{
Logger.LogInformation($"妫�鏌ユ湭鏀粯璁㈠崟鐘舵�佸紑濮�: {DateTime.Now}");
- var end = DateTime.Now;
- var start = end.AddMinutes(-15);
- var orderNos = lifePayOrderRepository.Where(it => it.PayStatus == LifePayStatusEnum.鏈敮浠� && it.CreationTime >= start && it.CreationTime <= end).Select(it => it.OrderNo).ToList();
- foreach (var orderNo in orderNos)
- {
- var wxPayNotice = await lifePayService.WxPayTradeQuery(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);
+ //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}");
- // 鎻掑叆鏀舵敮娴佹按
- await lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput()
- {
- OrderNo = wxPayNotice.OutTradeNo,
- OutOrderNo = wxPayNotice.TransactionId,
- LifePayType = LifePayTypeEnum.WxPay,
- ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses,
- Amount = wxPayNotice.Amount.Total
- });
+ // 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("宸叉敼涓烘敮浠樻垚鍔�");
- }
- else
- {
- Logger.LogInformation("鏈洿鏂�");
- }
- }
+ // // 鎻掑叆鏀舵敮娴佹按
+ // 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("鏈洿鏂�");
+ // }
+ //}
}
catch (Exception ex)
{
--
Gitblit v1.9.1