From 582011fe0778b89312a3a9f886a24d687530aad4 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 02 九月 2025 14:45:47 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs | 76 +++++++++++++++++++++---------------- 1 files changed, 43 insertions(+), 33 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs index 2b719b0..710425b 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs @@ -20,16 +20,15 @@ /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠� /// </summary> public class AlipayFundExpandindirectCommandHandler( - IOptions<AlipayOptions> options, AlipayUtils alipayUtils, IHttpRemoteService httpRemoteService, IRepository<AlipayFundExpandindirectOrder> rep ) : IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid>, + IRequestHandler<AlipayFundExpandindirectImageUploadCommand, string>, IRequestHandler<AlipayFundExpandindirectOrderCancelCommand, Guid>, IRequestHandler<AlipayFundExpandindirectCreateNotifyCommand, Guid> { - private readonly IOptions<AlipayOptions> options = options; private readonly AlipayUtils alipayUtils = alipayUtils; private readonly IHttpRemoteService httpRemoteService = httpRemoteService; private readonly IRepository<AlipayFundExpandindirectOrder> rep = rep; @@ -55,18 +54,6 @@ { entity = new AlipayFundExpandindirectOrder(); } - if (request.SceneImageOssUrl.IsNotNull() && entity.SceneImageOssUrl != request.SceneImageOssUrl) - { - entity.SceneImage = await GetAlipayImageIdAsync(request, request.SceneImageOssUrl); - } - if (request.SceneQualificationText.IsNotNull()) - { - entity.SceneQualificationImage = request.SceneQualificationText; - } - else if (request.SceneQualificationImageOssUrl.IsNotNull() && entity.SceneQualificationImageOssUrl != request.SceneQualificationImageOssUrl) - { - entity.SceneQualificationImage = await GetAlipayImageIdAsync(request, request.SceneQualificationImageOssUrl); - } entity.Sites = request.SitesInfo.ToJson(); request.Adapt(entity); if (request.Id.HasValue) @@ -77,8 +64,24 @@ { await rep.InsertNowAsync(entity); } - var model = entity.Adapt<AlipayFundExpandindirectCreateModel>(); - var result = alipayUtils.FundExpandindirectCreate(model, $"{options.Value.NotifyUrl}/api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify"); + + var model = new AlipayFundExpandindirectCreateModel(); + model.ProductCode = entity.ProductCode; + model.BizScene = entity.BizScene; + model.OutBizNo = entity.OutBizNo; + model.BizType = entity.BizType; + model.OriginalOrderId = entity.OriginalOrderId; + model.SceneCode = entity.SceneCode; + model.SceneDirections = entity.SceneDirections; + model.SceneImage = entity.SceneImage; + model.SceneQualificationImage = entity.SceneQualificationImage; + model.Sites = entity.Sites; + var secondaryPartnerInfo = new SecondaryPartnerInfo(); + secondaryPartnerInfo.Identity = entity.Identity; + secondaryPartnerInfo.Name = entity.Name; + secondaryPartnerInfo.IdentityType = entity.IdentityType; + model.SecondaryPartnerInfo = secondaryPartnerInfo; + var result = alipayUtils.FundExpandindirectCreate(model, $"/api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify"); if (result.IsError) { entity.RiskReviewRemark = result.Msg; @@ -92,6 +95,30 @@ throw Oops.Oh(EnumErrorCodeType.s510, result.Msg); } return entity.Id; + } + + /// <summary> + /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠舵枃浠朵笂浼犳帴鍙� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<string> Handle(AlipayFundExpandindirectImageUploadCommand request, CancellationToken cancellationToken) + { + using (var memoryStream = new MemoryStream()) + { + await request.File.CopyToAsync(memoryStream); + var bytes = memoryStream.ToArray(); + var result = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest + { + ProductCode = request.ProductCode, + BizScene = request.BizScene, + ImageType = Path.GetExtension(request.File.FileName).Trim('.').ToLower(), + ImageContent = new Aop.Api.Util.FileItem(request.File.FileName, bytes) + }); + if (result.IsError) throw Oops.Oh(EnumErrorCodeType.s510, result.Msg); + return result.ImageId; + } } /// <summary> @@ -129,23 +156,6 @@ public Task<Guid> Handle(AlipayFundExpandindirectCreateNotifyCommand request, CancellationToken cancellationToken) { return Task.FromResult(Guid.Empty); - } - - private async Task<string> GetAlipayImageIdAsync(AlipayFundExpandindirectCreateCommand request, string ossUrl) - { - var url = AliyunOSSUtils.GetUrl(ossUrl); - var bytes = await httpRemoteService.GetAsByteArrayAsync(url); - var imageType = url.Substring(url.LastIndexOf(".") + 1); - var fileName = url.Substring(url.LastIndexOf("/") + 1); - var result = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest - { - ProductCode = request.ProductCode, - BizScene = request.BizScene, - ImageType = imageType, - ImageContent = new Aop.Api.Util.FileItem(fileName, bytes) - }); - if (result.IsError) throw Oops.Oh(EnumErrorCodeType.s510, result.Msg); - return result.ImageId; } } } -- Gitblit v1.9.1