From a61cf44e594b63877b9797fc5250024be5cab632 Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期一, 14 四月 2025 09:02:37 +0800 Subject: [PATCH] fix:验重bug修复 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 103 ++++++++++++++++++++++----------------------------- 1 files changed, 45 insertions(+), 58 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index ad98f37..1bca3f1 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs @@ -74,7 +74,7 @@ FrozenStatus = x.FrozenStatus, Flow = x.Flow, DeductionAmount = x.DeductionAmount, - FrozenAmount = x.FrozenAmount.Value + FrozenAmount = x.FrozenAmount ?? 0 }) .GetPageResult(input.PageModel); @@ -82,7 +82,7 @@ var totalFrozenAmount = await _lifePayConsumption.SumAsync(x => x.FrozenAmount); LifePayConsumptionStatistics objectData = new LifePayConsumptionStatistics(); objectData.TotalDeductionAmount = totalDeductionAmount; - objectData.TotalFrozenAmount = totalFrozenAmount.Value; + objectData.TotalFrozenAmount = totalFrozenAmount ?? 0; list.ObjectData = objectData; return list; } @@ -136,7 +136,7 @@ OrderNo = x.OrderNo, OutOrderNo = x.OutOrderNo, LifePayType = x.LifePayType, - ExpensesReceiptsType = x.ExpensesReceiptsType.Value, + ExpensesReceiptsType = x.ExpensesReceiptsType ?? 0, Amount = x.Amount, FinishTime = x.FinishTime }) @@ -213,7 +213,7 @@ 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); + s.FinishTimeStr = s.FinishTime.HasValue ? s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss) : ""; }); return result; } @@ -232,8 +232,8 @@ CheckExtensions.IfTrueThrowUserFriendlyException(input.OrderNo == null, "璇疯緭鍏ヤ笟鍔¤鍗曞彿"); CheckExtensions.IfTrueThrowUserFriendlyException(input.RechargeAmount <= 0, "鍏呭�奸噾棰濆簲澶т簬0"); CheckExtensions.IfTrueThrowUserFriendlyException(input.Voucher == null, "璇锋彁浜ゅ厖鍊煎嚟璇�"); - var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo).FirstOrDefaultAsync(); - CheckExtensions.IfTrueThrowUserFriendlyException(repeat != null && repeat.Id != input.Id, "涓氬姟璁㈠崟鍙烽噸澶�"); + var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo && x.Id != input.Id).AnyAsync(); + CheckExtensions.IfTrueThrowUserFriendlyException(repeat, "涓氬姟璁㈠崟鍙烽噸澶�"); if (input.Id.HasValue) { var payRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.Id == input.Id.Value).FirstOrDefaultAsync(); @@ -264,8 +264,8 @@ public async Task AddLifePayExpensesReceipts(AddLifePayExpensesReceiptsInput input) { var repeat = await _lifePayExpensesReceiptsRepository.Where(x => x.ExpensesReceiptsType == input.ExpensesReceiptsType - && x.OrderNo == input.OrderNo).FirstOrDefaultAsync(); - if (repeat == null) + && x.OrderNo == input.OrderNo).AnyAsync(); + if (!repeat) { var data = new LifePayExpensesReceipts() { @@ -394,8 +394,8 @@ OrderNo = a.OrderNo, OutOrderNo = a.OutOrderNo, RefundOrderNo = a.RefundOrderNo, - LifePayType = a.LifePayType.Value, - Amount = a.PayAmount.Value, + LifePayType = a.LifePayType ?? 0, + Amount = a.PayAmount ?? 0, ExpensesReceiptsType = b.ExpensesReceiptsType }).ToListAsync(); foreach (var item in orderlist) @@ -415,15 +415,19 @@ await AddLifePayExpensesReceipts(input); /// 鍑鸿处 + AddLifePayExpensesReceiptsInput receipts = new AddLifePayExpensesReceiptsInput() + { + OrderNo = item.OrderNo, + OutOrderNo = item.OutOrderNo, + LifePayType = item.LifePayType, + Amount = item.Amount, + ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses + }; if (item.RefundOrderNo.IsNotNullOrEmpty()) { - input.OutRefundNo = item.OrderNo; - input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; - await AddLifePayExpensesReceipts(input); - - input.OutRefundNo = item.RefundOrderNo; - input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; - await AddLifePayExpensesReceipts(input); + receipts.OutRefundNo = item.RefundOrderNo; + receipts.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts; + await AddLifePayExpensesReceipts(receipts); } } } @@ -451,11 +455,15 @@ PayAmount = item.RechargeAmount ?? 0, ChannlesRakeRate = item.ChannlesRakeRate ?? 0, ChannlesRakePrice = channlesRakePrice ?? 0, - FinishTime = item.FinishTime.Value, ChannelId = item.ChannelId, }; - var repeat = _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).FirstOrDefaultAsync(); - if (repeat != null) + if (item.FinishTime.HasValue) + { + lifePayChannlesRake.FinishTime = item.FinishTime.Value; + } + + var repeat = await _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).AnyAsync(); + if (!repeat) { await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake); } @@ -475,7 +483,6 @@ Amount = platformDeductionAmount, ChannelId = channelId, }; - LifePayConsumption repeat = new LifePayConsumption(); switch (status) { case ACOOLYStatusEnum.鍏呭�间腑: @@ -485,30 +492,18 @@ lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged; lifePayConsumption.DeductionAmount = 0; lifePayConsumption.FrozenAmount = lifePayConsumption.Amount; - - repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo - && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync(); - if (repeat == null) - { - await _lifePayConsumption.InsertAsync(lifePayConsumption); - } - break; case ACOOLYStatusEnum.宸插畬鎴�: - lifePayConsumption.FinishTime = orderFinishTime.Value; + if (orderFinishTime.HasValue) + { + lifePayConsumption.FinishTime = orderFinishTime.Value; + } + lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.宸插畬鎴�; lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; lifePayConsumption.Flow = ConsumptionFlowEnum.Out; lifePayConsumption.DeductionAmount = lifePayConsumption.Amount; lifePayConsumption.FrozenAmount = 0; - - repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo - && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync(); - if (repeat == null) - { - await _lifePayConsumption.InsertAsync(lifePayConsumption); - } - break; case ACOOLYStatusEnum.鍏呭�煎け璐�: lifePayConsumption.FinishTime = orderCreationTime; @@ -517,32 +512,19 @@ lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged; lifePayConsumption.DeductionAmount = 0; lifePayConsumption.FrozenAmount = lifePayConsumption.Amount; - - repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo - && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync(); - if (repeat == null) - { - await _lifePayConsumption.InsertAsync(lifePayConsumption); - } - break; case ACOOLYStatusEnum.宸查��娆�: - lifePayConsumption.FinishTime = orderFinishTime.Value; + if (orderFinishTime.HasValue) + { + lifePayConsumption.FinishTime = orderFinishTime.Value; + } + lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.宸查��娆�; lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged; lifePayConsumption.DeductionAmount = 0; lifePayConsumption.FrozenAmount = 0; - - repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo - && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync(); - if (repeat == null) - { - await _lifePayConsumption.InsertAsync(lifePayConsumption); - } - break; - //case ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�: // lifePayConsumption.FinishTime = orderCreationTime; // lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; @@ -560,6 +542,13 @@ // break; default: break; + } + + var repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo + && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).AnyAsync(); + if (!repeat) + { + await _lifePayConsumption.InsertAsync(lifePayConsumption); } } @@ -583,8 +572,6 @@ FinishTime = x.FinishTime, CreationTime = x.CreationTime, }); - - return list; } -- Gitblit v1.9.1