using LifePayment.Application; using LifePayment.Application.Contracts; using LifePayment.Application.LifePay; using LifePayment.Domain.Models; using LifePayment.Domain.Shared; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Nest; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.BackgroundWorkers; using Volo.Abp.Domain.Repositories; using Volo.Abp.Threading; using Volo.Abp.Uow; using ZeroD.Util; namespace LifePayment.Worker.Worker { public class CheckUnPayOrderWork : AsyncPeriodicBackgroundWorkerBase { private readonly int _doWorkHour = 0; private readonly int _doWorkMinute = 1; private readonly ILifePayOrderService lifePayOrderService; private readonly ILifePayService lifePayService; private readonly IRepository lifePayOrderRepository; public CheckUnPayOrderWork( AbpAsyncTimer timer, IServiceScopeFactory serviceScopeFactory, ILifePayOrderService lifePayOrderService, ILifePayService lifePayService, IRepository lifePayOrderRepository) : base(timer, serviceScopeFactory) { timer.Period = (int)TimeSpan.FromMinutes(10).TotalMilliseconds; this.lifePayOrderService = lifePayOrderService; this.lifePayService = lifePayService; this.lifePayOrderRepository = lifePayOrderRepository; } [UnitOfWork] protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) { 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) { 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 // }); // Logger.LogInformation("已改为支付成功"); //} //else //{ // Logger.LogInformation("未更新"); //} } } catch (Exception ex) { Logger.LogError($"检查未支付订单状态发生异常: {DateTime.Now}" + ex.Message); } } } }