From 06f7ccdea12e211d05f6eef75e6e2fb4b493377c Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期四, 03 四月 2025 16:02:50 +0800
Subject: [PATCH] fix:验重

---
 LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs |   83 +++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 49 deletions(-)

diff --git a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
index ad98f37..34c5bb8 100644
--- a/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
+++ b/LifePayment/LifePayment.Application/LifePay/LifePayOrderService.cs
@@ -232,8 +232,8 @@
             CheckExtensions.IfTrueThrowUserFriendlyException(input.OrderNo == null, "璇疯緭鍏ヤ笟鍔¤鍗曞彿");
             CheckExtensions.IfTrueThrowUserFriendlyException(input.RechargeAmount <= 0, "鍏呭�奸噾棰濆簲澶т簬0");
             CheckExtensions.IfTrueThrowUserFriendlyException(input.Voucher == null, "璇锋彁浜ゅ厖鍊煎嚟璇�");
-            var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo).FirstOrDefaultAsync();
-            CheckExtensions.IfTrueThrowUserFriendlyException(repeat != null && repeat.Id != input.Id, "涓氬姟璁㈠崟鍙烽噸澶�");
+            var repeat = await _lifePayRechargeReceiptsRepository.Where(x => x.OrderNo == input.OrderNo && x.Id != input.Id).AnyAsync();
+            CheckExtensions.IfTrueThrowUserFriendlyException(repeat, "涓氬姟璁㈠崟鍙烽噸澶�");
             if (input.Id.HasValue)
             {
                 var payRechargeReceipts = await _lifePayRechargeReceiptsRepository.Where(x => x.Id == input.Id.Value).FirstOrDefaultAsync();
@@ -264,8 +264,8 @@
         public async Task AddLifePayExpensesReceipts(AddLifePayExpensesReceiptsInput input)
         {
             var repeat = await _lifePayExpensesReceiptsRepository.Where(x => x.ExpensesReceiptsType == input.ExpensesReceiptsType
-            && x.OrderNo == input.OrderNo).FirstOrDefaultAsync();
-            if (repeat == null)
+            && x.OrderNo == input.OrderNo).AnyAsync();
+            if (repeat)
             {
                 var data = new LifePayExpensesReceipts()
                 {
@@ -415,15 +415,19 @@
                     await AddLifePayExpensesReceipts(input);
 
                     /// 鍑鸿处
+                    AddLifePayExpensesReceiptsInput receipts = new AddLifePayExpensesReceiptsInput()
+                    {
+                        OrderNo = item.OrderNo,
+                        OutOrderNo = item.OutOrderNo,
+                        LifePayType = item.LifePayType,
+                        Amount = item.Amount,
+                        ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Expenses
+                    };
                     if (item.RefundOrderNo.IsNotNullOrEmpty())
                     {
-                        input.OutRefundNo = item.OrderNo;
-                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
-                        await AddLifePayExpensesReceipts(input);
-
-                        input.OutRefundNo = item.RefundOrderNo;
-                        input.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
-                        await AddLifePayExpensesReceipts(input);
+                        receipts.OutRefundNo = item.RefundOrderNo;
+                        receipts.ExpensesReceiptsType = ExpensesReceiptsTypeEnum.Receipts;
+                        await AddLifePayExpensesReceipts(receipts);
                     }
                 }
             }
@@ -454,8 +458,8 @@
                         FinishTime = item.FinishTime.Value,
                         ChannelId = item.ChannelId,
                     };
-                    var repeat = _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).FirstOrDefaultAsync();
-                    if (repeat != null)
+                    var repeat = await _lifePayChannlesRakeRepository.Where(x => x.OrderNo == item.OrderNo).AnyAsync();
+                    if (repeat)
                     {
                         await _lifePayChannlesRakeRepository.InsertAsync(lifePayChannlesRake);
                     }
@@ -475,7 +479,6 @@
                 Amount = platformDeductionAmount,
                 ChannelId = channelId,
             };
-            LifePayConsumption repeat = new LifePayConsumption();
             switch (status)
             {
                 case ACOOLYStatusEnum.鍏呭�间腑:
@@ -485,30 +488,18 @@
                     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;
+                    if (orderFinishTime.HasValue)
+                    {
+                        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;
@@ -517,32 +508,19 @@
                     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;
+                    if (orderFinishTime.HasValue)
+                    {
+                        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.閮ㄥ垎鍏呭�兼垚鍔�;
@@ -561,6 +539,13 @@
                 //    break;
                 default: break;
             }
+
+            var repeat = await _lifePayConsumption.Where(x => x.OrderNo == lifePayConsumption.OrderNo
+                   && x.ACOOLYStatus == lifePayConsumption.ACOOLYStatus && x.Flow == lifePayConsumption.Flow).AnyAsync();
+            if (repeat)
+            {
+                await _lifePayConsumption.InsertAsync(lifePayConsumption);
+            }
         }
 
         private async Task<IQueryable<LifePayChannlesRakeListOutput>> GetLifePayChannlesRakeListFilter(LifePayChannlesRakePageInput input)

--
Gitblit v1.9.1