lijin
2025-11-21 0f9263238c5760267db714bb9fb6f4b86e202b22
ApiTools.Core/Jobs/RefreshChannelWalletTransactionStatusJob.cs
@@ -33,11 +33,15 @@
            if (env != "Local")
            {
                var transactions = await channelWalletTransactionRepository.GetQueryable(false)
                .Include(it => it.PingAnPay)
                .Where(it =>
                    it.TransactionStatus == EnumWalletTransactionStatus.WaitPay
                    || it.TransactionStatus == EnumWalletTransactionStatus.Dealing)
                    || it.TransactionStatus == EnumWalletTransactionStatus.Dealing
                    || it.TransactionStatus == EnumWalletTransactionStatus.Success
                    && it.EreceiptStatus != EnumWalletTransactionEreceiptStatus.SUCCESS
                    && it.EreceiptStatus != EnumWalletTransactionEreceiptStatus.FAIL)
                .ToListAsync();
                var walletIds = transactions.DistinctSelect(it => it.WalletId);
                var walletIds = transactions.Select(it => it.WalletId).Distinct().ToList();
                var wallets = await channelWalletRepository.GetQueryable(false)
                    .Where(it => walletIds.Contains(it.Id))
                    .ToListAsync();
@@ -46,8 +50,12 @@
                    var wallet = wallets.FirstOrDefault(it => it.Id == transaction.WalletId);
                    if (wallet != null)
                    {
                        // 查询交易详情
                        await channelWalletService.GetTransactionDetail(wallet, transaction);
                        if (transaction.TransactionStatus == EnumWalletTransactionStatus.WaitPay
                            || transaction.TransactionStatus == EnumWalletTransactionStatus.Dealing)
                        {
                            // 查询交易详情
                            await channelWalletService.GetTransactionDetail(wallet, transaction);
                        }
                        // 下载回单
                        await channelWalletService.DownloadEreceiptUrl(wallet, transaction);
                    }