From d0558ff1687a1bffd62c45660d4bab3132643039 Mon Sep 17 00:00:00 2001 From: lingling <kety1122@163.com> Date: 星期三, 16 四月 2025 17:44:07 +0800 Subject: [PATCH] fix bug --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 85 ++++++++++++++++++++++++------------------ 1 files changed, 48 insertions(+), 37 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index 458bbba..4bb201c 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() { @@ -336,7 +336,7 @@ } - + /// <summary> /// 缁熻鎵�鏈夋秷璐规祦姘� @@ -347,7 +347,7 @@ var orderList = await _lifePayOrderRepository.Where(x => x.PayStatus == LifePayStatusEnum.宸叉敮浠�).ToListAsync(); foreach (var item in orderList) { - + if (item.ACOOLYStatus != null) { switch (item.ACOOLYStatus) @@ -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) @@ -455,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); } @@ -470,7 +474,7 @@ #region 鏂规硶 public async Task CreatLifePayConsumption(ACOOLYStatusEnum status, string orderNo, string aCOOLYOrderNo, - decimal platformDeductionAmount, string channelId, DateTime orderCreationTime, DateTime? orderFinishTime) + decimal platformDeductionAmount, string channelId, DateTime orderCreationTime, DateTime? orderFinishTime, decimal? channelRate = 0, decimal? parValue = 0, decimal? actualParValue = 0) { LifePayConsumption lifePayConsumption = new LifePayConsumption() { @@ -479,7 +483,6 @@ Amount = platformDeductionAmount, ChannelId = channelId, }; - LifePayConsumption repeat = new LifePayConsumption(); switch (status) { case ACOOLYStatusEnum.鍏呭�间腑: @@ -522,28 +525,38 @@ lifePayConsumption.DeductionAmount = 0; lifePayConsumption.FrozenAmount = 0; break; - //case ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�: - // lifePayConsumption.FinishTime = orderCreationTime; - // lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; - // lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; - // lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged; - // lifePayConsumption.DeductionAmount = 0; - // lifePayConsumption.FrozenAmount = lifePayConsumption.Amount; + case ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�: + lifePayConsumption.FinishTime = orderCreationTime; + lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; + lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; + lifePayConsumption.Flow = ConsumptionFlowEnum.Out; + lifePayConsumption.DeductionAmount = lifePayConsumption.Amount; + lifePayConsumption.FrozenAmount = 0; + if ((parValue ?? 0) != 0 && (parValue ?? 0) != actualParValue) + { + LifePayConsumption lifePayConsumptionOther = new LifePayConsumption() + { + OrderNo = orderNo, + AcoolyOrderNo = aCOOLYOrderNo, + Amount = ((parValue ?? 0) - (actualParValue ?? 0)) * (channelRate ?? 0), + ChannelId = channelId, + FinishTime = orderCreationTime, + ACOOLYStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�, + FrozenStatus = ConsumptionFrozenStatusEnum.Thaw, + Flow = ConsumptionFlowEnum.Unchanged, + DeductionAmount = 0, + FrozenAmount = 0 + }; + await _lifePayConsumption.InsertAsync(lifePayConsumptionOther); + } - // 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; + break; default: break; } - repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo - && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).FirstOrDefaultAsync(); - if (repeat == null) + 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); } @@ -569,8 +582,6 @@ FinishTime = x.FinishTime, CreationTime = x.CreationTime, }); - - return list; } -- Gitblit v1.9.1