sunpengfei
2025-09-02 2dfe3b8df9d01bb810224115522ba90da9b31f21
FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs
@@ -26,6 +26,7 @@
            IRepository<AlipayFundExpandindirectOrder> rep
        ) :
        IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid>,
        IRequestHandler<AlipayFundExpandindirectImageUploadCommand, string>,
        IRequestHandler<AlipayFundExpandindirectOrderCancelCommand, Guid>,
        IRequestHandler<AlipayFundExpandindirectCreateNotifyCommand, Guid>
    {
@@ -54,18 +55,6 @@
            else
            {
                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);
@@ -111,6 +100,30 @@
        }
        /// <summary>
        /// 支付宝资金二级商户KYB代进件文件上传接口
        /// </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),
                    ImageContent = new Aop.Api.Util.FileItem(request.File.FileName, bytes)
                });
                if (result.IsError) throw Oops.Oh(EnumErrorCodeType.s510, result.Msg);
                return result.ImageId;
            }
        }
        /// <summary>
        /// 支付宝资金二级商户KYB代进件单取消接口
        /// </summary>
        /// <param name="request"></param>
@@ -145,23 +158,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;
        }
    }
}