From 95798bbe8e398d3dd75926e18dfef2e14d1bc7cc Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期一, 31 三月 2025 10:18:10 +0800 Subject: [PATCH] fix:流水分页数据返回结果更新 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 83 +++++++++++++++++++++++++++++++++-------- 1 files changed, 67 insertions(+), 16 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index f199443..f17ba62 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs @@ -21,17 +21,20 @@ { private readonly IRepository<LifePayRechargeReceipts, Guid> _lifePayRechargeReceiptsRepository; private readonly IRepository<LifePayExpensesReceipts, Guid> _lifePayExpensesReceiptsRepository; + private readonly IRepository<LifePayOrder, Guid> _lifePayOrderRepository; private readonly IAliPayApi _aliPayApi; private readonly IWxPayApi _wxPayApi; public LifePayOrderService( IRepository<LifePayRechargeReceipts, Guid> lifePayRechargeReceiptsRepository, IRepository<LifePayExpensesReceipts, Guid> lifePayExpensesReceiptsRepository, + IRepository<LifePayOrder, Guid> lifePayOrderRepository, IAliPayApi aliPayApi, IWxPayApi wxPayApi) { _lifePayRechargeReceiptsRepository = lifePayRechargeReceiptsRepository; _lifePayExpensesReceiptsRepository = lifePayExpensesReceiptsRepository; + _lifePayOrderRepository = lifePayOrderRepository; _aliPayApi = aliPayApi; _wxPayApi = wxPayApi; } @@ -41,7 +44,7 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput>> GetLifePayRechargeReceiptsPage(LifePayRechargeReceiptsPageInput input) + public async Task<PageOutput<LifePayRechargeReceiptsListOutput>> GetLifePayRechargeReceiptsPage(LifePayRechargeReceiptsPageInput input) { var list = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false) .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord)) @@ -59,10 +62,10 @@ .GetPageResult(input.PageModel); var total = await _lifePayRechargeReceiptsRepository.Where(x => x.IsDeleted == false).SumAsync(x => x.RechargeAmount); - LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput> result = new LifePayRechargeReceiptsPageOutput<LifePayRechargeReceiptsListOutput>(); - result.Data = list.Data; - result.TotalRechargeAmount = total; - return result; + LifePayRechargeReceiptsStatistics objectData = new LifePayRechargeReceiptsStatistics(); + objectData.TotalRechargeAmount = total; + list.ObjectData = objectData; + return list; } @@ -106,7 +109,7 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<LifePayExpensesReceiptsPageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input) + public async Task<PageOutput<LifePayExpensesReceiptsListOutput>> GetLifePayExpensesReceiptsPage(LifePayExpensesReceiptsPageInput input) { var list = await _lifePayExpensesReceiptsRepository.Where(x => x.IsDeleted == false) .WhereIf(input.KeyWord.IsNotNullOrEmpty(), x => x.OrderNo.Contains(input.KeyWord) || x.OutOrderNo.Contains(input.KeyWord)) @@ -121,7 +124,7 @@ OrderNo = x.OrderNo, OutOrderNo = x.OutOrderNo, LifePayType = x.LifePayType, - ExpensesReceiptsType = x.ExpensesReceiptsType, + ExpensesReceiptsType = x.ExpensesReceiptsType.Value, Amount = x.Amount, FinishTime = x.FinishTime }) @@ -130,12 +133,12 @@ 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.TotalIncome = totalIncome; - result.TotalRefund = totalRefund; - result.RealIncome = totalIncome - totalRefund; - return result; + LifePayExpensesReceiptsStatistics objectData = new LifePayExpensesReceiptsStatistics(); + objectData.TotalIncome = totalIncome; + objectData.TotalRefund = totalRefund; + objectData.RealIncome = totalIncome - totalRefund; + list.ObjectData = objectData; + return list; } /// <summary> @@ -165,7 +168,7 @@ 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); @@ -179,7 +182,7 @@ if (query.Code == AlipayResultCode.Success && query.RefundStatus == AlipayRefundStatus.Success) { data.ExtraProperties = JsonConvert.SerializeObject(query); - //data.FinishTime = Convert.ToDateTime(query.SendPayDate); + data.FinishTime = Convert.ToDateTime(query.GmtRefundPay); await _lifePayExpensesReceiptsRepository.InsertAsync(data); } } @@ -198,7 +201,7 @@ else { var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo); - if (query.Code == AlipayResultCode.Success && query.RefundStatus == WxPayRefundStatus.閫�娆炬垚鍔�) + if (query.Status == WxPayRefundStatus.閫�娆炬垚鍔�) { data.ExtraProperties = JsonConvert.SerializeObject(query); data.FinishTime = Convert.ToDateTime(query.SuccessTime); @@ -210,5 +213,53 @@ } } } + + public async Task GetAllLifePayExpensesReceipts() + { + var orderlist = await (from a in _lifePayOrderRepository.Where(x => x.PayStatus >= LifePayStatusEnum.宸叉敮浠�) + join b in _lifePayExpensesReceiptsRepository on a.OrderNo equals b.OrderNo into temp + from b in temp.DefaultIfEmpty() + select new LifePayExpensesReceiptsTemp() + { + OrderNo = a.OrderNo, + OutOrderNo = a.OutOrderNo, + RefundOrderNo = a.RefundOrderNo, + LifePayType = a.LifePayType.Value, + Amount = a.PayAmount.Value, + ExpensesReceiptsType = b.ExpensesReceiptsType + }).ToListAsync(); + foreach (var item in orderlist) + { + if (!item.ExpensesReceiptsType.HasValue) + { + /// 鍏ヨ处 + AddLifePayExpensesReceiptsInput input = new AddLifePayExpensesReceiptsInput() + { + OrderNo = item.OrderNo, + OutOrderNo = item.OutOrderNo, + LifePayType = item.LifePayType, + Amount = item.Amount, + ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses + }; + + await AddLifePayExpensesReceipts(input); + + /// 鍑鸿处 + if (item.RefundOrderNo.IsNotNullOrEmpty()) + { + if (input.LifePayType == LifePayTypeEnum.WxPay) + { + input.OrderNo = item.RefundOrderNo; + } + + input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; + await AddLifePayExpensesReceipts(input); + } + + + } + } + + } } } -- Gitblit v1.9.1