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/Commands/EnterpriseWalletCommandHandler.cs | 96 ++++------------------------------------------- 1 files changed, 9 insertions(+), 87 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs index d40fbc0..8a33475 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs @@ -25,8 +25,7 @@ ) : IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>, IRequestHandler<CloseEnterpriseWalletCommand, Guid>, - IRequestHandler<RechargeEnterpriseWalletCommand, RechargeEnterpriseWalletCommandResult>, - IRequestHandler<TransferEnterpriseWalletCommand, Guid> + IRequestHandler<RechargeEnterpriseWalletCommand, RechargeEnterpriseWalletCommandResult> { private readonly IRepository<EnterpriseWallet> rep = rep; private readonly IRepository<Enterprise> repEnterprise = repEnterprise; @@ -59,6 +58,8 @@ entity = new EnterpriseWallet(); entity.EnterpriseId = request.EnterpriseId!.Value; entity.Access = EnumEnterpriseWalletAccess.Alipay; + entity.Account = request.Account; + entity.MerchantId = request.MerchantId; entity.PersonalProductCode = "FUND_SAFT_SIGN_WITHHOLDING_P"; entity.SignScene = "INDUSTRY|SATF_ACC"; entity.ThirdPartyType = "PARTNER"; @@ -70,6 +71,8 @@ else { if (entity.SignStatus == EnumEnterpriseWalletSignStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "宸茬绾�"); + entity.Account = request.Account; + entity.MerchantId = request.MerchantId; entity.SignStatus = EnumEnterpriseWalletSignStatus.Apply; await rep.UpdateAsync(entity); } @@ -151,8 +154,10 @@ order.Remark = request.Remark ?? "鍏呭��"; order.ProductCode = "FUND_ACCOUNT_BOOK"; order.BizScene = "SATF_DEPOSIT"; - order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitSubmit; + order.TransactionStatus = EnumWalletTransactionStatus.WaitSubmit; order.Balance = entity.Balance; + order.OperatorUserId = logier.Id; + order.OperatorTime = DateTime.Now; await SetCode(order); await repEnterpriseWalletTransaction.InsertAsync(order); @@ -176,95 +181,12 @@ }, }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify"); if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); - order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitPay; + order.TransactionStatus = EnumWalletTransactionStatus.WaitPay; await repEnterpriseWalletTransaction.UpdateAsync(order); return new RechargeEnterpriseWalletCommandResult { PayUrl = response.Body }; - } - - /// <summary> - /// 浼佷笟閽卞寘杞处 - /// </summary> - /// <param name="request"></param> - /// <param name="cancellationToken"></param> - /// <returns></returns> - [UnitOfWork(false)] - public async Task<Guid> Handle(TransferEnterpriseWalletCommand request, CancellationToken cancellationToken) - { - var logier = JwtUtils.GetCurrentLogier(); - var entity = await rep.AsQueryable() - .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == EnumEnterpriseWalletAccess.Alipay) - .FirstOrDefaultAsync(); - if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟閽卞寘"); - if (entity.SignStatus != EnumEnterpriseWalletSignStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "鏈绾�"); - if (entity.AccountBookStatus != EnumEnterpriseWalletAccountBookStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "鏈紑閫氳璐︽湰"); - await GetBalance(entity); - - var order = new EnterpriseWalletTransaction(); - order.Type = EnumEnterpriseWalletTransactionType.Recharge; - order.WalletId = entity.Id; - order.Amount = request.Amount; - order.Remark = request.Remark; - order.ProductCode = "SINGLE_TRANSFER_NO_PWD"; - order.BizScene = "ENTRUST_TRANSFER"; - order.TransactionStatus = EnumEnterpriseWalletTransactionStatus.WaitSubmit; - order.Balance = entity.Balance; - await SetCode(order); - await repEnterpriseWalletTransaction.InsertAsync(order); - - var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel - { - OutBizNo = order.Code, - TransAmount = order.Amount.ToString(), - ProductCode = order.ProductCode, - BizScene = order.BizScene, - PayeeInfo = new Participant - { - IdentityType = "ALIPAY_LOGON_ID", - Identity = "13616515310", - Name = "鏉ㄦ尟瀹�", - }, - PayerInfo = new Participant - { - IdentityType = "ACCOUNT_BOOK_ID", - Identity = entity.AccountBookId, - ExtInfo = new - { - agreement_no = entity.AgreementNo, - }.ToJson(), - }, - OrderTitle = order.Remark, - Remark = order.Remark, - BusinessParams = new - { - withdraw_timeliness = "T0" - }.ToJson() - }, "/api/user/enterpriseWallet/alipayFundTransOrderChangedNotify"); - if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); - order.OrderId = response.OrderId; - order.PayFundOrderId = response.PayFundOrderId; - order.SettleSerialNo = response.SettleSerialNo; - order.TransDate = response.TransDate.ToDateTime(); - order.Link = response.Link; - order.Status = response.Status; - order.SubStatus = response.SubStatus; - order.TransactionStatus = response.Status == "SUCCESS" - ? EnumEnterpriseWalletTransactionStatus.Success - : response.Status == "DEALING" - ? EnumEnterpriseWalletTransactionStatus.Dealing - : response.Status == "REFUND" - ? EnumEnterpriseWalletTransactionStatus.Refund - : response.Status == "FAIL" - ? EnumEnterpriseWalletTransactionStatus.Fail - : throw Oops.Oh(EnumErrorCodeType.s510, $"鏈瘑鍒殑鐘舵�侊細{response.Status}"); - await repEnterpriseWalletTransaction.UpdateAsync(order); - if (order.TransactionStatus == EnumEnterpriseWalletTransactionStatus.Success) - { - await GetBalance(entity); - } - return entity.Id; } private async Task GetBalance(EnterpriseWallet entity) -- Gitblit v1.9.1