From 65e7b312659c358970262b027901bb55d764f0f9 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期日, 30 三月 2025 07:32:35 +0800
Subject: [PATCH] fix:拉取收支流水

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index ce4d0c2..f199443 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -101,28 +101,40 @@
             }
         }
 
-
+        /// <summary>
+        /// 鑾峰彇鏀舵敮娴佹按
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
         public async Task<LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input)
         {
             var list = await _lifePayExpensesReceiptsRepository.Where(x => x.IsDeleted == false)
-                .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord))
-                .WhereIf(input.CreationTimeBegin.HasValue, x => x.CreationTime >= input.CreationTimeBegin)
-                .WhereIf(input.CreationTimeEnd.HasValue, x => x.CreationTime <= input.CreationTimeEnd)
-                .Select(x => new LifePayRechargeReceiptsListOutput()
+                .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord) || x.OutOrderNo.Contains(input.KeyWord))
+                .WhereIf(input.LifePayType.HasValue, x => x.LifePayType == input.LifePayType)
+                .WhereIf(input.ExpensesReceiptsType.HasValue, x => x.ExpensesReceiptsType == input.ExpensesReceiptsType)
+                .WhereIf(input.TimeBegin.HasValue, x => x.FinishTime >= input.TimeBegin)
+                .WhereIf(input.TimeEnd.HasValue, x => x.FinishTime <= input.TimeEnd)
+
+                .Select(x => new LifePayExpensesReceiptsListOutput()
                 {
                     Id = x.Id,
                     OrderNo = x.OrderNo,
-                    //RechargeAmount = x.RechargeAmount,
-                    //Remark = x.Remark,
-                    //Voucher = x.Voucher.GetOssPath(),
-                    CreationTime = x.CreationTime,
+                    OutOrderNo = x.OutOrderNo,
+                    LifePayType = x.LifePayType,
+                    ExpensesReceiptsType = x.ExpensesReceiptsType,
+                    Amount = x.Amount,
+                    FinishTime = x.FinishTime
                 })
                 .GetPageResult(input.PageModel);
 
-            var total = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false).SumAsync(x => x.RechargeAmount);
+            var totalIncome = await _lifePayExpensesReceiptsRepository.Where(x => x.IsDeleted == false && x.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Expenses).SumAsync(x => x.Amount);
+            var totalRefund = await _lifePayExpensesReceiptsRepository.Where(x => x.IsDeleted == false && x.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Receipts).SumAsync(x => x.Amount);
+
             LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput> result = new LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput>();
-            //result.Data = list.Data;
-            result.TotalRechargeAmount = total;
+            result.Data = list.Data;
+            result.TotalIncome = totalIncome;
+            result.TotalRefund = totalRefund;
+            result.RealIncome = totalIncome - totalRefund;
             return result;
         }
 
@@ -153,7 +165,8 @@
                         if (input.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Expenses)
                         {
                             var query = await _aliPayApi.OrderInQuiry(new OrderInQuiryInput() { OutTradeNo = input.OrderNo });
-                            if (query.Code == AlipayResultCode.Success && query.TradeStatus == AlipayStatus.TRADESUCCESS)
+                            if (query.Code == AlipayResultCode.Success && (query.TradeStatus == AlipayStatus.TRADESUCCESS 
+                                || query.TradeStatus == AlipayStatus.TRADECLOSED))
                             {
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SendPayDate);
@@ -175,7 +188,7 @@
                         if (input.ExpensesReceiptsType == ExpensesReceiptsTypeEnum.Expenses)
                         {
                             var query = await _wxPayApi.WxPayTradeQuery(input.OrderNo);
-                            if (query.Code == AlipayResultCode.Success && query.Status == WxPayStatus.鏀粯鎴愬姛)
+                            if (query.TradeState == WxPayStatus.鏀粯鎴愬姛 || query.TradeState == WxPayStatus.杞叆閫�娆�)
                             {
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);

--
Gitblit v1.9.1