| | |
| | | using 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; |
| | |
| | | /// 支付宝资金二级商户KYB代进件 |
| | | /// </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> |
| | | /// 支付宝资金二级商户KYB代进件 |
| | |
| | | /// <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, "代进件单"); |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | } |