From d5f58449670f05b8022fc103934ba860e8ddce5d Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期二, 25 三月 2025 15:57:39 +0800
Subject: [PATCH] fix:隐藏未支付订单

---
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs |   54 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index f9b0fca..26b1780 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -246,6 +246,7 @@
     {
         var channles = await _lifePayChannlesRep.Where(x => x.ChannlesName.Contains(input.KeyWords)).Select(x => x.ChannlesNum).ToListAsync();
         var result = await (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
+                            .Where(x => x.PayStatus != LifePayStatusEnum.鏈敮浠�)
                       .WhereIf(input.BeginFinishTime.HasValue, x => x.FinishTime >= input.BeginFinishTime)
                                             .WhereIf(input.EndFinishTime.HasValue, x => x.FinishTime <= input.EndFinishTime)
                                             .WhereIf(input.BeginPayTime.HasValue, x => x.PayTime >= input.BeginPayTime)
@@ -337,6 +338,7 @@
                                 RefundCheckRemark = a.RefundCheckRemark,
                                 RefundApplyRemark = a.RefundApplyRemark,
                                 RefundApplyTime = a.RefundApplyTime,
+                                RefundOrderNo = a.RefundOrderNo,
                                 RefundTime = a.RefundTime,
                                 RefundPrice = a.RefundPrice,
                                 ChannelName = b.ChannlesName,
@@ -365,6 +367,7 @@
             PayAmount = x.PayAmount,
             PhoneNumber = x.PhoneNumber,
             RefundOrderNo = x.RefundOrderNo,
+            RefundApplyTime = x.RefundApplyTime,
             ChannelName = x.ChannelName,
             CreationTime = x.CreationTime,
             ACOOLYStatus = x.ACOOLYStatus,
@@ -386,6 +389,7 @@
             s.PayAmountStr = s.PayAmount.ToString("F2");
             s.LifePayTypeStr = s.LifePayType.GetDescription();
             s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmm);
+            s.RefundApplyTimeStr = !s.RefundApplyTime.HasValue? string.Empty:s.RefundApplyTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmm);
         });
         return result;
     }
@@ -729,7 +733,7 @@
             LifePayType = x.LifePayType,
             OrderNo = x.OrderNo,
             PayAmount = x.PayAmount,
-            ActualRechargeAmount = x.ActualRechargeAmount.HasValue?x.ActualRechargeAmount.Value:0,
+            ActualRechargeAmount = x.RechargeAmount,
             PhoneNumber = x.PhoneNumber,
             RechargeAmount = x.RechargeAmount,
             OutOrderNo = x.OutOrderNo,
@@ -755,7 +759,7 @@
             s.LifePayTypeStr = s.LifePayType.GetDescription();
             s.PayStatusStr = s.PayStatus.GetDescription();
             s.ActualRechargeAmountStr = s.ActualRechargeAmount.ToString("F2");
-            s.LifePayRefundStatusStr = s.LifePayRefundStatus.GetDescription();
+            s.LifePayRefundStatusStr = s.LifePayRefundStatus == LifePayRefundStatusEnum.鏃犻渶閫�娆� ? "" : s.LifePayRefundStatus.GetDescription();
             s.ACOOLYStatusStr = s.ACOOLYStatus.GetDescription();
             //s.LifePayOrderStatusStr = s.LifePayOrderStatus.GetDescription();
             s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
@@ -830,12 +834,12 @@
         var channle = await GetLifePayChannlesDtoByNum(input.ChannelId);
         CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
 
-        var rate = await GetRate();
-        CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
+        //var rate = await GetRate();
+        //CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
 
-        //var rate = await GetLifePayRate();
+        var rate = await GetLifePayRate(channle, LifePayRateTypeEnum.榛樿璇濊垂鎶樻墸);
 
-        var amount = CalculateAmount(input.ProductData.ParValue, rate.FirstOrDefault(x => x.RateType == LifePayRateTypeEnum.榛樿璇濊垂鎶樻墸).Rate);
+        var amount = CalculateAmount(input.ProductData.ParValue, rate);
 
         var platformRate = await _lifePayRateRepository.FirstOrDefaultAsync(r => r.RateType == LifePayRateTypeEnum.渚涘簲鍟嗘姌鎵d环);
         
@@ -856,7 +860,7 @@
             ChannelId = channle.ChannlesNum,
             PlatformRate = platformRate.Rate,
             PlatformDeductionAmount = amount.RechargeAmount * platformRate.Rate /100,
-            ChannleRate = channle.ChannlesRate,
+            ChannleRate = rate,
             ChannlesRakeRate = channle.ChannlesRakeRate,
             //ChannlesRakePrice = amount.RechargeAmount * (channle.ChannlesRate - platformRate.Rate) / 100 * channle.ChannlesRakeRate / 100
         };
@@ -884,10 +888,13 @@
         CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
         CheckExtensions.IfTrueThrowUserFriendlyException(channle.Status == LifePayChannelsStatsEnum.绂佺敤, "娓犻亾宸茶绂佺敤");
 
-        var rate = await GetRate();
-        CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
+        //var rate = await GetRate();
+        //CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
 
-        var amount = CalculateAmount(input.ProductData.ParValue, rate.FirstOrDefault(x => x.RateType == LifePayRateTypeEnum.榛樿鐢佃垂鎶樻墸).Rate);
+
+        var rate = await GetLifePayRate(channle, LifePayRateTypeEnum.榛樿鐢佃垂鎶樻墸);
+
+        var amount = CalculateAmount(input.ProductData.ParValue, rate);
 
         var platformRate = await _lifePayRateRepository.FirstOrDefaultAsync(r => r.RateType == LifePayRateTypeEnum.渚涘簲鍟嗘姌鎵d环);
 
@@ -906,7 +913,7 @@
             RechargeAmount = amount.RechargeAmount,
             ChannelId = channle.ChannlesNum,
             PlatformRate = platformRate.Rate,
-            ChannleRate = channle.ChannlesRate,
+            ChannleRate = rate,
             ChannlesRakeRate = channle.ChannlesRakeRate,
         };
 
@@ -933,10 +940,13 @@
         CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
         CheckExtensions.IfTrueThrowUserFriendlyException(channle.Status == LifePayChannelsStatsEnum.绂佺敤, "娓犻亾宸茶绂佺敤");
 
-        var rate = await GetRate();
-        CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
+        //var rate = await GetRate();
+        //CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
 
-        var amount = CalculateAmount(input.ProductData.ParValue, rate.FirstOrDefault(x => x.RateType == LifePayRateTypeEnum.榛樿鐕冩皵鎶樻墸).Rate);
+
+        var rate = await GetLifePayRate(channle, LifePayRateTypeEnum.榛樿鐕冩皵鎶樻墸);
+
+        var amount = CalculateAmount(input.ProductData.ParValue, rate);
 
         var platformRate = await _lifePayRateRepository.FirstOrDefaultAsync(r => r.RateType == LifePayRateTypeEnum.渚涘簲鍟嗘姌鎵d环);
 
@@ -953,7 +963,10 @@
             PayAmount = amount.PayAmont,
             DiscountAmount = amount.DiscountAmount,
             RechargeAmount = amount.RechargeAmount,
-            ChannelId = channle.ChannlesNum
+            ChannelId = channle.ChannlesNum,
+            PlatformRate = platformRate.Rate,
+            ChannleRate = rate,
+            ChannlesRakeRate = channle.ChannlesRakeRate,
         };
 
         await CreateLifePayOrder(orderInput);
@@ -1387,7 +1400,7 @@
 
                 break;
             case LifePayTypeEnum.AliPay:
-                var aliRefundResult = await AliTradeRefund(new AlipayTradeRefundRequest() { OutTradeNo = order.OrderNo, RefundAmount = Convert.ToInt32(input.RefundPrice).ToString() });
+                var aliRefundResult = await AliTradeRefund(new AlipayTradeRefundRequest() { OutTradeNo = order.OrderNo, RefundAmount = input.RefundPrice.ToString() });
                 if (aliRefundResult.Code != AlipayResultCode.Success)
                 {
                     throw new UserFriendlyException("閫�娆惧け璐�:" + aliRefundResult.SubMsg);
@@ -1974,6 +1987,7 @@
     {
         var channles = await _lifePayChannlesRep.Where(x => x.ChannlesName.Contains(input.KeyWords)).Select(x => x.ChannlesNum).ToListAsync();
         var result = (from a in _channelFilter.GetChannelLifePayOrderFilter(_lifePayOrderRepository)
+                            .Where(x => x.PayStatus != LifePayStatusEnum.鏈敮浠�)
                       .WhereIf(input.BeginFinishTime.HasValue, x => x.FinishTime >= input.BeginFinishTime)
                                             .WhereIf(input.EndFinishTime.HasValue, x => x.FinishTime <= input.EndFinishTime)
                                             .WhereIf(input.BeginPayTime.HasValue, x => x.PayTime >= input.BeginPayTime)
@@ -2061,6 +2075,7 @@
                                 RefundApplyRemark = a.RefundApplyRemark,
                                 RefundApplyTime = a.RefundApplyTime,
                                 RefundTime = a.RefundTime,
+                                RefundOrderNo = a.RefundOrderNo,
                                 RefundPrice = a.RefundPrice,
                                 ChannelName = b.ChannlesName,
                                 ActualRechargeAmount = a.ActualRechargeAmount,
@@ -2114,9 +2129,9 @@
         };
     }
 
-    public async Task<decimal> GetLifePayRate(string channelId, LifePayRateTypeEnum lifePayRateType)
+    public async Task<decimal> GetLifePayRate(CreateEditPayChannelsInput channel, LifePayRateTypeEnum lifePayRateType)
     {
-        if (string.IsNullOrEmpty(channelId))
+        if (channel == null)
         {
             var rate = await GetRate();
             CheckExtensions.IfTrueThrowUserFriendlyException(rate.IsNullOrEmpty(), "鏈厤缃姌鎵�");
@@ -2125,9 +2140,6 @@
         }
         else
         {
-            var channel = await _lifePayChannlesRep.Where(x => x.ChannlesNum == channelId).FirstOrDefaultAsync();
-
-            CheckExtensions.IfTrueThrowUserFriendlyException(channel == null, "鏈壘鍒板搴旀笭閬�");
             return channel.ChannlesRate;
         }
     }

--
Gitblit v1.9.1