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