From d882110d4e70aba7ccb25b026ddf54a0fe5632a9 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期一, 31 三月 2025 14:32:26 +0800
Subject: [PATCH] fix:新增导出接口

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |   71 ++++++++++++++++++++++++++++++++---
 1 files changed, 64 insertions(+), 7 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index fc61849..6e9e7e5 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
 {
@@ -117,7 +119,7 @@
         public async Task<PageOutput<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakePage(LifePayChannlesRakePageInput input)
         {
             var list = await _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false)
-                .WhereIf(input.ChannelId != null, x => x.ChannelId == input.ChannelId)
+                .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)
@@ -144,11 +146,33 @@
             return list;
         }
 
+        public async Task<List<LifePayChannlesRakeListTemplate>> GetLifePayChannlesRakePageExport(LifePayChannlesRakePageInput input)
+        {
+            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("F2");
+                s.ChannlesRakePriceStr = s.ChannlesRakePrice.ToString("F2");
+                s.FinishTimeStr = s.FinishTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss);
+            });
+            return result;
+        }
+
         #endregion
 
-
-
-
+        #region 鎿嶄綔
 
         /// <summary>
         /// 缂栬緫鍏呭�兼祦姘�
@@ -184,7 +208,7 @@
             }
         }
 
-        
+
         /// <summary>
         /// 鎻掑叆鏀舵敮娴佹按
         /// </summary>
@@ -299,7 +323,7 @@
                         input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
                         await AddLifePayExpensesReceipts(input);
                     }
-                    
+
                 }
             }
         }
@@ -324,9 +348,42 @@
                         FinishTime = item.FinishTime.Value,
                         ChannelId = item.ChannelId,
                     };
-                    await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
+                    var repeat = _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).FirstOrDefaultAsync();
+                    if (repeat != null)
+                    {
+                        await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
+                    }
                 }
             }
         }
+        #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