From fad9a422ecd3a90bec63c9045bf7f23c49452748 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期三, 11 六月 2025 10:28:36 +0800
Subject: [PATCH] fix:修订累计扣款和冻结金额状态

---
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index d2967c1..ce9adef 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -1390,7 +1390,7 @@
             order.ACOOLYOrderNo = result.ACOOLYOrderNo;
             order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑;
             await _lifePayOrderRepository.UpdateAsync(order);
-            _logger.LogInformation("鐢熸椿缂磋垂璁㈠崟鐘舵�侊細" + order.LifePayOrderStatus.ToString());
+            _logger.LogInformation("鐢熸椿缂磋垂璁㈠崟锛�" + order.ToJson());
 
             /// 鍒涘缓鐢熸椿缂磋垂娑堣垂璁板綍
             await _lifePayOrderService.CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, order.OrderNo, order.ACOOLYOrderNo,
@@ -1440,6 +1440,12 @@
         var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
 
+        if (order.ACOOLYStatus.HasValue && (int)order.ACOOLYStatus > (int)acoolyStatus)
+        {
+            _logger.LogInformation($"璁㈠崟锛坽orderNo}锛夌敱{order.ACOOLYStatus}鑷硔acoolyStatus}澶辫触锛屼笉鍙洖婊氱姸鎬�");
+            return;
+        }
+
         if (order.LifePayOrderStatus == status && order.ACOOLYStatus == acoolyStatus)
         {
             _logger.LogInformation($"璁㈠崟锛坽orderNo}锛夊凡澶勭悊璇ョ姸鎬�");
@@ -1447,6 +1453,7 @@
         }
 
         order.ActualReceivedAmount = actualParValue;
+        order.PlatformDeductionAmount = Math.Round((order.ActualReceivedAmount ?? 0) * (order.PlatformRate ?? 0) / 100, 2);
 
         if (acoolyOrderNo.IsNotNullOrEmpty())
         {
@@ -1465,11 +1472,15 @@
 
         order.LifePayOrderStatus = status;
         order.ACOOLYStatus = acoolyStatus;
+
         if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�
             || order.LifePayOrderStatus == LifePayOrderStatusEnum.宸查��娆�)
         {
             order.FinishTime = DateTime.Now;
-            order.PlatformDeductionAmount = Math.Round((order.ActualReceivedAmount ?? 0) * (order.PlatformRate ?? 0) / 100, 2);
+        }
+
+        if (order.ACOOLYStatus == ACOOLYStatusEnum.宸查��娆� || order.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)
+        {
             order.RefundPrice = Math.Round((1 - ((order.ActualReceivedAmount ?? 0) / (order.RechargeAmount ?? 0))) * (order.PayAmount ?? 0), 2);
         }
 
@@ -1758,18 +1769,10 @@
 
         if (order.LifePayOrderStatus == LifePayOrderStatusEnum.寰呴��娆� || order.LifePayRefundStatus == LifePayRefundStatusEnum.寰呴��娆�)
         {
-            if (order.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || order.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || order.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)
-            {
-                order.LifePayOrderStatus = LifePayOrderStatusEnum.宸插畬鎴�;
-            }
-            else
-            {
-                order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆惧け璐�;
-            }
-
             order.RefundCheckRemark = input.RefundCheckRemark;
             order.RefundCheckUserId = CurrentUser.Id;
-            order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆鹃┏鍥�;
+            order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�;
+            order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�;
 
             await _lifePayOrderRepository.UpdateAsync(order);
 

--
Gitblit v1.9.1