/// <summary>
        /// 修改提现密码
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public string SetWithdrawalPwd(string pRequest)
        {
            var rsp = new SuccessResponse <IAPIResponseData>();
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var rp                    = pRequest.DeserializeJSONTo <APIRequest <SetWithdrawalPwdRP> >();
            var customerId            = loggingSessionInfo.ClientID;
            var Oldpwd                = rp.Parameters.OldWithdrawalPassword; //提现密码
            var NewPwd                = rp.Parameters.NewWithdrawalPassword; //新密码
            var rd                    = new SetWithdrawalPwdRD();
            var bll                   = new CustomerBackBLL(loggingSessionInfo);
            CustomerBackEntity entity = new CustomerBackEntity();

            entity.CustomerId         = customerId; //客户ID
            entity.BackStatus         = 1;          //账户状态
            entity.WithdrawalPassword = rp.Parameters.OldWithdrawalPassword;
            var ds = bll.QueryByEntity(entity, null);

            if (ds.Length > 0)
            {
                entity = (CustomerBackEntity)ds[0];
                string strPwd = string.Empty; //密码
                if (ds.Length > 0 && ds != null)
                {
                    strPwd = ds.FirstOrDefault().WithdrawalPassword;
                    if (!string.IsNullOrWhiteSpace(strPwd) && strPwd == Oldpwd)  //当数据库中存的密码和输入的密码一样,更新密码
                    {
                        entity.WithdrawalPassword = NewPwd;
                        entity.MD5Pwd             = NewPwd.Trim() + MD5Helper.Encryption(customerId.ToString()).Trim();
                        entity.CustomerBackId     = Guid.Parse(ds.FirstOrDefault().CustomerBackId.ToString());
                        bll.Update(entity);//更新密码
                        rsp.ResultCode = 0;
                        rsp.Message    = "OK";
                        return(rsp.ToJSON());
                    }
                }
            }
            else
            {
                rsp.ResultCode = 301;
                rsp.Message    = "提现密码输入错误!请重新输入";
                return(rsp.ToJSON());

                throw new APIException("提现密码输入错误!")
                      {
                          ErrorCode = 301
                      };
            }
            return(rsp.ToJSON());
        }
        /// <summary>
        /// 申请提现
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public string ApplyForWithdrawal(string pRequest)
        {
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            var rd                 = new ApplyForWithdrawalRD();
            var rp                 = pRequest.DeserializeJSONTo <APIRequest <ApplyForWithdrawalRP> >();
            var customerId         = loggingSessionInfo.ClientID;      //客户ID
            var WithdrawalAmount   = rp.Parameters.WithdrawalAmount;   //提现金额
            var WithdrawalPassword = rp.Parameters.WithdrawalPassword; //提现密码
            var rsp                = new SuccessResponse <IAPIResponseData>();

            #region 1.根据CustomerID查询当前客户银行信息
            CustomerBackBLL    BackBLL    = new CustomerBackBLL(loggingSessionInfo);
            CustomerBackEntity BackEntity = new CustomerBackEntity();
            BackEntity.CustomerId = customerId;
            BackEntity.BackStatus = 1;
            var entityBack = BackBLL.QueryByEntity(BackEntity, null);
            if (entityBack != null && entityBack.Length > 0)
            {
                string Password = entityBack.First().WithdrawalPassword;  //提现密码
                if (!WithdrawalPassword.ToString().Equals(Password))
                {
                    rsp.ResultCode = 303;
                    rsp.Message    = "输入密码错误";
                    return(rsp.ToJSON());

                    throw new APIException(string.Format("输入密码错误!"))
                          {
                              ErrorCode = 303
                          };
                }
                else if (Password == "e10adc3949ba59abbe56e057f20f883e")  //1.未修改初始密码.跳转到输入密码页面
                {
                    rsp.ResultCode = 302;
                    return(rsp.ToJSON());

                    throw new APIException(string.Format("您的初始密码没有修改。请修改初始密码!"))
                          {
                              ErrorCode = 302
                          };
                }

                else
                {
                    string MD5Pwd = WithdrawalPassword.ToString().Trim() + MD5Helper.Encryption(customerId.ToString().Trim()); //MD5密码
                    if ((Password.ToString().Trim().Equals(WithdrawalPassword.ToString().Trim())) && entityBack.FirstOrDefault()
                        .MD5Pwd.ToString().Trim().Equals(MD5Pwd))                                                              //2.当客户已经修改密码,并且输入的密码和数据库中客户密码一致.并且数据库中MD5的密码规则一样则提现
                    {
                        #region 根据金额,客户。状态 查询提现主标识
                        #endregion
                        var    bll    = new CustomerWithdrawalBLL(loggingSessionInfo);
                        string UserId = loggingSessionInfo.CurrentUser.User_Id;
                        // string strWithdrawalld = bll.GetWithdrawalID(customerId, 20);
                        var tran = bll.GetTran();
                        try
                        {
                            if (!bll.GetWithdrawalDayByMaxPeriod(customerId))
                            {
                                rsp.ResultCode = 305;
                                rsp.Message    = "没到提现周期。不能提现";
                                return(rsp.ToJSON());

                                throw new APIException("没到提现周期。不能提现")
                                      {
                                          ErrorCode = 305
                                      };
                            }
                            else
                            {
                                #region 老版本提现。废弃
                                //#region 1.根据提现主标识更新对应的状态和更新人。
                                //bll.UpdateWithdrawalStatus(customerId, strWithdrawalld, 30, UserId);
                                //#endregion
                                //#region 2。根据提现主标识,更新订单支付明细的状态和时间
                                ////提现明细
                                //CustomerWithdrawalDetailBLL blldetail = new CustomerWithdrawalDetailBLL(loggingSessionInfo);
                                //CustomerOrderPayBLL orderPayBLL = new CustomerOrderPayBLL(loggingSessionInfo);

                                //orderPayBLL.UpdateOrderPayList(strWithdrawalld, customerId, 30, UserId);
                                //#endregion

                                //#region 根据CustomerId 3更新客户可提取的现金金额。已提取的金额累加,当前余额-提取金额
                                //CustomerAmountBLL amountBLL = new CustomerAmountBLL(loggingSessionInfo);
                                //CustomerAmountEntity amountentity = new CustomerAmountEntity();
                                //amountentity.CustomerId = customerId;//客户ID
                                //decimal strOutAmount, strWithdrawalAmount, strEndAmount;//已提取金额。可提现金额,当前余额
                                //var temp = amountBLL.QueryByEntity(amountentity, null);
                                //if (temp.Length > 0)
                                //{
                                //    strOutAmount = Convert.ToDecimal(temp.FirstOrDefault().OutAmount);
                                //    strWithdrawalAmount = Convert.ToDecimal(temp.FirstOrDefault().WithdrawalAmount);
                                //    strEndAmount = Convert.ToDecimal(temp.FirstOrDefault().EndAmount);
                                //    amountentity = temp[0];
                                //    amountentity.WithdrawalAmount = 0;//可提现金额变为0;
                                //    amountentity.OutAmount = strOutAmount + rp.Parameters.WithdrawalAmount;//已提取金额累加
                                //    amountentity.EndAmount = strEndAmount - WithdrawalAmount; //余额-提现金额
                                //    amountBLL.Update(amountentity, null);
                                //}
                                //#endregion
                                #endregion

                                int returnValue = bll.getApplyForWithdrawal(customerId, UserId, WithdrawalAmount);
                                if (returnValue == 0)
                                {
                                    rsp.ResultCode = 0;
                                    rsp.Message    = "OK";
                                    return(rsp.ToJSON());
                                }
                                if (returnValue == 1)
                                {
                                    rsp.ResultCode = 306;
                                    rsp.Message    = "提现失败!";
                                    return(rsp.ToJSON());
                                }
                                if (returnValue == 304)
                                {
                                    rsp.ResultCode = 304;
                                    rsp.Message    = "没有可提取金额!不能提现";
                                    return(rsp.ToJSON());

                                    throw new APIException("没有可提取金额!不能提现")
                                          {
                                              ErrorCode = 304
                                          };
                                }
                            }

                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            throw new APIException(ex.Message);
                        }
                    }
                }
            }
            #endregion
            rsp = new SuccessResponse <IAPIResponseData>(rd);
            return(rsp.ToJSON());
        }