From 611af5472b33cbe81a1433ab29e26502a9aac795 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 01 九月 2025 15:46:55 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs |   74 +++++++++++++++++++++++++++++++++---
 1 files changed, 67 insertions(+), 7 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
index 0970ba2..95467c3 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
@@ -1,7 +1,11 @@
 锘縰sing Aop.Api.Domain;
 using FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using Furion.FriendlyException;
+using Furion.HttpRemote;
 using Mapster;
 using MediatR;
+using Microsoft.EntityFrameworkCore;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -14,11 +18,15 @@
     /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠�
     /// </summary>
     public class AlipayFundExpandindirectCreateCommandHandler(
-            AlipayUtils alipayUtils
+            AlipayUtils alipayUtils,
+            IHttpRemoteService httpRemoteService,
+            IRepository<AlipayFundExpandindirectOrder> rep
         ) :
-        IRequestHandler<AlipayFundExpandindirectCreateCommand, bool>
+        IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid>
     {
         private readonly AlipayUtils alipayUtils = alipayUtils;
+        private readonly IHttpRemoteService httpRemoteService = httpRemoteService;
+        private readonly IRepository<AlipayFundExpandindirectOrder> rep = rep;
 
         /// <summary>
         /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠�
@@ -26,12 +34,64 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public Task<bool> Handle(AlipayFundExpandindirectCreateCommand request, CancellationToken cancellationToken)
+        public async Task<Guid> Handle(AlipayFundExpandindirectCreateCommand request, CancellationToken cancellationToken)
         {
-            var model = request.Adapt<AlipayFundExpandindirectCreateModel>();
-            model.Sites = request.SitesInfo.ToJson();
-            var result = alipayUtils.FundExpandindirectCreate(model);
-            return Task.FromResult(true);
+            AlipayFundExpandindirectOrder? entity;
+            if (request.Id.HasValue)
+            {
+                entity = await rep.AsQueryable()
+                    .Where(it => it.Id == request.Id)
+                    .FirstOrDefaultAsync(cancellationToken);
+                if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浠h繘浠跺崟");
+            }
+            else
+            {
+                entity = new AlipayFundExpandindirectOrder();
+            }
+            if (request.SceneImageOssUrl.IsNotNull() && entity.SceneImageOssUrl != request.SceneImageOssUrl)
+            {
+                var url = AliyunOSSUtils.GetUrl(request.SceneImageOssUrl);
+                var bytes = await httpRemoteService.GetAsByteArrayAsync(url);
+                var imageType = url.Substring(url.LastIndexOf(".") + 1);
+                var fileName = url.Substring(url.LastIndexOf("/") + 1);
+                entity.SceneImage = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest
+                {
+                    ProductCode = request.ProductCode,
+                    BizScene = request.BizScene,
+                    ImageType = imageType,
+                    ImageContent = new Aop.Api.Util.FileItem(fileName, bytes)
+                }).ImageId;
+            }
+            if (request.SceneQualificationText.IsNotNull())
+            {
+                entity.SceneQualificationImage = request.SceneQualificationText;
+            }
+            else if (request.SceneQualificationImageOssUrl.IsNotNull() && entity.SceneQualificationImageOssUrl != request.SceneQualificationImageOssUrl)
+            {
+                var url = AliyunOSSUtils.GetUrl(request.SceneQualificationImageOssUrl);
+                var bytes = await httpRemoteService.GetAsByteArrayAsync(url);
+                var imageType = url.Substring(url.LastIndexOf(".") + 1);
+                var fileName = url.Substring(url.LastIndexOf("/") + 1);
+                entity.SceneQualificationImage = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest
+                {
+                    ProductCode = request.ProductCode,
+                    BizScene = request.BizScene,
+                    ImageType = imageType,
+                    ImageContent = new Aop.Api.Util.FileItem(fileName, bytes)
+                }).ImageId;
+            }
+            entity.Sites = request.SitesInfo.ToJson();
+            request.Adapt(entity);
+            if (request.Id.HasValue)
+            {
+                await rep.UpdateAsync(entity);
+            }
+            else
+            {
+                await rep.InsertAsync(entity);
+            }
+            var result = alipayUtils.FundExpandindirectCreate(entity.Adapt<AlipayFundExpandindirectCreateModel>());
+            return entity.Id;
         }
     }
 }

--
Gitblit v1.9.1