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 |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
new file mode 100644
index 0000000..95467c3
--- /dev/null
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
@@ -0,0 +1,97 @@
+锘縰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;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.UserServer.Application
+{
+    /// <summary>
+    /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠�
+    /// </summary>
+    public class AlipayFundExpandindirectCreateCommandHandler(
+            AlipayUtils alipayUtils,
+            IHttpRemoteService httpRemoteService,
+            IRepository<AlipayFundExpandindirectOrder> rep
+        ) :
+        IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid>
+    {
+        private readonly AlipayUtils alipayUtils = alipayUtils;
+        private readonly IHttpRemoteService httpRemoteService = httpRemoteService;
+        private readonly IRepository<AlipayFundExpandindirectOrder> rep = rep;
+
+        /// <summary>
+        /// 鏀粯瀹濊祫閲戜簩绾у晢鎴稫YB浠h繘浠�
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<Guid> Handle(AlipayFundExpandindirectCreateCommand request, CancellationToken cancellationToken)
+        {
+            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