From 5e918c353d039a75f552f4eb0cc251e96ef809ab Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期二, 01 四月 2025 09:58:54 +0800 Subject: [PATCH] fix:bug修复 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 119 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 65 insertions(+), 54 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index f640885..856e067 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 { @@ -146,54 +148,31 @@ public async Task<List<LifePayChannlesRakeListTemplate>> GetLifePayChannlesRakePageExport(LifePayChannlesRakePageInput input) { - //var result = await (await GetLifePayOrderListFilter(input)).Select(x => new LifePayOrderListTemplate - //{ - // DiscountAmount = x.DiscountAmount, - // FinishTime = x.FinishTime, - // LifePayOrderStatus = x.LifePayOrderStatus, - // LifePayOrderType = x.LifePayOrderType, - // LifePayType = x.LifePayType, - // OrderNo = x.OrderNo, - // PayAmount = x.PayAmount, - // ActualRechargeAmount = x.RechargeAmount, - // PhoneNumber = x.PhoneNumber, - // RechargeAmount = x.RechargeAmount, - // OutOrderNo = x.OutOrderNo, - // PayStatus = x.PayStatus, - // PayTime = x.PayTime, - // ACOOLYOrderNo = x.ACOOLYOrderNo, - // CreationTime = x.CreationTime, - // LifePayRefundStatus = x.LifePayRefundStatus, - // ACOOLYStatus = x.ACOOLYStatus, - // //RefundApplyRemark = x.RefundApplyRemark, - // ChannelName = x.ChannelName, - // PlatformPrice = x.PlatformDeductionAmount.HasValue ? x.PlatformDeductionAmount.Value : 0.00m - //}).OrderByDescending(r => r.CreationTime).ToListAsync(); - //var i = 0; - //result.ForEach(s => - //{ - // s.SerialNumber = ++i; - // s.LifePayOrderTypeStr = s.LifePayOrderType.GetDescription(); - // s.CreationTimeStr = s.CreationTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); - // s.RechargeAmountStr = s.RechargeAmount.ToString("F2"); - // s.PayAmountStr = s.PayAmount.ToString("F2"); - // s.PayTimeStr = !s.PayTime.HasValue ? string.Empty : s.PayTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); - // s.LifePayTypeStr = s.LifePayType.GetDescription(); - // s.PayStatusStr = s.PayStatus.GetDescription(); - // s.ActualRechargeAmountStr = s.ActualRechargeAmount.ToString("F2"); - // s.LifePayRefundStatusStr = s.LifePayRefundStatus == LifePayRefundStatusEnum.鏃犻渶閫�娆� ? "" : s.LifePayRefundStatus.GetDescription(); - // s.ACOOLYStatusStr = s.ACOOLYStatus.GetDescription(); - // s.LifePayOrderStatusStr = s.LifePayOrderStatus.GetDescription(); - // s.FinishTimeStr = !s.FinishTime.HasValue ? string.Empty : s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); - //}); - return null; + 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("F0") + "%"; + s.ChannlesRakePriceStr = s.ChannlesRakePrice.ToString("F2"); + s.FinishTimeStr = s.FinishTime.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss); + }); + return result; } #endregion - - - + #region 鎿嶄綔 /// <summary> /// 缂栬緫鍏呭�兼祦姘� @@ -229,7 +208,7 @@ } } - + /// <summary> /// 鎻掑叆鏀舵敮娴佹按 /// </summary> @@ -244,11 +223,9 @@ var data = new LifePayExpensesReceipts() { Id = Guid.NewGuid(), - OrderNo = input.OrderNo, OutOrderNo = input.OutOrderNo, LifePayType = input.LifePayType, ExpensesReceiptsType = input.ExpensesReceiptsType, - Amount = input.Amount, }; switch (input.LifePayType) @@ -260,18 +237,22 @@ if (query.Code == AlipayResultCode.Success && (query.TradeStatus == AlipayStatus.TRADESUCCESS || query.TradeStatus == AlipayStatus.TRADECLOSED)) { + data.OrderNo = input.OrderNo; data.ExtraProperties = JsonConvert.SerializeObject(query); data.FinishTime = Convert.ToDateTime(query.SendPayDate); + data.Amount = Convert.ToDecimal(query.TotalAmount); await _lifePayExpensesReceiptsRepository.InsertAsync(data); } } else { - var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo }); + var query = await _aliPayApi.QueryAlipayTradeRefund(new OrderInQuiryInput() { OutTradeNo = input.OrderNo, OutRefundNo = input.OutRefundNo }); if (query.Code == AlipayResultCode.Success && query.RefundStatus == AlipayRefundStatus.Success) { + data.OrderNo = input.OutRefundNo; data.ExtraProperties = JsonConvert.SerializeObject(query); data.FinishTime = Convert.ToDateTime(query.GmtRefundPay); + data.Amount = Convert.ToDecimal(query.RefundAmount); await _lifePayExpensesReceiptsRepository.InsertAsync(data); } } @@ -282,6 +263,7 @@ var query = await _wxPayApi.WxPayTradeQuery(input.OrderNo); if (query.TradeState == WxPayStatus.鏀粯鎴愬姛 || query.TradeState == WxPayStatus.杞叆閫�娆�) { + data.OrderNo = input.OrderNo; data.ExtraProperties = JsonConvert.SerializeObject(query); data.FinishTime = Convert.ToDateTime(query.SuccessTime); await _lifePayExpensesReceiptsRepository.InsertAsync(data); @@ -289,9 +271,10 @@ } else { - var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OrderNo); + var query = await _wxPayApi.WxPayDomesticRefundsQuery(input.OutRefundNo); if (query.Status == WxPayRefundStatus.閫�娆炬垚鍔�) { + data.OrderNo = input.OutRefundNo; data.ExtraProperties = JsonConvert.SerializeObject(query); data.FinishTime = Convert.ToDateTime(query.SuccessTime); await _lifePayExpensesReceiptsRepository.InsertAsync(data); @@ -336,15 +319,14 @@ /// 鍑鸿处 if (item.RefundOrderNo.IsNotNullOrEmpty()) { - if (input.LifePayType == LifePayTypeEnum.WxPay) - { - input.OrderNo = item.RefundOrderNo; - } + input.OutRefundNo = item.OrderNo; + input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; + await AddLifePayExpensesReceipts(input); + input.OutRefundNo = item.RefundOrderNo; input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; await AddLifePayExpensesReceipts(input); } - } } } @@ -377,5 +359,34 @@ } } } + #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