From d3df5273d83fefa80e988300f1d33387985c811c Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期一, 31 三月 2025 17:33:28 +0800
Subject: [PATCH] fix:支付宝支付回调

---
 LifePayment/LifePayment.Application/LifePay/LifePayService.cs |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
index 1b8a173..5bae261 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayService.cs
@@ -46,6 +46,7 @@
     private readonly IRepository<LifePayChannles, Guid> _lifePayChannlesRep;
     private readonly IRepository<LifePayAccount, Guid> _lifePayAccount;
     private readonly IRepository<OperateHistory, Guid> _operateHistory;
+    private readonly IRepository<LifePayChannlesRake, Guid> _lifePayChannlesRakeRepository;
     private readonly IDataFilter dataFilter;
     private readonly IChannelFilter _channelFilter;
     private readonly IAliPayApi _aliPayApi;
@@ -64,6 +65,7 @@
                           IRepository<LifePayUser, Guid> lifePayUserRepository,
                           IRepository<LifePayPremium, Guid> lifePayPremiumRepository,
                           IRepository<LifePayIntroInfo, Guid> lifePayIntroInfoRepository,
+                          IRepository<LifePayChannlesRake, Guid> lifePayChannlesRakeRepository,
                           IRepository<OperateHistory, Guid> operateHistory,
                           IAliPayApi aliPayApi,
                           IAlipayInterfaceManager aliPayInterfaceManager,
@@ -80,6 +82,7 @@
         _lifePayRateRepository = lifePayRateRepository;
         _lifePayOrderRepository = lifePayOrderRepository;
         _lifePayUserRepository = lifePayUserRepository;
+        _lifePayChannlesRakeRepository = lifePayChannlesRakeRepository;
         _lifePayPremiumRepository = lifePayPremiumRepository;
         _lifePayIntroInfoRepository = lifePayIntroInfoRepository;
         _aliPayApi = aliPayApi;
@@ -1318,7 +1321,7 @@
         await _lifePayOrderRepository.UpdateAsync(order);
     }
 
-    public async Task WxPayDomesticRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus)
+    public async Task LifePayRefundsHandler(string orderNo, LifePayRefundStatusEnum refundStatus)
     {
         var order = await _lifePayOrderRepository.Where(x => x.OrderNo == orderNo).FirstOrDefaultAsync();
         CheckExtensions.IfTrueThrowUserFriendlyException(order == null, "璁㈠崟涓嶅瓨鍦�");
@@ -1335,6 +1338,7 @@
             default: break;
         }
     }
+
 
     /// <summary>
     /// ACOOLYO璁㈠崟閫氱煡澶勭悊
@@ -1372,6 +1376,27 @@
         order.ACOOLYStatus = acoolyStatus;
         order.FinishTime = DateTime.Now;
         await _lifePayOrderRepository.UpdateAsync(order);
+
+        if (order.LifePayOrderStatus == LifePayOrderStatusEnum.宸插畬鎴�)
+        {
+            /// 姣涘埄
+            var grossProfit = order.RechargeAmount * (order.ChannleRate - order.PlatformRate) / 100;
+            /// 娓犻亾浣i噾  锛�(鍏呭�奸潰棰� * 娓犻亾鎶樻墸姣斾緥)-(鍏呭�奸潰棰� * 骞冲彴鎶樻墸姣斾緥)锛�* 浣i噾姣斾緥
+            var channlesRakePrice = grossProfit * (order.ChannlesRakeRate) / 100;
+            if (channlesRakePrice.HasValue)
+            {
+                LifePayChannlesRake lifePayChannlesRake = new LifePayChannlesRake()
+                {
+                    OrderNo = order.OrderNo,
+                    PayAmount = order.PayAmount.Value,
+                    ChannlesRakeRate = order.ChannlesRakeRate.Value,
+                    ChannlesRakePrice = channlesRakePrice.Value,
+                    FinishTime = order.FinishTime.Value,
+                    ChannelId = order.ChannelId,
+                };
+                await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
+            }
+        }
     }
 
     /// <summary>
@@ -1574,7 +1599,7 @@
             await _lifePayAccount.InsertAsync(userAccount);
         }
 
-        if (input.LifePayType == LifePayOrderTypeEnum.PhoneOrder)
+        if (input.LifePayType == LifePayOrderTypeEnum.PhoneOrder || input.LifePayType == LifePayOrderTypeEnum.ElectricOrder)
         {
             var extraProperties = JsonConvert.DeserializeObject<Model_UserAccountExtraProperties>(input.ExtraProperties);
             if (!string.IsNullOrEmpty(extraProperties.Name) && extraProperties.Phone == user.PhoneNumber)
@@ -2015,7 +2040,6 @@
         string message = $"{method}\n{uri}\n{timestamp}\n{nonce}\n{body}\n";
         return message;
     }
-
 
     private async Task<IQueryable<LifePayOrderListOutput>> GetLifePayOrderListFilter(QueryLifePayOrderListInput input)
     {

--
Gitblit v1.9.1