From 5e918c353d039a75f552f4eb0cc251e96ef809ab Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期二, 01 四月 2025 09:58:54 +0800
Subject: [PATCH] fix:bug修复

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |  119 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 65 insertions(+), 54 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index f640885..856e067 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -14,6 +14,8 @@
 using LifePayment.Domain;
 using static LifePayment.Domain.Shared.LifePaymentConstant;
 using Newtonsoft.Json;
+using LifePayment.Domain.Common;
+using Spire.Pdf.Exporting.XPS.Schema;
 
 namespace LifePayment.Application.LifePay
 {
@@ -146,54 +148,31 @@
 
         public async Task<List<LifePayChannlesRakeListTemplate>> GetLifePayChannlesRakePageExport(LifePayChannlesRakePageInput input)
         {
-            //var result = await (await GetLifePayOrderListFilter(input)).Select(x => new LifePayOrderListTemplate
-            //{
-            //    DiscountAmount = x.DiscountAmount,
-            //    FinishTime = x.FinishTime,
-            //    LifePayOrderStatus = x.LifePayOrderStatus,
-            //    LifePayOrderType = x.LifePayOrderType,
-            //    LifePayType = x.LifePayType,
-            //    OrderNo = x.OrderNo,
-            //    PayAmount = x.PayAmount,
-            //    ActualRechargeAmount = x.RechargeAmount,
-            //    PhoneNumber = x.PhoneNumber,
-            //    RechargeAmount = x.RechargeAmount,
-            //    OutOrderNo = x.OutOrderNo,
-            //    PayStatus = x.PayStatus,
-            //    PayTime = x.PayTime,
-            //    ACOOLYOrderNo = x.ACOOLYOrderNo,
-            //    CreationTime = x.CreationTime,
-            //    LifePayRefundStatus = x.LifePayRefundStatus,
-            //    ACOOLYStatus = x.ACOOLYStatus,
-            //    //RefundApplyRemark = x.RefundApplyRemark,
-            //    ChannelName = x.ChannelName,
-            //    PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m
-            //}).OrderByDescending(r => r.CreationTime).ToListAsync();
-            //var i = 0;
-            //result.ForEach(s =>
-            //{
-            //    s.SerialNumber = ++i;
-            //    s.LifePayOrderTypeStr = s.LifePayOrderType.GetDescription();
-            //    s.CreationTimeStr = s.CreationTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
-            //    s.RechargeAmountStr = s.RechargeAmount.ToString("F2");
-            //    s.PayAmountStr = s.PayAmount.ToString("F2");
-            //    s.PayTimeStr = !s.PayTime.HasValue ? string.Empty : s.PayTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
-            //    s.LifePayTypeStr = s.LifePayType.GetDescription();
-            //    s.PayStatusStr = s.PayStatus.GetDescription();
-            //    s.ActualRechargeAmountStr = s.ActualRechargeAmount.ToString("F2");
-            //    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);
-            //});
-            return null;
+            var result = await (await GetLifePayChannlesRakeListFilter(input)).Select(x => new LifePayChannlesRakeListTemplate
+            {
+                CreationTime = x.CreationTime,
+                FinishTime = x.FinishTime,
+                OrderNo = x.OrderNo,
+                PayAmount = x.PayAmount,
+                ChannlesRakeRate = x.ChannlesRakeRate,
+                ChannlesRakePrice = x.ChannlesRakePrice
+            }).OrderByDescending(r => r.CreationTime).ToListAsync();
+            var i = 0;
+            result.ForEach(s =>
+            {
+                s.SerialNumber = ++i;
+                s.CreationTimeStr = s.CreationTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+                s.PayAmountStr = s.PayAmount.ToString("F2");
+                s.ChannlesRakeRateStr = s.ChannlesRakeRate.ToString("F0") + "%";
+                s.ChannlesRakePriceStr = s.ChannlesRakePrice.ToString("F2");
+                s.FinishTimeStr = s.FinishTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+            });
+            return result;
         }
 
         #endregion
 
-
-
-
+        #region 鎿嶄綔
 
         /// <summary>
         /// 缂栬緫鍏呭�兼祦姘�
@@ -229,7 +208,7 @@
             }
         }
 
-        
+
         /// <summary>
         /// 鎻掑叆鏀舵敮娴佹按
         /// </summary>
@@ -244,11 +223,9 @@
                 var data = new LifePayExpensesReceipts()
                 {
                     Id = Guid.NewGuid(),
-                    OrderNo = input.OrderNo,
                     OutOrderNo = input.OutOrderNo,
                     LifePayType = input.LifePayType,
                     ExpensesReceiptsType = input.ExpensesReceiptsType,
-                    Amount = input.Amount,
                 };
 
                 switch (input.LifePayType)
@@ -260,18 +237,22 @@
                             if (query.Code == AlipayResultCode.Success && (query.TradeStatus == AlipayStatus.TRADESUCCESS
                                 || query.TradeStatus == AlipayStatus.TRADECLOSED))
                             {
+                                data.OrderNo = input.OrderNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SendPayDate);
+                                data.Amount = Convert.ToDecimal(query.TotalAmount);
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
                             }
                         }
                         else
                         {
-                            var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo });
+                            var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo, OutRefundNo = input.OutRefundNo });
                             if (query.Code == AlipayResultCode.Success && query.RefundStatus == AlipayRefundStatus.Success)
                             {
+                                data.OrderNo = input.OutRefundNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.GmtRefundPay);
+                                data.Amount = Convert.ToDecimal(query.RefundAmount);
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
                             }
                         }
@@ -282,6 +263,7 @@
                             var query = await _wxPayApi.WxPayTradeQuery(input.OrderNo);
                             if (query.TradeState == WxPayStatus.鏀粯鎴愬姛 || query.TradeState == WxPayStatus.杞叆閫�娆�)
                             {
+                                data.OrderNo = input.OrderNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
@@ -289,9 +271,10 @@
                         }
                         else
                         {
-                            var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo);
+                            var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OutRefundNo);
                             if (query.Status == WxPayRefundStatus.閫�娆炬垚鍔�)
                             {
+                                data.OrderNo = input.OutRefundNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
@@ -336,15 +319,14 @@
                     /// 鍑鸿处
                     if (item.RefundOrderNo.IsNotNullOrEmpty())
                     {
-                        if (input.LifePayType == LifePayTypeEnum.WxPay)
-                        {
-                            input.OrderNo = item.RefundOrderNo;
-                        }
+                        input.OutRefundNo = item.OrderNo;
+                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
+                        await AddLifePayExpensesReceipts(input);
 
+                        input.OutRefundNo = item.RefundOrderNo;
                         input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                         await AddLifePayExpensesReceipts(input);
                     }
-                    
                 }
             }
         }
@@ -377,5 +359,34 @@
                 }
             }
         }
+        #endregion
+
+        #region 绉佹湁
+        private async Task<IQueryable<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakeListFilter(LifePayChannlesRakePageInput input)
+        {
+            var list = _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false)
+                .WhereIf(input.ChannelId.IsNotNullOrEmpty(), x => x.ChannelId == input.ChannelId)
+                .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin)
+                .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd)
+                .WhereIf(input.FinishTimeBegin.HasValue, x => x.FinishTime >= input.FinishTimeBegin)
+                .WhereIf(input.FinishTimeEnd.HasValue, x => x.FinishTime <= input.FinishTimeEnd)
+
+                .Select(x => new LifePayChannlesRakeListOutput()
+                {
+                    Id = x.Id,
+                    OrderNo = x.OrderNo,
+                    PayAmount = x.PayAmount,
+                    ChannlesRakeRate = x.ChannlesRakeRate,
+                    ChannlesRakePrice = x.ChannlesRakePrice,
+                    ChannelId = x.ChannelId,
+                    FinishTime = x.FinishTime,
+                    CreationTime = x.CreationTime,
+                });
+
+
+            return list;
+        }
+        #endregion
+
     }
 }

--
Gitblit v1.9.1