From 469279cdbbfcebb15d9b1c2c9c2b7bc6210041ba Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 09 六月 2025 17:10:02 +0800 Subject: [PATCH] feat:每隔10分钟定时查询15分钟内的未支付订单向微信API获取最新信息若为支付成功则更改订单状态 --- LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 379bf86..69f1df1 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -99,7 +99,6 @@ #region 鏌ヨ - /// <summary> /// 鑾峰彇鐢佃垂闈㈠�� /// </summary> @@ -127,6 +126,16 @@ public async Task<PhoneParValueResponse> GetPhoneParValue() { return await _aCOOLYManager.PhoneParValue(new ACOOLYRequestBaseInput()); + } + + /// <summary> + /// 璇濊垂璁㈠崟鏌ヨ + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<QueryPhoneOrderResponse> QueryPhoneOrder(QueryPhoneOrderRequestInput input) + { + return await _aCOOLYManager.QueryPhoneOrder(input); } /// <summary> @@ -353,6 +362,7 @@ RefundPrice = a.RefundPrice, ChannelName = b.ChannlesName, ActualRechargeAmount = a.RechargeAmount, + ActualReceivedAmount = a.ActualReceivedAmount, PlatformDeductionAmount = a.PlatformDeductionAmount, ACOOLYStatus = a.ACOOLYStatus, LifePayRefundStatus = a.LifePayRefundStatus, @@ -453,6 +463,7 @@ PremiumPrice = orderpirce.PremiumPrice, Profit = orderpirce.Profit, RefundOrderNo = order.RefundOrderNo, + ActualReceivedAmount = order.ActualReceivedAmount }; return result; @@ -1294,7 +1305,7 @@ var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync(); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�"); - if (order.PayStatus == LifePayStatusEnum.宸叉敮浠�) + if (order.PayStatus != LifePayStatusEnum.鏈敮浠�) { return; } @@ -1376,12 +1387,13 @@ var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync(); CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�"); - if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�) + if (order.LifePayOrderStatus == status && order.ACOOLYStatus == acoolyStatus) { + _logger.LogInformation($"璁㈠崟锛坽orderNo}锛夊凡澶勭悊璇ョ姸鎬�"); return; } - // order.PlatformDeductionAmount = payAmount; + order.ActualReceivedAmount = actualParValue; if (acoolyOrderNo.IsNotNullOrEmpty()) { @@ -1400,7 +1412,14 @@ order.LifePayOrderStatus = status; order.ACOOLYStatus = acoolyStatus; - order.FinishTime = DateTime.Now; + if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴� + || order.LifePayOrderStatus == LifePayOrderStatusEnum.宸查��娆�) + { + order.FinishTime = DateTime.Now; + order.PlatformDeductionAmount = Math.Round((order.ActualReceivedAmount ?? 0) * (order.PlatformRate ?? 0) / 100, 2); + order.RefundPrice = Math.Round((1 - ((order.ActualReceivedAmount ?? 0) / (order.RechargeAmount ?? 0))) * (order.PayAmount ?? 0), 2); + } + await _lifePayOrderRepository.UpdateAsync(order); if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�) @@ -1508,6 +1527,8 @@ order.RefundTime = DateTime.Now; order.RefundCheckUserId = CurrentUser.Id; order.RefundPrice = input.RefundPrice; + order.ActualReceivedAmount = Math.Round((1 - ((order.RefundPrice ?? 0) / (order.PayAmount ?? 0))) * (order.RechargeAmount ?? 0), 2); + order.PlatformDeductionAmount = Math.Round((order.ActualReceivedAmount ?? 0) * (order.PlatformRate ?? 0) / 100, 2); //await _lifePayOrderRepository.UpdateAsync(order); -- Gitblit v1.9.1