From cf7069e5b979e025d30f13a2fe3ee3b3d824cea6 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期二, 25 三月 2025 11:03:47 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/LifePaymentApi

---
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs |   38 ++++++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 0d14bf2..49672e7 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, "鏀粯閲戦閿欒");
 
@@ -2011,7 +2011,7 @@
     {
         var result = (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
      .Where(x => x.LifePayOrderStatus == LifePayOrderStatusEnum.寰呴��娆� || x.LifePayOrderStatus == LifePayOrderStatusEnum.宸查��娆� || x.LifePayOrderStatus == LifePayOrderStatusEnum.閫�娆句腑
-     || x.LifePayRefundStatus > LifePayRefundStatusEnum.鏃犻渶閫�娆�)
+     || (x.LifePayRefundStatus > LifePayRefundStatusEnum.鏃犻渶閫�娆� && x.LifePayRefundStatus != LifePayRefundStatusEnum.閫�娆鹃┏鍥�))
                                          .WhereIf(input.BeginRefundTime.HasValue, x => x.RefundTime >= input.BeginRefundTime)
                                          .WhereIf(input.EndRefundTime.HasValue, x => x.RefundTime <= input.EndRefundTime)
                                          .WhereIf(input.BeginRefundApplyTime.HasValue, x => x.RefundApplyTime >= input.BeginRefundApplyTime)
@@ -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