From fad9a422ecd3a90bec63c9045bf7f23c49452748 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 11 六月 2025 10:28:36 +0800 Subject: [PATCH] fix:修订累计扣款和冻结金额状态 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 51 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 20 deletions(-) diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index 1bca3f1..b93f77b 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs @@ -78,8 +78,8 @@ }) .GetPageResult(input.PageModel); - var totalDeductionAmount = await _lifePayConsumption.SumAsync(x => x.DeductionAmount); - var totalFrozenAmount = await _lifePayConsumption.SumAsync(x => x.FrozenAmount); + var totalDeductionAmount = await _lifePayConsumption.Where(it => it.ACOOLYStatus == ACOOLYStatusEnum.宸插畬鎴� || it.ACOOLYStatus == ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�).SumAsync(x => x.DeductionAmount); + var totalFrozenAmount = await _lifePayConsumption.Where(it => it.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�间腑 || it.ACOOLYStatus == ACOOLYStatusEnum.鍏呭�煎け璐�).SumAsync(x => x.FrozenAmount); LifePayConsumptionStatistics objectData = new LifePayConsumptionStatistics(); objectData.TotalDeductionAmount = totalDeductionAmount; objectData.TotalFrozenAmount = totalFrozenAmount ?? 0; @@ -215,6 +215,7 @@ s.ChannlesRakePriceStr = s.ChannlesRakePrice.ToString("F2"); s.FinishTimeStr = s.FinishTime.HasValue ? s.FinishTime.Value.ToString(LifePaymentConstant.DateTimeFormatStr.yyyyMMddHHmmss) : ""; }); + CheckExtensions.IfTrueThrowUserFriendlyException(result.IsNullOrEmpty(), "鏆傛棤鏁版嵁瀵煎嚭"); return result; } @@ -336,7 +337,7 @@ } - + /// <summary> /// 缁熻鎵�鏈夋秷璐规祦姘� @@ -347,7 +348,7 @@ var orderList = await _lifePayOrderRepository.Where(x => x.PayStatus == LifePayStatusEnum.宸叉敮浠�).ToListAsync(); foreach (var item in orderList) { - + if (item.ACOOLYStatus != null) { switch (item.ACOOLYStatus) @@ -474,7 +475,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() { @@ -525,22 +526,32 @@ 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; } -- Gitblit v1.9.1