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 |   75 ++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 31 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs
index b5f099a..710425b 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCommandHandler.cs
@@ -7,6 +7,7 @@
 using Mapster;
 using MediatR;
 using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Options;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -24,6 +25,7 @@
             IRepository<AlipayFundExpandindirectOrder> rep
         ) :
         IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid>,
+        IRequestHandler<AlipayFundExpandindirectImageUploadCommand, string>,
         IRequestHandler<AlipayFundExpandindirectOrderCancelCommand, Guid>,
         IRequestHandler<AlipayFundExpandindirectCreateNotifyCommand, Guid>
     {
@@ -52,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)
@@ -74,8 +64,24 @@
             {
                 await rep.InsertNowAsync(entity);
             }
-            var model = entity.Adapt<AlipayFundExpandindirectCreateModel>();
-            var result = alipayUtils.FundExpandindirectCreate(model);
+
+            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;
@@ -89,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>
@@ -126,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