From 95fe2c54a45fae507247eb92c8f60af9c892159f Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期三, 02 四月 2025 11:01:00 +0800
Subject: [PATCH] fix:bug修复

---
 LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs        |    6 +-
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs       |   88 ++++++++++++++++++++++++++++++++++++++++++-
 LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs |    2 -
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs            |    7 ++-
 4 files changed, 93 insertions(+), 10 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
index 299ec16..5bdad15 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayService.cs
@@ -308,8 +308,6 @@
     /// <returns></returns>
     Task<WxPayTradeQueryReponse> WxPayTradeQuery(string outTradeNo);
 
-    
-
     /// <summary>
     /// 璁剧疆鐢熸椿缂磋垂鏀粯绫诲瀷
     /// </summary>
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index 3b0b1da..cce4b86 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -310,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);
                             }
                         }
@@ -321,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);
                             }
                         }
@@ -344,6 +346,7 @@
                     OrderNo = item.OrderNo,
                     AcoolyOrderNo = item.ACOOLYOrderNo,
                     Amount = item.PlatformDeductionAmount.HasValue? item.PlatformDeductionAmount.Value : 0,
+                    ChannelId = item.ChannelId,
                 };
                 if (item.ACOOLYStatus != null)
                 {
@@ -352,9 +355,21 @@
                         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;
                     }
                 }
-                
             }
         }
 
@@ -461,6 +476,7 @@
 
         private async Task CreatLifePayConsumption(ACOOLYStatusEnum status, LifePayOrder order, LifePayConsumption lifePayConsumption)
         {
+            LifePayConsumption repeat = new LifePayConsumption();
             switch (status)
             {
                 case ACOOLYStatusEnum.鍏呭�间腑:
@@ -471,13 +487,79 @@
                     lifePayConsumption.DeductionAmount = 0;
                     lifePayConsumption.FrozenAmount = lifePayConsumption.Amount;
 
-                    var repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
+                    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;
             }
         }
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 5b10017..86e012c 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -1131,7 +1131,6 @@
         CheckExtensions.IfTrueThrowUserFriendlyException(order.ACOOLYStatus != ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�, "璇ヨ鍗曟棤娉曚慨鏀瑰埌璐﹂噾棰�");
 
         order.ActualReceivedAmount = input.ActualReceivedAmount;
-
         await _lifePayOrderRepository.UpdateAsync(order);
 
         return Constant.SUCCESS;
@@ -1342,14 +1341,17 @@
             //SetOrderStatus(order, result.Code);
             order.OutRequestNo = result.RequestNo.IsNullOrEmpty() ? null : result.RequestNo;
             order.ACOOLYOrderNo = result.ACOOLYOrderNo;
+            order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�间腑;
         }
         catch (Exception ex)
         {
             _logger.LogError(ex, "澶勭悊鐢熸椿缂磋垂鏀粯鎴愬姛鍥炶皟鏃跺紓甯�");
             order.LifePayOrderStatus = LifePayOrderStatusEnum.寰呴��娆�;
             order.LifePayRefundStatus = LifePayRefundStatusEnum.寰呴��娆�;
+            order.ACOOLYStatus = ACOOLYStatusEnum.鍏呭�煎け璐�;
             order.RefundApplyRemark = ex.Message;
         }
+
         _logger.LogError("鐢熸椿缂磋垂璁㈠崟鐘舵�侊細" + order.LifePayOrderStatus.ToString());
         await _lifePayOrderRepository.UpdateAsync(order);
     }
@@ -1363,10 +1365,11 @@
         {
             case LifePayRefundStatusEnum.宸查��娆�:
                 order.LifePayOrderStatus = LifePayOrderStatusEnum.宸查��娆�;
-                order.ACOOLYStatus = ACOOLYStatusEnum.宸查��娆�;
+                order.LifePayRefundStatus = LifePayRefundStatusEnum.宸查��娆�;
                 break;
             case LifePayRefundStatusEnum.閫�娆句腑:
                 order.LifePayOrderStatus = LifePayOrderStatusEnum.閫�娆句腑;
+                order.LifePayRefundStatus = LifePayRefundStatusEnum.閫�娆句腑;
                 break;
             default: break;
         }
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs
index 82e8728..313aea7 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs
@@ -78,7 +78,7 @@
                     if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�)
                     {
                         status = LifePayOrderStatusEnum.宸插畬鎴�;
-                        acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�;
+                        acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�;
                     }
                     else
                     if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.鍏呭�间腑)
@@ -129,7 +129,7 @@
                      if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�)
                     {
                         status = LifePayOrderStatusEnum.宸插畬鎴�;
-                        acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�;
+                        acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�;
                     }
                     else
 
@@ -180,7 +180,7 @@
                      if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�)
                     {
                         status = LifePayOrderStatusEnum.宸插畬鎴�;
-                        acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�;
+                        acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�;
                     }
                     else
 

--
Gitblit v1.9.1