예제 #1
0
        /// <summary>
        /// 绑定提现银行卡
        /// </summary>
        /// <param name="model"></param>
        /// <param name="vUserID"></param>
        /// <returns></returns>
        public RequestResult CreateBankAccount(MReqBankAccount model, string vUserID, string phoneNumber, string validCode)
        {
            #region
            RequestResult result = new RequestResult()
            {
                retCode = ReqResultCode.failed,
                retMsg  = "绑定银行卡失败"
            };

            int rows = 0;
            try
            {
                string randStr = singRand;

                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    #region 验证校验码是否正确
                    VerificationCode vCode = db.VerificationCodes.FirstOrDefault(p => p.Code == validCode && p.To == phoneNumber.Replace(" ", ""));
                    if (vCode == null)
                    {
                        result.retMsg = "手机验证码不正确";
                        return(result);
                    }
                    else if (DateTime.Now > vCode.EndDateTime)
                    {
                        result.retMsg = "验证码已过期";
                        return(result);
                    }
                    #endregion
                    Vip vip = db.Vips.FirstOrDefault(p => p.UserID == vUserID);
                    if (vip != null)
                    {
                        #region 验证签名是否正确
                        if (!string.IsNullOrWhiteSpace(vip.Code))
                        {
                            randStr = vip.Code;
                        }
                        string sign = Comm.GetMd5Hash($"{model.bankCode}{model.bankName}{model.cardNo}{model.idNo}{model.name}{model.phoneNo}{randStr}");
                        if (!sign.Equals(model.sign))
                        {
                            result.retMsg = "签名不正确,您的信息可能已被更改";
                            return(result);
                        }
                        #endregion
                        int count = db.VipForwardAccounts.Where(p => p.UserID == vUserID).Count();
                        if (count >= 5)
                        {
                            result.retMsg = "提现银行卡最多只能绑定5张,如需添加新卡,请删除已绑定的银行卡";
                            return(result);
                        }
                        VipForwardAccount account = new VipForwardAccount()
                        {
                            Bank           = model.bankName,
                            BankCode       = model.bankCode,
                            CerCode        = model.idNo,
                            CreateDateTime = DateTime.Now,
                            ForwardAccount = model.cardNo,
                            ForwardName    = model.name,
                            ForwardType    = Common.Enums.VipForwardType.BankCard,
                            PhoneNumber    = model.phoneNo,
                            UserID         = vUserID,
                            VipID          = vip.ID
                        };
                        db.VipForwardAccounts.Add(account);
                        rows = db.SaveChanges();
                    }
                    else
                    {
                        result.retMsg = "vip用户不存在";
                        return(result);
                    }
                }
                if (rows > 0)
                {
                    result.retCode = ReqResultCode.success;
                    result.retMsg  = "绑定成功";
                }
                else
                {
                    result.retMsg = "绑定失败";
                }
            }
            catch (Exception ex)
            {
                result.retCode = ReqResultCode.excetion;
                result.retMsg  = $"绑定提现银行卡时发生异常:{ex.Message}";
                //调试日志
                Comm.WriteLog("exception", result.retMsg, Common.Enums.DebugLogLevel.Error, "Bll.VipForwardAccountBLL.CreateBankAccount");
            }

            return(result);

            #endregion
        }
예제 #2
0
        /// <summary>
        /// 删除提现银行卡
        /// </summary>
        /// <param name="vBankAccountID"></param>
        /// <param name="vUserID"></param>
        /// <returns></returns>
        public RequestResult DeleteBankAccount(int vBankAccountID, string vUserID)
        {
            #region
            RequestResult result = new RequestResult()
            {
                retCode = ReqResultCode.failed,
                retMsg  = "删除失败"
            };
            #region 校验数据
            if (string.IsNullOrWhiteSpace(vUserID))
            {
                result.retMsg = "操作用户ID不能为空";
                return(result);
            }
            if (vBankAccountID <= 0)
            {
                result.retMsg = "银行卡账户ID不能为空";
                return(result);
            }

            #endregion
            int rows = 0;
            try
            {
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    VipForwardAccount account = db.VipForwardAccounts.FirstOrDefault(p => p.ID == vBankAccountID);
                    if (account != null)
                    {
                        if (account.UserID.Equals(vUserID))
                        {
                            db.VipForwardAccounts.Remove(account);
                            rows = db.SaveChanges();
                        }
                        else
                        {
                            result.retMsg = "当前银行卡账户与当前账户不匹配";
                            return(result);
                        }
                    }
                    else
                    {
                        result.retMsg = "当前银行卡账户不存在";
                        return(result);
                    }
                }
                if (rows > 0)
                {
                    result.retCode = ReqResultCode.success;
                    result.retMsg  = "删除成功";
                }
                else
                {
                    result.retMsg = "删除失败";
                }
            }
            catch (Exception ex)
            {
                result.retCode = ReqResultCode.excetion;
                result.retMsg  = $"绑定提现银行卡时发生异常:{ex.Message}";
                //调试日志
                Comm.WriteLog("exception", result.retMsg, Common.Enums.DebugLogLevel.Error, "Bll.VipForwardAccountBLL.DeleteBankAccount");
            }

            return(result);

            #endregion
        }
예제 #3
0
        /// <summary>
        /// 银行卡信息认证
        /// </summary>
        /// <param name="model"></param>
        /// <param name="vUserID"></param>
        /// <returns></returns>
        public RequestResult CheckBankInfo(BankCardModel model, string vUserID)
        {
            #region
            RequestResult result = new RequestResult()
            {
                retCode = ReqResultCode.failed,
                retMsg  = "绑定银行卡失败"
            };

            string randStr = singRand;
            try
            {
                #region 认证银行卡信息是否正确
                RequestResult ret = BankCardAuth.Bank4Authenticate(model);
                if (ret.retCode != ReqResultCode.success)
                {
                    result = ret;
                    return(result);
                }
                #endregion
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    //查看此银行卡是否已经绑定
                    VipForwardAccount account = db.VipForwardAccounts.FirstOrDefault(p => p.UserID == vUserID && p.CerCode == model.idNo && p.ForwardName == model.name && p.PhoneNumber == model.phoneNo && p.ForwardAccount == model.cardNo);
                    if (account != null)
                    {
                        result.retMsg = "该银行卡已经绑定,请重新填入";
                        return(result);
                    }
                    Vip vip = db.Vips.FirstOrDefault(p => p.UserID == vUserID);
                    if (vip != null && !string.IsNullOrWhiteSpace(vip.Code))
                    {
                        randStr = vip.Code;
                    }
                }

                result.retCode    = ReqResultCode.success;
                result.retMsg     = "认证成功";
                result.objectData = new MReqBankAccount
                {
                    bankCode = ret.objectData.bankCode,
                    bankName = ret.objectData.bankName,
                    cardNo   = model.cardNo,
                    idNo     = model.idNo,
                    name     = model.name,
                    phoneNo  = model.phoneNo,
                    sign     = Comm.GetMd5Hash($"{ret.objectData.bankCode}{ret.objectData.bankName}{model.cardNo}{model.idNo}{model.name}{model.phoneNo}{randStr}")
                };
            }
            catch (Exception ex)
            {
                result.retCode = ReqResultCode.excetion;
                result.retMsg  = $"银行卡信息认证时发生异常:{ex.Message}";
                //调试日志
                Comm.WriteLog("exception", result.retMsg, Common.Enums.DebugLogLevel.Error, "Bll.VipForwardAccountBLL.CheckBankInfo");
            }

            return(result);

            #endregion
        }
예제 #4
0
        /// <summary>
        /// 提现申请
        /// </summary>
        /// <param name="model"></param>
        /// <param name="vUserID"></param>
        /// <returns></returns>
        public RequestResult VipForwardApply(MReqVipForward model, string vUserID)
        {
            #region
            RequestResult result = new RequestResult()
            {
                retCode = ReqResultCode.failed,
                retMsg  = "申请提现失败"
            };

            int      rows     = 0;
            OrderBLL orderbll = new OrderBLL();
            try
            {
                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    VipForwardAccount account = db.VipForwardAccounts.FirstOrDefault(p => p.ID == model.bankAccountID);
                    Vip vip = db.Vips.FirstOrDefault(p => p.UserID == vUserID);
                    if (vip == null)
                    {
                        result.retMsg = $"vip用户不存在";
                        return(result);
                    }
                    else if (vip.Amount < model.forwardAmount)
                    {
                        result.retMsg = $"可提现金额不足{model.forwardAmount}元";
                        return(result);
                    }
                    if (account != null)
                    {
                        if (account.UserID == vUserID)
                        {
                            //创建订单
                            VipForwardOrder order = new VipForwardOrder()
                            {
                                Amount           = 0,
                                Code             = orderbll.CreateOrderCode(vUserID),
                                CreateDateTime   = DateTime.Now,
                                ReceivableAmount = model.forwardAmount,
                                State            = Common.Enums.VipForwardState.Waiting,
                                ToAccount        = account.ForwardAccount,
                                Type             = Common.Enums.VipForwardType.BankCard,
                                UserID           = account.UserID
                            };
                            db.VipForwardOrders.Add(order);
                            //冻结提现金额
                            vip.Amount       -= model.forwardAmount;
                            vip.FrozenAmount += model.forwardAmount;
                            rows              = db.SaveChanges();
                        }
                        else
                        {
                            result.retMsg = $"银行卡信息有误";
                            return(result);
                        }
                    }
                    else
                    {
                        result.retMsg = $"提现银行卡不存在";
                        return(result);
                    }
                }

                if (rows > 0)
                {
                    result.retCode = ReqResultCode.success;
                    result.retMsg  = $"提现申请成功";
                }
                else
                {
                    result.retMsg = $"提现申请失败";
                }
            }
            catch (Exception ex)
            {
                result.retCode = ReqResultCode.excetion;
                result.retMsg  = $"提现申请时发生异常:{ex.Message}";
                //调试日志
                Comm.WriteLog("exception", result.retMsg, Common.Enums.DebugLogLevel.Error, "Bll.VipForwardBLL.VipForwardApply");
            }

            return(result);

            #endregion
        }