From a065812d64d67ee3e1927cc45c51fac9b21e44f9 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 25 三月 2025 10:38:51 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/LifePaymentApi

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

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 0d14bf2..7987669 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -530,6 +530,7 @@
                                                         CreationTime = x.CreationTime,
                                                         RefundCheckRemark = x.RefundCheckRemark,
                                                         RefundApplyRemark = x.RefundApplyRemark,
+                                                        RefundApplyTime = x.RefundApplyTime,
                                                         RefundTime = x.RefundTime,
                                                         ACOOLYOrderNo = x.ACOOLYOrderNo,
                                                         LifePayRefundStatus = x.LifePayRefundStatus,
@@ -832,6 +833,8 @@
 
         var rate = await GetRate();
         CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
+
+        //var rate = await GetLifePayRate();
 
         var amount = CalculateAmount(input.ProductData.ParValue, rate.FirstOrDefault(x => x.RateType == LifePayRateTypeEnum.榛樿璇濊垂鎶樻墸).Rate);
 
@@ -1565,24 +1568,21 @@
         var order = await _lifePayOrderRepository.FirstOrDefaultAsync(x => x.Id == input.Id);
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
 
-        if(order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�)
+        if (order.LifePayRefundStatus == LifePayRefundStatusEnum.宸查��娆�)
         {
             return;
         }
 
-        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.寰呴��娆�)
+        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.寰呴��娆� || order.LifePayRefundStatus == LifePayRefundStatusEnum.寰呴��娆�)
         {
-            if (order.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || order.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)
+            if (order.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || order.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�兼垚鍔� || order.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�)
             {
                 order.LifePayOrderStatus = LifePayOrderStatusEnum.宸插畬鎴�;
-            }
-            else if (order.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�煎け璐�)
-            {
-                order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆惧け璐�;
             }
 
             order.RefundCheckRemark = input.RefundCheckRemark;
             order.RefundCheckUserId = CurrentUser.Id;
+            order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆鹃┏鍥�;
 
             await _lifePayOrderRepository.UpdateAsync(order);
 
@@ -1760,10 +1760,10 @@
     private (decimal PayAmont, decimal DiscountAmount, decimal RechargeAmount) CalculateAmount(decimal amount, decimal rate)
     {
         /// 姝e父鏀粯
-        var payAmount = decimal.Round(amount * rate / 100, 2, MidpointRounding.AwayFromZero);
+        //var payAmount = decimal.Round(amount * rate / 100, 2, MidpointRounding.AwayFromZero);
 
         /// 1鍒嗛挶鏀粯
-        //decimal payAmount = 0.01m;
+        decimal payAmount = 0.01m;
 
         CheckExtensions.IfTrueThrowUserFriendlyException(payAmount < 0.01m, "鏀粯閲戦閿欒");
 
@@ -2100,5 +2100,23 @@
         };
     }
 
+    public async Task<decimal> GetLifePayRate(string channelId, LifePayRateTypeEnum lifePayRateType)
+    {
+        if (string.IsNullOrEmpty(channelId))
+        {
+            var rate = await GetRate();
+            CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
+            var result = rate.FirstOrDefault(x => x.RateType == lifePayRateType).Rate;
+            return result;
+        }
+        else
+        {
+            var channel = await _lifePayChannlesRep.Where(x => x.ChannlesNum == channelId).FirstOrDefaultAsync();
+
+            CheckExtensions.IfTrueThrowUserFriendlyException(channel == null, "鏈壘鍒板搴旀笭閬�");
+            return channel.ChannlesRate;
+        }
+    }
+
     #endregion
 }

--
Gitblit v1.9.1