From c33b59a63a99a4598d6d6bc56750efd4f7ad550d Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 09 九月 2025 15:19:42 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
index aacd13c..f95e00f 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs
@@ -21,6 +21,7 @@
     public class EnterpriseWalletQueryHandler(
             IRepository<EnterpriseWallet> rep,
             IRepository<EnterpriseWalletTransaction> repEnterpriseWalletTransaction,
+            IRepository<EnterpriseWalletExpandindirectOrder> repEnterpriseWalletExpandindirectOrder,
             IRepository<Enterprise> repEnterprise,
             AlipayUtils alipayUtils
         ) :
@@ -29,6 +30,7 @@
     {
         private readonly IRepository<EnterpriseWallet> rep = rep;
         private readonly IRepository<EnterpriseWalletTransaction> repEnterpriseWalletTransaction = repEnterpriseWalletTransaction;
+        private readonly IRepository<EnterpriseWalletExpandindirectOrder> repEnterpriseWalletExpandindirectOrder = repEnterpriseWalletExpandindirectOrder;
         private readonly IRepository<Enterprise> repEnterprise = repEnterprise;
         private readonly AlipayUtils alipayUtils = alipayUtils;
 
@@ -53,7 +55,15 @@
             var entity = await rep.AsQueryable()
                 .Where(it => it.EnterpriseId == request.EnterpriseId && it.Access == request.Access)
                 .FirstOrDefaultAsync();
-            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟閽卞寘");
+            if (entity == null)
+            {
+                return new GetEnterpriseWalletQueryResult
+                {
+                    Access = request.Access,
+                    SignStatus = EnumEnterpriseWalletSignStatus.Wait,
+                    ExpandindirectOrderStatus = EnumEnterpriseWalletExpandindirectOrderStatus.Wait
+                };
+            }
             var update = false;
             if (entity.Access == EnumEnterpriseWalletAccess.Alipay)
             {
@@ -134,6 +144,19 @@
             }
 
             var model = entity.Adapt<GetEnterpriseWalletQueryResult>();
+
+            var expandindirectOrder = await repEnterpriseWalletExpandindirectOrder.AsQueryable().AsNoTracking()
+                .OrderByDescending(it => it.CreatedTime)
+                .Where(it => it.WalletId == model.Id)
+                .Select(it => new
+                {
+                    it.OrderStatus
+                })
+                .FirstOrDefaultAsync();
+            model.ExpandindirectOrderStatus = expandindirectOrder == null
+                ? EnumEnterpriseWalletExpandindirectOrderStatus.Wait
+                : expandindirectOrder.OrderStatus;
+
             return model;
         }
 
@@ -173,16 +196,16 @@
             entity.TransDate = response.PayDate.ToDateTime();
             entity.Status = response.Status;
             entity.TransactionStatus = response.Status == "SUCCESS"
-                ? EnumEnterpriseWalletTransactionStatus.Success
+                ? EnumWalletTransactionStatus.Success
                 : response.Status == "DEALING"
-                ? EnumEnterpriseWalletTransactionStatus.Dealing
+                ? EnumWalletTransactionStatus.Dealing
                 : response.Status == "REFUND"
-                ? EnumEnterpriseWalletTransactionStatus.Refund
+                ? EnumWalletTransactionStatus.Refund
                 : response.Status == "FAIL"
-                ? EnumEnterpriseWalletTransactionStatus.Fail
+                ? EnumWalletTransactionStatus.Fail
                 : throw Oops.Oh(EnumErrorCodeType.s510, $"鏈瘑鍒殑鐘舵�侊細{response.Status}");
             await repEnterpriseWalletTransaction.UpdateAsync(entity);
-            if (entity.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Success)
+            if (entity.TransactionStatus == EnumWalletTransactionStatus.Success)
             {
                 await GetBalance(entity.WalletId);
             }

--
Gitblit v1.9.1