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