From 2b6e63ae8a4af6f612e431c57d2f2f08fb9b9135 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期三, 02 四月 2025 11:30:51 +0800
Subject: [PATCH] fix:加入CreateACOOLYElectricOrder报错日志

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |  127 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 115 insertions(+), 12 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index 8bdc9a9..cce4b86 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -16,6 +16,7 @@
 using Newtonsoft.Json;
 using LifePayment.Domain.Common;
 using Spire.Pdf.Exporting.XPS.Schema;
+using Nest;
 
 namespace LifePayment.Application.LifePay
 {
@@ -309,6 +310,7 @@
                                 data.OrderNo = input.OrderNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);
+                                data.Amount = Convert.ToDecimal(query.Amount.Total) / 100;
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
                             }
                         }
@@ -320,6 +322,7 @@
                                 data.OrderNo = input.OutRefundNo;
                                 data.ExtraProperties = JsonConvert.SerializeObject(query);
                                 data.FinishTime = Convert.ToDateTime(query.SuccessTime);
+                                data.Amount = Convert.ToDecimal(query.Amount.Total) / 100;
                                 await _lifePayExpensesReceiptsRepository.InsertAsync(data);
                             }
                         }
@@ -342,20 +345,30 @@
                 {
                     OrderNo = item.OrderNo,
                     AcoolyOrderNo = item.ACOOLYOrderNo,
-                    Amount = item.PlatformDeductionAmount.Value,
+                    Amount = item.PlatformDeductionAmount.HasValue? item.PlatformDeductionAmount.Value : 0,
+                    ChannelId = item.ChannelId,
                 };
-
-                switch (item.ACOOLYStatus)
+                if (item.ACOOLYStatus != null)
                 {
-                    case ACOOLYStatusEnum.鍏呭�间腑:
-                        lifePayConsumption.FinishTime = item.CreationTime;
-                        lifePayConsumption.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑;
-                        lifePayConsumption.FrozenStatus = ConsumptionFrozenStatusEnum.Frozen;
-                        lifePayConsumption.Flow = ConsumptionFlowEnum.Unchanged;
-                        lifePayConsumption.DeductionAmount = 0;
-                        lifePayConsumption.FrozenAmount = lifePayConsumption.Amount;
-                        break;
-                    default: break;
+                    switch (item.ACOOLYStatus)
+                    {
+                        case ACOOLYStatusEnum.鍏呭�间腑:
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption);
+                            break;
+                        case ACOOLYStatusEnum.鍏呭�兼垚鍔�:
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption);
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�兼垚鍔�, item, lifePayConsumption);
+                            break;
+                        case ACOOLYStatusEnum.宸插畬鎴�:
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption);
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.宸插畬鎴�, item, lifePayConsumption);
+                            break;
+                        case ACOOLYStatusEnum.鍏呭�煎け璐�:
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�间腑, item, lifePayConsumption);
+                            await CreatLifePayConsumption(ACOOLYStatusEnum.鍏呭�煎け璐�, item, lifePayConsumption);
+                            break;
+                        default: break;
+                    }
                 }
             }
         }
@@ -460,6 +473,96 @@
 
             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
 
     }

--
Gitblit v1.9.1