From 8c1dce43d197565302ead9d3ae78dff8ea4f9687 Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期三, 02 四月 2025 06:05:21 +0800
Subject: [PATCH] fix:bug修复

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs            |   45 ++++++++++++++++------
 LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs                  |   11 +++++
 LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs |    2 +
 LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml                   |    6 +++
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs                 |   18 +++++++-
 5 files changed, 66 insertions(+), 16 deletions(-)

diff --git a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
index 0b2b918..ab6faa8 100644
--- a/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application.Contracts/LifePay/ILifePayOrderService.cs
@@ -27,4 +27,6 @@
     Task GetAllLifePayExpensesReceipts();
 
     Task GetAllChannlesRake();
+
+    Task GetAllLifePayConsumption();
 }
\ No newline at end of file
diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index 8bdc9a9..3b0b1da 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
 {
@@ -342,21 +343,18 @@
                 {
                     OrderNo = item.OrderNo,
                     AcoolyOrderNo = item.ACOOLYOrderNo,
-                    Amount = item.PlatformDeductionAmount.Value,
+                    Amount = item.PlatformDeductionAmount.HasValue? item.PlatformDeductionAmount.Value : 0,
                 };
-
-                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;
+                    }
                 }
+                
             }
         }
 
@@ -460,6 +458,29 @@
 
             return list;
         }
+
+        private async Task CreatLifePayConsumption(ACOOLYStatusEnum status, LifePayOrder order, LifePayConsumption 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;
+
+                    var 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 a3135a3..d4016e9 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -929,7 +929,8 @@
         var channle = await GetLifePayChannlesDtoByNum(input.ChannelId);
         CheckExtensions.IfTrueThrowUserFriendlyException(channle == null, "娓犻亾涓嶅瓨鍦�");
 
-        var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
+        var repeatOrder = await _lifePayOrderRepository.Where(x => x.LifePayOrderType == LifePayOrderTypeEnum.PhoneOrder 
+        && x.PayStatus == LifePayStatusEnum.宸叉敮浠�
         && x.LifePayOrderStatus == LifePayOrderStatusEnum.鍏呭�间腑
         && x.OrderParamDetailJsonStr.Contains(input.ProductData.Phone)).ToListAsync();
          CheckExtensions.IfTrueThrowUserFriendlyException(repeatOrder.Count() > 0, "鎮ㄦ湁鍚屾埛鍙疯鍗曟鍦ㄥ厖鍊间腑锛岃鍕块噸澶嶅厖鍊�");
@@ -1663,6 +1664,18 @@
         userAccount.DeleterId = userAccount.UserId;
         userAccount.DeletionTime = DateTime.Now;
         userAccount.IsDeleted = true;
+
+        /// 娓呴櫎鎴峰彿瀵瑰簲鐨勭敤鎴峰鍚�
+        if (userAccount.LifePayType == LifePayOrderTypeEnum.PhoneOrder || userAccount.LifePayType == LifePayOrderTypeEnum.ElectricOrder)
+        {
+            var user = await _lifePayUserRepository.Where(r => r.Id == userAccount.UserId && !r.IsDeleted).FirstOrDefaultAsync();
+            CheckExtensions.IfTrueThrowUserFriendlyException(user == null, "鐢ㄦ埛涓嶅瓨鍦�");
+            var extraProperties = JsonConvert.DeserializeObject<Model_UserAccountExtraProperties>(userAccount.ExtraProperties);
+            if (!string.IsNullOrEmpty(extraProperties.Name) && extraProperties.Phone == user.PhoneNumber)
+            {
+                user.Name = string.Empty;
+            }
+        }
         return Constant.SUCCESS;
     }
 
@@ -1697,8 +1710,7 @@
 
             #region 璁板綍鏃ュ織
 
-            await PublishLifePayOrderHistoryEvent("閫�娆鹃┏鍥�", "閫�娆�", order.Id);
-
+            await LifePayOrderHistory("閫�娆鹃┏鍥�", "閫�娆�", order.Id, (int)OperateHistoryTypeEnum.LifePayRefund);
             #endregion
         }
         else
diff --git a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
index f1d2df9..0975667 100644
--- a/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
+++ b/LifePayment/LifePayment.Host/LifePaymentService.HttpApi.xml
@@ -357,6 +357,12 @@
             </summary>
             <returns></returns>
         </member>
+        <member name="M:LifePayment.HttpApi.LifePayController.GetAllLifePayConsumption">
+            <summary>
+            缁熻浜ゆ槗娴佹按
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:LifePayment.HttpApi.LifePayController.CreateLifePayPhoneOrder(LifePayment.Application.Contracts.CreateLifePayOrderInput{LifePayment.Application.Contracts.LifePhoneData})">
             <summary>
             鍒涘缓鐢熸椿缂磋垂璇濊垂璁㈠崟
diff --git a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
index 12081d0..e25aba2 100644
--- a/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
+++ b/LifePayment/LifePayment.HttpApi/LifePay/LifePayController.cs
@@ -631,7 +631,16 @@
             await _lifePayOrderService.GetAllChannlesRake();
         }
 
-
+        /// <summary>
+        /// 缁熻浜ゆ槗娴佹按
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task GetAllLifePayConsumption()
+        {
+            await _lifePayOrderService.GetAllLifePayConsumption();
+        }
         #endregion
 
         #region 鎿嶄綔

--
Gitblit v1.9.1