コード例 #1
0
 /// <summary>
 /// 异步批量插入
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public async Task <bool> InsertApplyModelAndFlowingModelAsync(DoctorWithDrawApplyModel withdrawModel, TransferFlowingModel flowingModel, DoctorBalanceModel balanceModel)
 {
     return(await MySqlHelper.TransactionAsync(async (conn, tran) =>
     {
         if (string.IsNullOrWhiteSpace(await conn.InsertAsync <string, DoctorWithDrawApplyModel>(withdrawModel)))
         {
             return false;
         }
         if (string.IsNullOrWhiteSpace(await conn.InsertAsync <string, TransferFlowingModel>(flowingModel)))
         {
             return false;
         }
         await conn.UpdateAsync(balanceModel);
         return true;
     }));
 }
コード例 #2
0
        public async Task <IActionResult> WithdrawEaringsAsync(WithdrawEaringsAsyncRequest request)
        {
            var bannerBiz    = new DoctorBalanceBiz();
            var balanceModel = await bannerBiz.GetAsync(UserID ?? "");

            if (balanceModel == null || !balanceModel.Enable || balanceModel.Status.Equals(DoctorBalanceStatusEnum.Frozen.ToString()))
            {
                return(Failed(ErrorCode.Empty, "无法获取收益数据,请检查!"));
            }
            decimal balanceNum = balanceModel.AccBalance / 100;

            if (balanceNum < 99 || request.WithdrawNum < 99 || request.WithdrawNum > 299)
            {
                return(Failed(ErrorCode.UserData, "1.余额小于99,2.提现金额小于99,3.提现金额大于299,均不能提现!"));
            }
            var withdrawBiz = new DoctorWithDrawApplyBiz();

            if (await withdrawBiz.GetModelDataInTimeAsync(UserID) > 1)
            {
                return(Failed(ErrorCode.UserData, "每天只能提现一次!"));
            }
            if (string.IsNullOrWhiteSpace(""))
            {
                return(Failed(ErrorCode.SystemException, "功能暂为开放!"));
            }
            var userModel = new UserBiz().GetUser(UserID);
            //创建流水
            var transferFlowingModel = new TransferFlowingModel
            {
                FlowingGuid       = Guid.NewGuid().ToString("N"),
                TransactionNumber = $"FAQSZN_{GetRandomString(10, false, false, true, false, "")}{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                OutTradeNo        = $"FAQSZZ_{GetRandomString(10, false, false, true, false, "")}{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                Channel           = "微信转账",
                ChannelNumber     = "2",
                PayAccount        = userModel?.WechatOpenid ?? "",
                Amount            = Convert.ToInt32(request.WithdrawNum * 100),
                TransactionStatus = TransferFlowingModel.TransferStatusEnum.WaitForPayment.ToString(),
                Remarks           = string.Empty,
                OrgGuid           = string.Empty,
                CreatedBy         = UserID,
                LastUpdatedBy     = UserID
            };
            string timeStamp = (DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalMilliseconds.ToString();
            var    newModel  = new DoctorWithDrawApplyModel
            {
                ApplyGuid              = Guid.NewGuid().ToString("N"),
                ApplyCode              = $"FAQSWD_{GetRandomString(10, false, false, true, false, "")}{DateTime.Now.ToString("yyyyMMddHHmmss")}",//FAQSWD 问答提现申请
                DoctorGuid             = UserID,
                Withdraw               = Convert.ToInt32(request.WithdrawNum * 100),
                Status                 = FaqsApplyStatusEnum.Apply.ToString(),
                TransactionFlowingGuid = transferFlowingModel.FlowingGuid,
                ApproverGuid           = string.Empty,
                Reason                 = string.Empty,
                Remark                 = request.Remark,
                CreatedBy              = UserID,
                LastUpdatedBy          = UserID,
                OrgGuid                = string.Empty
            };

            //调用微信转账
            #region 当前不支持提现,关闭该功能
            var result = await new WeiXinPayBiz().EnterpasePayAsync(transferFlowingModel.OutTradeNo, userModel.WechatOpenid, userModel.UserName, newModel.Withdraw, "192.168.1.1");
            if (!result.result_code.Equals("SUCCESS"))
            {
                balanceModel.AccBalance                = balanceModel.AccBalance - newModel.Withdraw;
                balanceModel.TotalWithdraw             = balanceModel.TotalWithdraw + newModel.Withdraw;
                newModel.Status                        = FaqsApplyStatusEnum.Complete.ToString();
                transferFlowingModel.TransactionStatus = TransferFlowingModel.TransferStatusEnum.Success.ToString();
            }
            //申请+流水
            var isSucc = await new DoctorWithDrawApplyBiz().InsertApplyModelAndFlowingModelAsync(newModel, transferFlowingModel, balanceModel);
            if (!isSucc)
            {
                return(Failed(ErrorCode.DataBaseError, "申请出错,请检查!"));
            }
            #endregion
            return(Success(isSucc));
        }