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