From f5c04cd377e28aff976d6007535ec8b50935d3be Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期二, 01 四月 2025 17:41:14 +0800 Subject: [PATCH] fix: GetLifePayRefundOrderPage bug --- LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 46 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 35 insertions(+), 11 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 8d5907a..cba8a53 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -30,6 +30,7 @@ using static Volo.Abp.Identity.Settings.IdentitySettingNames; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; using LifePayment.Application.LifePay; +using Alipay.AopSdk.Core.Domain; namespace LifePayment.Application; @@ -327,7 +328,7 @@ .WhereIf(input.ACOOLYStatus.HasValue, x => x.ACOOLYStatus == input.ACOOLYStatus.Value) .WhereIf(input.LifePayOrderType.HasValue, x => x.LifePayOrderType == input.LifePayOrderType.Value) .WhereIf(input.UserId.HasValue, x => x.UserId == input.UserId.Value) - .WhereIf(input.KeyWords.IsNotNullOrEmpty(), x => x.PhoneNumber.Contains(input.KeyWords) || x.OrderNo.Contains(input.KeyWords) || x.OutOrderNo.Contains(input.KeyWords) || x.ACOOLYOrderNo.Contains(input.KeyWords)) + .WhereIf(input.KeyWords.IsNotNullOrEmpty(), x => x.PhoneNumber.Contains(input.KeyWords) || x.RefundOrderNo.Contains(input.KeyWords) || x.OutOrderNo.Contains(input.KeyWords) || x.ACOOLYOrderNo.Contains(input.KeyWords)) join b in _lifePayChannlesRep on a.ChannelId equals b.ChannlesNum into temp from b in temp.DefaultIfEmpty() select new LifePayOrderListOutput @@ -876,7 +877,24 @@ /// <returns></returns> public async Task<WxPayDomesticRefundsQueryReponse> WxPayDomesticRefundsQuery(string outTradeNo) { - return await _wxPayApi.WxPayDomesticRefundsQuery(outTradeNo); + var order = await _lifePayOrderRepository.Where(x => x.RefundOrderNo == outTradeNo).FirstOrDefaultAsync(); + CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "鏈壘鍒拌鍗曚俊鎭�"); + var result = await _wxPayApi.WxPayDomesticRefundsQuery(outTradeNo); + if (order.LifePayRefundStatus != LifePayRefundStatusEnum.宸查��娆� && result.Code == WxpayResultCode.Success && result.Status == WxPayRefundStatus.閫�娆炬垚鍔�) + { + order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; + order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�; + await _lifePayOrderService.AddLifePayExpensesReceipts(new AddLifePayExpensesReceiptsInput() + { + OrderNo = order.OrderNo, + OutRefundNo = order.RefundOrderNo, + OutOrderNo = order.OutOrderNo, + LifePayType = LifePayTypeEnum.AliPay, + ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts + }); + } + return result; + } /// <summary> @@ -1449,20 +1467,26 @@ { case LifePayTypeEnum.WxPay: var wxRefundResult = await WxPayDomesticRefunds(order.OrderNo, outRefundNo, order.RefundApplyRemark, Convert.ToInt32(input.RefundPrice * 100), Convert.ToInt32(order.PayAmount * 100)); - if (wxRefundResult.Status == "SUCCESS") + if (wxRefundResult.Status == WxpayRefundResultStatus.SUCCESS) + { + order.RefundOrderNo = outRefundNo; + order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; + order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; + } + else if (wxRefundResult.Status == WxpayRefundResultStatus.PROCESSING) + { + order.RefundOrderNo = outRefundNo; + order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; + order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; + } + else if (wxRefundResult.Status.IsNullOrEmpty() && wxRefundResult.Message == WxpayRefundResultMessage.FullRefund) { order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�; order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�; } - else if (wxRefundResult.Status == "PROCESSING") - { - order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; - order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; - } else { - order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�; - order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�; + throw new UserFriendlyException("閫�娆惧け璐�:" + wxRefundResult.Message); } break; @@ -1473,13 +1497,13 @@ throw new UserFriendlyException("閫�娆惧け璐�:" + aliRefundResult.SubMsg); } + order.RefundOrderNo = outRefundNo; order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑; order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑; break; default: throw new UserFriendlyException("閫�娆惧け璐�"); } - order.RefundOrderNo = outRefundNo; order.RefundCredentialsImgUrl = input.RefundCredentialsImgUrl; order.RefundCheckRemark = input.RefundCheckRemark; order.RefundTime = DateTime.Now; -- Gitblit v1.9.1