From 09e289ea735587fb0de2ea9717aca6f9909529bc Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 10 九月 2025 13:14:21 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs | 136 +++++++++++++++++++++++++++++++++------------ 1 files changed, 99 insertions(+), 37 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/EnterpriseWalletQueryHandler.cs index aacd13c..c729206 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) { @@ -66,25 +76,33 @@ ExternalAgreementNo = entity.Code, ThirdPartyType = entity.ThirdPartyType, }); - if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); - entity.AgreementNo = response.AgreementNo; - entity.SignTime = response.SignTime.ToDateTime(); - entity.ValidTime = response.ValidTime.ToDateTime(); - entity.InvalidTime = response.InvalidTime.ToDateTime(); - entity.SignStatus = response.Status == "TEMP" - ? EnumEnterpriseWalletSignStatus.Apply - : response.Status == "NORMAL" - ? EnumEnterpriseWalletSignStatus.Normal - : response.Status == "STOP" - ? EnumEnterpriseWalletSignStatus.Stop - : throw Oops.Oh(EnumErrorCodeType.s510, "鐘舵�佸紓甯�"); - entity.PricipalType = response.PricipalType; - entity.AlipayLogonId = response.AlipayLogonId; - entity.PrincipalId = response.PrincipalId; - entity.PrincipalOpenId = response.PrincipalOpenId; - entity.ZmOpenId = response.ZmOpenId; - entity.CreditAuthMode = response.CreditAuthMode; - update = true; + if (!response.IsError) + { + entity.AgreementNo = response.AgreementNo; + entity.SignTime = response.SignTime.ToDateTime(); + entity.ValidTime = response.ValidTime.ToDateTime(); + entity.InvalidTime = response.InvalidTime.ToDateTime(); + entity.SignStatus = response.Status == "TEMP" + ? EnumEnterpriseWalletSignStatus.Apply + : response.Status == "NORMAL" + ? EnumEnterpriseWalletSignStatus.Normal + : response.Status == "STOP" + ? EnumEnterpriseWalletSignStatus.Stop + : throw Oops.Oh(EnumErrorCodeType.s510, "鐘舵�佸紓甯�"); + entity.PricipalType = response.PricipalType; + entity.AlipayLogonId = response.AlipayLogonId; + entity.PrincipalId = response.PrincipalId; + entity.PrincipalOpenId = response.PrincipalOpenId; + entity.ZmOpenId = response.ZmOpenId; + entity.CreditAuthMode = response.CreditAuthMode; + update = true; + } + else + { + entity.ErrorCode = response.Code; + entity.FailReason = response.SubMsg ?? response.Msg; + update = true; + } } if (entity.SignStatus == EnumEnterpriseWalletSignStatus.Normal && entity.AccountBookStatus != EnumEnterpriseWalletAccountBookStatus.Normal) @@ -100,18 +118,26 @@ cert_no = enterprise.SocietyCreditCode }.ToJson() }); - if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); - entity.AccountBookId = response.AccountBookId; - entity.BankAccName = response.ExtCardInfo.BankAccName; - entity.CardBank = response.ExtCardInfo.CardBank; - entity.CardBranch = response.ExtCardInfo.CardBranch; - entity.CardDeposit = response.ExtCardInfo.CardDeposit; - entity.CardLocation = response.ExtCardInfo.CardLocation; - entity.CardNo = response.ExtCardInfo.CardNo; - entity.AccountBookStatus = response.ExtCardInfo.Status == "A" - ? EnumEnterpriseWalletAccountBookStatus.Normal - : EnumEnterpriseWalletAccountBookStatus.Exception; - update = true; + if (!response.IsError) + { + entity.AccountBookId = response.AccountBookId; + entity.BankAccName = response.ExtCardInfo.BankAccName; + entity.CardBank = response.ExtCardInfo.CardBank; + entity.CardBranch = response.ExtCardInfo.CardBranch; + entity.CardDeposit = response.ExtCardInfo.CardDeposit; + entity.CardLocation = response.ExtCardInfo.CardLocation; + entity.CardNo = response.ExtCardInfo.CardNo; + entity.AccountBookStatus = response.ExtCardInfo.Status == "A" + ? EnumEnterpriseWalletAccountBookStatus.Normal + : EnumEnterpriseWalletAccountBookStatus.Exception; + update = true; + } + else + { + entity.ErrorCode = response.Code; + entity.FailReason = response.SubMsg ?? response.Msg; + update = true; + } } if (entity.AccountBookStatus == EnumEnterpriseWalletAccountBookStatus.Normal) @@ -134,6 +160,42 @@ } var model = entity.Adapt<GetEnterpriseWalletQueryResult>(); + + var expandindirectOrder = await repEnterpriseWalletExpandindirectOrder.AsQueryable() + .OrderByDescending(it => it.CreatedTime) + .Where(it => it.WalletId == model.Id) + .FirstOrDefaultAsync(); + if (expandindirectOrder != null) + { + if (expandindirectOrder.OrderStatus == EnumEnterpriseWalletExpandindirectOrderStatus.PROCESSING) + { + var response = alipayUtils.FundExpandindirectOrderQuery(new Aop.Api.Domain.AlipayFundExpandindirectOrderQueryModel + { + BizScene = expandindirectOrder.BizScene, + OrderId = expandindirectOrder.OrderId, + OutBizNo = expandindirectOrder.OutBizNo, + ProductCode = expandindirectOrder.ProductCode, + }); + if (!response.IsError) + { + expandindirectOrder.Status = response.Status; + expandindirectOrder.OrderStatus = expandindirectOrder.Status.ToEnum<EnumEnterpriseWalletExpandindirectOrderStatus>("鏈瘑鍒殑鐘舵��")!.Value; + expandindirectOrder.TaskFinishTime = response.TaskFinishTime.ToDateTime(); + expandindirectOrder.RiskReviewRemark = response.RiskReviewRemark; + } + else + { + expandindirectOrder.RiskReviewRemark = response.SubMsg ?? response.Msg; + } + await repEnterpriseWalletExpandindirectOrder.UpdateNowAsync(expandindirectOrder); + } + model.ExpandindirectOrderStatus = expandindirectOrder.OrderStatus; + } + else + { + model.ExpandindirectOrderStatus = EnumEnterpriseWalletExpandindirectOrderStatus.Wait; + } + return model; } @@ -173,16 +235,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