using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; 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 { /// /// 查询支付宝资金二级商户KYB代进件单详情 /// public class EnterpriseWalletExpandindirectQueryHandler( IRepository rep, AlipayUtils alipayUtils ) : IRequestHandler { private readonly IRepository rep = rep; private readonly AlipayUtils alipayUtils = alipayUtils; /// /// 查询支付宝资金二级商户KYB代进件单详情 /// /// /// /// public async Task Handle(GetEnterpriseWalletExpandindirectOrderQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); if (logier.Type == EnumUserType.Enterprise) { request.EnterpriseId = logier.EnterpriseId; } if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请填写企业Id"); var entity = await rep.AsQueryable() .Include(it => it.Files) .OrderByDescending(it => it.CreatedTime) .Where(it => it.Wallet.EnterpriseId == request.EnterpriseId) .FirstOrDefaultAsync(); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "代进件单"); if (entity.OrderStatus == EnumEnterpriseWalletExpandindirectOrderStatus.PROCESSING) { var result = alipayUtils.FundExpandindirectOrderQuery(new Aop.Api.Domain.AlipayFundExpandindirectOrderQueryModel { BizScene = entity.BizScene, OrderId = entity.OrderId, OutBizNo = entity.OutBizNo, ProductCode = entity.ProductCode, }); if (result.IsError) throw Oops.Oh(EnumErrorCodeType.s510, result.Msg); entity.Status = result.Status; entity.OrderStatus = entity.Status.ToEnum("未识别的状态")!.Value; entity.TaskFinishTime = result.TaskFinishTime.ToDateTime(); entity.RiskReviewRemark = result.RiskReviewRemark; } await rep.UpdateAsync(entity); var model = entity.Adapt(); model.SitesInfo = entity.Sites.JsonTo(); return model; } } }