sunpengfei
9 天以前 11e0c46d96a9de0c77cbc7509d34f470823bbc65
FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
@@ -24,6 +24,7 @@
        ) :
        IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>,
        IRequestHandler<CloseEnterpriseWalletCommand, Guid>,
        IRequestHandler<RechargeEnterpriseWalletCommand, Guid>,
        IRequestHandler<AlipayTransferCommand, Guid>
    {
        private readonly IRepository<EnterpriseWallet> rep = rep;
@@ -109,6 +110,50 @@
            return entity.Id;
        }
        /// <summary>
        /// 企业钱包充值
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<Guid> Handle(RechargeEnterpriseWalletCommand request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var entity = await rep.AsQueryable()
                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == request.Access)
                .FirstOrDefaultAsync();
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业钱包");
            if (entity.SignStatus != EnumEnterpriseWalletSignStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "未签约");
            if (entity.AccountBookStatus != EnumEnterpriseWalletAccountBookStatus.Normal) throw Oops.Oh(EnumErrorCodeType.s510, "未开通记账本");
            var order = new EnterpriseWalletTransaction();
            order.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
            order.WalletId = entity.Id;
            order.Amount = request.Amount;
            var response = alipayUtils.FundTransPagePay(new AlipayFundTransPagePayModel
            {
                OutBizNo = order.Code,
                TransAmount = order.Amount.ToString(),
                ProductCode = "FUND_ACCOUNT_BOOK",
                BizScene = "SATF_DEPOSIT",
                Remark = "记账本充值",
                OrderTitle = "记账本充值",
                TimeExpire = DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"),
                PayeeInfo = new Participant
                {
                    IdentityType = "ACCOUNT_BOOK_ID",
                    Identity = entity.AccountBookId,
                    ExtInfo = new
                    {
                        agreement_no = entity.AgreementNo,
                    }.ToJson(),
                },
            });
            if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
            order.OrderId = response.OrderId;
            return order.Id;
        }
        public async Task<Guid> Handle(AlipayTransferCommand request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();