From 11e0c46d96a9de0c77cbc7509d34f470823bbc65 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 03 九月 2025 13:48:35 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs index e34811a..8901516 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs @@ -24,6 +24,7 @@ ) : IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>, IRequestHandler<CloseEnterpriseWalletCommand, Guid>, + IRequestHandler<RechargeEnterpriseWalletCommand, Guid>, IRequestHandler<AlipayTransferCommand, Guid> { private readonly IRepository<EnterpriseWallet> rep = rep; @@ -109,6 +110,50 @@ return entity.Id; } + /// <summary> + /// 浼佷笟閽卞寘鍏呭�� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public async Task<Guid> Handle(RechargeEnterpriseWalletCommand request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var entity = await rep.AsQueryable() + .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == request.Access) + .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, "鏈紑閫氳璐︽湰"); + var order = new EnterpriseWalletTransaction(); + order.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; + order.WalletId = entity.Id; + order.Amount = request.Amount; + var response = alipayUtils.FundTransPagePay(new AlipayFundTransPagePayModel + { + OutBizNo = order.Code, + TransAmount = order.Amount.ToString(), + ProductCode = "FUND_ACCOUNT_BOOK", + BizScene = "SATF_DEPOSIT", + Remark = "璁拌处鏈厖鍊�", + OrderTitle = "璁拌处鏈厖鍊�", + TimeExpire = DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"), + PayeeInfo = new Participant + { + IdentityType = "ACCOUNT_BOOK_ID", + Identity = entity.AccountBookId, + ExtInfo = new + { + agreement_no = entity.AgreementNo, + }.ToJson(), + }, + }); + if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg); + order.OrderId = response.OrderId; + return order.Id; + } + public async Task<Guid> Handle(AlipayTransferCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); -- Gitblit v1.9.1