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