/// <summary>
        /// 新增余额
        /// </summary>
        /// <param name="balance"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static bool AddBalance(decimal balance, int accountId, out string message)
        {
            message = "";
            bool retFlag= false;  //返回结果
            Base_t_AccountInfo bai= new Base_t_AccountInfo();

            AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext();

            bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p=>p.id == accountId);

            if(bai == null)
            {
                retFlag = false;
                message = "不存在该账户信息; accountId:"+accountId.ToString();
            }
            else
            {
                try
                {
                    bai.balance = bai.balance + balance;
                    adsdc.SubmitChanges();
                    retFlag = true;
                    message = "新增余额成功";
                }
                catch(Exception ex)
                {
                    message = ex.Message;
                    retFlag = false;
                }
            }

            return retFlag;
        }
        /// <summary>
        /// 审核待审核记录
        /// </summary>
        /// <param name="auditId"></param>
        /// <returns></returns>
        public static bool AuditOperBalanceInfo(int auditId, string operUserId,bool status, out string message)
        {
            message = "";
            bool retFlag = false;
            using (AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext())
            {
                DbTransaction tran = adsdc.Connection.BeginTransaction();
                Base_t_AccountAuditInfo baai = new Base_t_AccountAuditInfo();
                Base_t_AccountInfo bai = new Base_t_AccountInfo();

                baai = adsdc.Base_t_AccountAuditInfo.FirstOrDefault(p => p.id == auditId);
                try
                {
                    //审核待审核记录
                    if (baai != null)
                    {
                        //如果流水记如存在,则根据流水记录中的账户ID取账户信息
                        bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p => p.id == baai.accountId);

                        baai.status = true;
                        baai.opUser = operUserId;
                        baai.opTime = DateTime.Now;
                        adsdc.SubmitChanges();
                        retFlag = true;
                    }

                    //审核成功,插入操作记录到流水记录表
                    if (retFlag)
                    {
                        string mess = "";
                        Base_t_AccountDetailEntity bade = new Base_t_AccountDetailEntity();
                        PublicFunction.ObjectCopyTo(baai, bade);

                        //自动赋值后,处理各别不同的属性值
                        bade.Id = 0;
                        bade.Orderid = baai.refId;
                        bade.Resume = baai.direction;
                        bade.UseBalance = (decimal)baai.opBalance;
                        if (baai.type == 0)
                            bade.EndBalance = (decimal)bai.balance + (decimal)baai.opBalance;
                        else
                            bade.EndBalance = (decimal)bai.balance - (decimal)baai.opBalance;

                        InsertOperBalanceInfo(bade, out mess);
                        message = mess;
                    }
                    tran.Commit();
                }
                catch(Exception ex)
                {
                    tran.Rollback();
                    message = ex.Message;
                    retFlag = false;
                }
            }
            return retFlag;
        }
 partial void DeleteBase_t_AccountInfo(Base_t_AccountInfo instance);
 partial void UpdateBase_t_AccountInfo(Base_t_AccountInfo instance);
 partial void InsertBase_t_AccountInfo(Base_t_AccountInfo instance);
        /// <summary>
        /// 更新账户信息
        /// </summary>
        /// <param name="baie"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static bool UpdateAccountInfo(Base_t_AccountInfoEntity baie, out string message)
        {
            message = "";
            bool retFlag = false;
            Base_t_AccountInfo bai = new Base_t_AccountInfo();

            //转换实体
            if(baie != null)
                PublicFunction.ObjectCopyTo(baie, bai);

            AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext();

            try
            {
                adsdc.SubmitChanges();
                message = "更新成功";
                retFlag = true;
            }
            catch(Exception ex)
            {
                message = ex.Message;
                retFlag = false;
            }

            return retFlag;
        }
        /// <summary>
        /// 解锁账户信息
        /// </summary>
        /// <param name="accountId">账户ID</param>
        /// <param name="mark">操作描述说明</param>
        /// <param name="operId">操作ID</param>
        /// <param name="subjecId">操作子系统编码</param>
        /// <param name="message">返回信息</param>
        /// <returns></returns>
        public static bool UnBlockAccountInfo(int accountId, string userCode, string userName, string operId, string mark, string subjecCode, out string message)
        {
            message = "";
            bool retFlag = false;
            using (AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext())
            {
                Base_t_AccountInfo bai = new Base_t_AccountInfo();
                bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p => p.id == accountId);
                if (bai != null)
                {
                    try
                    {
                        bai.status = 1;
                        adsdc.SubmitChanges();
                        retFlag = true;
                    }
                    catch (Exception ex)
                    {
                        message = ex.Message;
                        retFlag = false;
                    }
                }
                else
                {
                    message = "该账户不存在!";
                    retFlag = false;
                }

                //如果锁定成功,插入流水记录
                if (retFlag)
                {
                    Base_t_AccountDetailEntity bade = new Base_t_AccountDetailEntity();
                    bade.Type = 3;
                    bade.AccountId = accountId;
                    bade.OpTime = DateTime.Now;
                    bade.CustmerCode = userCode;
                    bade.CustmerName = userName;
                    bade.OpUser = operId;
                    bade.Resume = mark;
                    bade.SubjectCode = subjecCode;

                    //插入流水信息记录
                    InsertOperBalanceInfo(bade, out message);
                    retFlag = true;
                }

                return retFlag;
            }
        }
        /// <summary>
        ///  锁定账户余额
        /// </summary>
        /// <param name="accountId">账户ID</param>
        /// <param name="mark">操作描述说明</param>
        /// <param name="operId">操作ID</param>
        /// <param name="subjecId">操作子系统编码</param>
        /// <param name="balance">余额</param>
        /// <param name="message">反回信息</param>
        /// <returns></returns>
        public static bool UnBlockAccountBalance(int accountId, string operId, string mark, string subjecCode, decimal balance, out string message)
        {
            message = "";
            bool retFlag = false;
            using (AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext())
            {
                DbTransaction tran = adsdc.Connection.BeginTransaction();
                Base_t_AccountInfo bai = new Base_t_AccountInfo();
                bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p => p.id == accountId);
                if (bai != null)
                {
                    try
                    {
                        if (bai.blockBalance < balance)
                        {
                            message = "账户可解锁余额不足,请确定解锁金额是否超限";
                            retFlag = false;
                        }
                        else
                        {
                            bai.blockBalance = bai.blockBalance - balance;
                            adsdc.SubmitChanges();
                            retFlag = true;
                        }
                    }
                    catch (Exception ex)
                    {
                        message = ex.Message;
                        retFlag = false;
                    }
                }
                else
                {
                    message = "该账户不存在!";
                    retFlag = false;
                }

                //如果锁定成功,插入流水记录
                if (retFlag)
                {
                    try
                    {
                        Base_t_AccountAuditInfoEntity baaie = new Base_t_AccountAuditInfoEntity();

                        baaie.CreateTime = DateTime.Now;
                        baaie.CreateUser = operId;

                        baaie.Type = 1;
                        baaie.AccountId = accountId;
                        baaie.OpTime = DateTime.Now;
                        baaie.OpUser = operId;
                        baaie.Remark = mark;
                        baaie.SubjectCode = subjecCode;

                        //插入流水信息记录
                        InsertAuditOperBalanceInfo(baaie, out message);
                        retFlag = true;

                        tran.Commit();
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        message = ex.Message;
                        retFlag = true;
                    }
                }

                return retFlag;
            }
        }
 /// <summary>
 /// 根据用户ID查询账户信息
 /// </summary>
 /// <param name="userId">用户ID</param>
 /// <returns></returns>
 public static Base_t_AccountInfoEntity SelectAccountInfoByUserId(string userId)
 {
     using (AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext())
     {
         Base_t_AccountInfoEntity baie = new Base_t_AccountInfoEntity();
         Base_t_AccountInfo bai = new Base_t_AccountInfo();
         bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p => p.userId == userId.Trim());
         if (bai != null)
         {
             PublicFunction.ObjectCopyTo(bai, baie);
         }
         else
             return null;
         return baie;
     }
 }
        /// <summary>
        /// 查询账户信息
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public static Base_t_AccountInfoEntity SelectAccountInfo(int accountId)
        {
            Base_t_AccountInfo bai = new Base_t_AccountInfo();
            Base_t_AccountInfoEntity baie = new Base_t_AccountInfoEntity();

            AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext();

            bai = adsdc.Base_t_AccountInfo.FirstOrDefault(p => p.id == accountId);
            if (bai != null)
                PublicFunction.ObjectCopyTo(bai, baie);
            if (baie != null)
            {
                return baie;
            }

            return null;
        }
        /// <summary>
        /// 新增账户信息
        /// </summary>
        /// <param name="baie"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public static bool InsertAccountInfo(Base_t_AccountInfoEntity baie, out string accountId, out string message)
        {
            accountId = "";
            bool retFlag = false;

            Base_t_AccountInfo adbai = new Base_t_AccountInfo();

            if (baie == null)
            {
                message = "传入参数有误";
                return false;
            }
            //进行实体转换
            PublicFunction.ObjectCopyTo(baie, adbai);

            AccountDataSourceDataContext adsdc = new AccountDataSourceDataContext();
            try
            {
                if (adbai != null)
                {
                    adsdc.Base_t_AccountInfo.InsertOnSubmit(adbai);
                    adsdc.SubmitChanges();

                }
                retFlag = true;
                message = "新增账户信息成功";
                //返回账户ID
                accountId = adbai.id.ToString();
            }
            catch(Exception ex)
            {
                retFlag = false;
                message = ex.Message;
            }
            return retFlag;
        }