From d0ca4c5479641ac5616d1e6fd2c258aea7d93222 Mon Sep 17 00:00:00 2001 From: zhengyuxuan <zhengyuxuan1995> Date: 星期三, 02 四月 2025 13:28:28 +0800 Subject: [PATCH] fix:写入消费记录 --- LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs | 218 ++++++++++++++++++++++++++++-------------------------- LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs | 3 LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs | 2 LifePayment/LifePayment.Application/LifePay/LifePayService.cs | 9 ++ LifePayment/LifePayment.Application/LifePay/StatisticsService.cs | 1 5 files changed, 127 insertions(+), 106 deletions(-) diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs index ab6faa8..9470350 100644 --- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs +++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs @@ -29,4 +29,7 @@ Task GetAllChannlesRake(); Task GetAllLifePayConsumption(); + + Task CreatLifePayConsumption(ACOOLYStatusEnum status, string orderNo, string aCOOLYOrderNo, + decimal platformDeductionAmount, string channelId, DateTime orderCreationTime, DateTime? orderFinishTime); } \ No newline at end of file diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs index 7190e9a..715aac6 100644 --- a/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs +++ b/LifePayment/LifePayment.Application.Contracts/LifePay/LifePayInput.cs @@ -671,9 +671,9 @@ public LifePayTypeEnum LifePayType { get; set; } } + public class AddLifePayExpensesReceiptsInput { - /// <summary> /// 閫�娆捐鍗曞彿 /// </summary> diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs index cce4b86..0d81181 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs @@ -341,31 +341,32 @@ var orderList = await _lifePayOrderRepository.Where(x => x.PayStatus == LifePayStatusEnum.宸叉敮浠�).ToListAsync(); foreach (var item in orderList) { - LifePayConsumption lifePayConsumption = new LifePayConsumption() - { - OrderNo = item.OrderNo, - AcoolyOrderNo = item.ACOOLYOrderNo, - Amount = item.PlatformDeductionAmount.HasValue? item.PlatformDeductionAmount.Value : 0, - ChannelId = item.ChannelId, - }; + if (item.ACOOLYStatus != null) { switch (item.ACOOLYStatus) { case ACOOLYStatusEnum.鍏呭�间腑: - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); break; case ACOOLYStatusEnum.鍏呭�兼垚鍔�: - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption); - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�兼垚鍔�, item, lifePayConsumption); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�兼垚鍔�, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); break; case ACOOLYStatusEnum.宸插畬鎴�: - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption); - await CreatLifePayConsumption(ACOOLYStatusEnum.宸插畬鎴�, item, lifePayConsumption); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); + await CreatLifePayConsumption(ACOOLYStatusEnum.宸插畬鎴�, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); break; case ACOOLYStatusEnum.鍏呭�煎け璐�: - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption); - await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�煎け璐�, item, lifePayConsumption); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); + await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�煎け璐�, item.OrderNo, item.ACOOLYOrderNo, + item.PlatformDeductionAmount ?? 0, item.ChannelId, item.CreationTime, item.FinishTime); break; default: break; } @@ -448,7 +449,105 @@ } #endregion - #region 绉佹湁 + #region 鏂规硶 + public async Task CreatLifePayConsumption(ACOOLYStatusEnum status, string orderNo, string aCOOLYOrderNo, + decimal platformDeductionAmount, string channelId, DateTime orderCreationTime, DateTime? orderFinishTime) + { + LifePayConsumption lifePayConsumption = new LifePayConsumption() + { + OrderNo = orderNo, + AcoolyOrderNo = aCOOLYOrderNo, + Amount = platformDeductionAmount, + ChannelId = channelId, + }; + LifePayConsumption repeat = new LifePayConsumption(); + switch (status) + { + case ACOOLYStatusEnum.鍏呭�间腑: + lifePayConsumption.FinishTime = orderCreationTime; + lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑; + lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Frozen; + 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; + 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; + lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; + lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Frozen; + 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; + 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.閮ㄥ垎鍏呭�兼垚鍔�; + // lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; + // 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; + default: break; + } + } + private async Task<IQueryable<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakeListFilter(LifePayChannlesRakePageInput input) { var list = _lifePayChannlesRakeRepository.Where(x => x.IsDeleted == false) @@ -474,95 +573,6 @@ return list; } - private async Task CreatLifePayConsumption(ACOOLYStatusEnum status, LifePayOrder order, LifePayConsumption lifePayConsumption) - { - LifePayConsumption repeat = new LifePayConsumption(); - switch (status) - { - case ACOOLYStatusEnum.鍏呭�间腑: - lifePayConsumption.FinishTime = order.CreationTime; - lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑; - lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Frozen; - 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 = order.FinishTime.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 = order.CreationTime; - lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; - lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Frozen; - 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 = order.FinishTime.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 = order.CreationTime; - // lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; - // lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Thaw; - // 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; - default: break; - } - } #endregion } diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs index 4442a58..c8f1967 100644 --- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs +++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs @@ -1314,6 +1314,7 @@ order.PayStatus = LifePayStatusEnum.宸叉敮浠�; order.PayTime = DateTime.Now; order.OutOrderNo = outOrderNo; + try { var result = (Code: "Fail", RequestNo: "", ACOOLYOrderNo: ""); @@ -1338,6 +1339,10 @@ order.OutRequestNo = result.RequestNo.IsNullOrEmpty() ? null : result.RequestNo; order.ACOOLYOrderNo = result.ACOOLYOrderNo; order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑; + + /// 鍒涘缓鐢熸椿缂磋垂娑堣垂璁板綍 + await _lifePayOrderService.CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, order.OrderNo, order.ACOOLYOrderNo, + order.PlatformDeductionAmount ?? 0, order.ChannelId, order.CreationTime, order.FinishTime); } catch (Exception ex) { @@ -1429,6 +1434,10 @@ await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake); } } + + /// 鍒涘缓鐢熸椿缂磋垂娑堣垂璁板綍 + await _lifePayOrderService.CreatLifePayConsumption(acoolyStatus, order.OrderNo, order.ACOOLYOrderNo, + order.PlatformDeductionAmount ?? 0, order.ChannelId, order.CreationTime, order.FinishTime); } /// <summary> diff --git a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs index 477b532..be6e9e8 100644 --- a/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs +++ b/LifePayment/LifePayment.Application/LifePay/StatisticsService.cs @@ -238,7 +238,6 @@ return channelDataList; - } -- Gitblit v1.9.1