Example #1
0
 /// <summary>
 /// 会员上下分
 /// </summary>
 /// <param name="model"></param>
 /// <param name="head"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public bool ClientPoint(ClientSearc model, HeadMessage head, out ErrorMessage error)
 {
     error       = new ErrorMessage();
     error.ErrNo = "0004";
     try
     {
         if (string.IsNullOrEmpty(model.C_ID) || model.C_IsAdd == null || model.C_Point == null || string.IsNullOrEmpty(head.LoginID) || string.IsNullOrEmpty(model.C_AID) || string.IsNullOrEmpty(model.C_UserID))
         {
             error.ErrMsg = "参数不完整";
             return(false);
         }
         bool   isH5    = false;
         string h5MgrId = "";
         if (CommonDAL.IsH5Clnt(model.C_ID))
         {
             isH5    = true;
             h5MgrId = CommonDAL.GetH5MgrID();
             if (model.C_IsAdd == true && !string.Equals(h5MgrId.Trim(), head.LoginID.Trim(), StringComparison.OrdinalIgnoreCase))
             {
                 error.ErrMsg = "当前代理不能对H5会员下分";
                 return(false);
             }
         }
         if (model.C_Point <= 0)
         {
             error.ErrMsg = "上下分点数不在正确范围";
             return(false);
         }
         string strSql = SqlTemplateCommon.GetSql("A_SaveClientPoint");
         if (string.IsNullOrEmpty(strSql))
         {
             error.ErrMsg = "服务端没有读取到A_SaveClientPoint数据模板,请联系管理员";
             return(false);
         }
         bool hasMatchp = new AgentListDAL().PHasAnyMatchP(head.LoginID, model.C_AID);
         if (hasMatchp && (string.IsNullOrEmpty(model.C_LevelPoint) || model.C_LevelPoint != "1"))//上级代理链有配分权限,只能登录代理上下分
         {
             error.ErrMsg = "上级代理链有配分权限,只能登录代理上下分";
             return(false);
         }
         string ownId = (model.C_LevelPoint != null && model.C_LevelPoint == "1") ? model.C_AID : head.LoginID;
         ownId  = (isH5 && model.C_IsAdd == true) ? CommonDAL.GetH5LenderID() : ownId;//如果是H5会员下分则设置收分代理ID为分源代理ID
         strSql = strSql.Replace("${AgentID}", ownId);
         strSql = strSql.Replace("${CreateID}", head.LoginID);
         strSql = strSql.Replace("${Point}", model.C_Point.ToString());           //上下分点数
         strSql = strSql.Replace("${IsAdd}", model.C_IsAdd.ToString().ToUpper()); //标记上下分 true=下分 false=上分
         strSql = strSql.Replace("${ClientID}", model.C_ID);                      //登录代理ID
         strSql = strSql.Replace("${IP}", head.Ip);
         strSql = strSql.Replace("${Address}", Common.CommonHelper.ipToAddr(head.Ip));
         strSql = strSql.Replace("${IPLocal}", Common.CommonHelper.ipToAddr(head.Ip));
         string opType = "", memo = "";
         if (model.C_LevelPoint != null && model.C_LevelPoint == "1")
         {
             memo   = head.Account + "进行上级代理" + ((model.C_IsAdd == true) ? "下分" : "上分");
             opType = (model.C_IsAdd == true) ? "会员上级代理下分" : "会员上级代理下分";
         }
         else
         {
             memo   = head.Account + "进行登录代理" + ((model.C_IsAdd == true) ? "下分" : "上分");
             opType = (model.C_IsAdd == true) ? "会员登录代理下分" : "会员登录代理下分";
         }
         if (isH5 && model.C_IsAdd == true)
         {
             memo   = head.Account + "对H5会员下分";
             opType = "H5会员下分";
         }
         strSql = strSql.Replace("${OpType}", opType);//登录代理ID
         strSql = strSql.Replace("${Memo}", memo);
         Db.Context_SqlServer.FromSql(strSql).ToDataSet();
         error.ErrMsg = model.C_IsAdd == true ? "会员下分成功" : "会员上分成功";
         error.ErrNo  = "0000";
         return(true);
     }
     catch (Exception ex)
     {
         Common.LogHelper.WriteLog(typeof(ClientListDAL), ex);
         error.ErrMsg = ex.Message.Replace("\r", "").Replace("\n", "");
         return(false);
     }
 }
Example #2
0
        /// <summary>
        /// 新增会员
        /// </summary>
        /// <param name="model"></param>
        /// <param name="head"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public bool InsertClient(ClientSearc model, HeadMessage head, out ErrorMessage error)
        {
            error       = new ErrorMessage();
            error.ErrNo = "0004";
            DbTrans tran  = null;
            DbBatch batch = null;

            try
            {
                #region 操作前验证
                if (string.IsNullOrEmpty(model.C_UserID))
                {
                    error.ErrMsg = "新增会员时登录名称不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(model.C_Name))
                {
                    error.ErrMsg = "新增会员时会员名称不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(model.C_Pwd))
                {
                    error.ErrMsg = "新增会员时密码不能为空";
                    return(false);
                }
                if (string.IsNullOrEmpty(model.C_AID))
                {
                    error.ErrMsg = "新增会员时必须指定所属代理";
                    return(false);
                }
                #endregion
                string tableSql = SqlTemplateCommon.GetSql("T_GetAllT_Tables");
                string oddSql   = SqlTemplateCommon.GetSql("ClntOdds");
                if (string.IsNullOrEmpty(tableSql) || string.IsNullOrEmpty(oddSql))
                {
                    error.ErrMsg = "服务端没有读取到T_GetAllT_Tables/oddSql数据模板,请联系管理员";
                    return(false);
                }
                List <TableModel>  tableList   = Db.Context_SqlServer.FromSql(tableSql).ToList <TableModel>(); //获取系统中的所有桌台
                ClientOdds         standardOdd = Db.Context_SqlServer.FromSql(oddSql).ToFirst <ClientOdds>();  //获取会员标准赔率对象
                List <T_Authority> authList    = new List <T_Authority>();                                     //给新增会员配置所有桌台权限
                T_Client           dbClnt      = new T_Client();
                T_ClientEx         dbClntEx    = new T_ClientEx();
                T_OperationLog     opLog       = new T_OperationLog();

                T_Agent pAgent = AgentListDAL.First(a => a.AgentID == model.C_AID);
                if (pAgent == null)
                {
                    error.ErrMsg = "指定的所属代理无效,新增会员失败";
                    return(false);
                }
                if (model.C_WashR != null && model.C_WashR > pAgent.WashRate)
                {
                    model.C_WashR = pAgent.WashRate; //如果新增会员的洗码率大于父级代理的洗码率则赋值为父级代理的洗码率
                }
                if (pAgent.DrawRate == 0)            //如果父级代理的和局率为0,则它的直属会员的和局率只能为0
                {
                    model.C_DrawR = 0;
                }
                else
                {
                    if (pAgent.DrawRate > 0 && model.C_DrawR <= 0)
                    {
                        model.C_DrawR = pAgent.DrawRate;
                    }
                    else
                    {
                        if (model.C_DrawR != null && model.C_DrawR > pAgent.DrawRate)
                        {
                            model.C_DrawR = pAgent.DrawRate;                                                          //如果新增会员的和局率大于父级代理的和局率则赋值为父级代理的和局率
                        }
                    }
                }
                if (model.C_MX_Z != null && model.C_MX_Z > pAgent.Max_Z)
                {
                    model.C_MX_Z = pAgent.Max_Z;                                                     //如果新增会员的最大限红大于父级代理的最大限红则赋值为父级代理的最大限红
                }
                if (model.C_MN_Z != null && model.C_MN_Z < pAgent.Min_Z)
                {
                    model.C_MN_Z = pAgent.Min_Z;                                                     //如果新增会员的最小限红小于父级代理的最小限红则赋值为父级代理的最小限红
                }
                #region 构造桌台权限
                if (tableList != null && tableList.Count > 0)
                {
                    foreach (var item in tableList)
                    {
                        T_Authority authority = new T_Authority();
                        authority.ClientID = model.C_ID;
                        authority.TableID  = item.T_ID;
                        authority.Priority = "C";
                        if (model.C_MN_Z != null)
                        {
                            authority.Min_Z  = model.C_MN_Z;
                            authority.Min_ZD = model.C_MN_Z / 10;
                            authority.Min_XD = model.C_MN_Z / 10;
                            authority.Min_X  = model.C_MN_Z;
                            authority.Min_H  = model.C_MN_Z / 10;
                        }
                        if (model.C_MX_Z != null)
                        {
                            authority.Max_ZD = model.C_MX_Z / 10;
                            authority.Max_Z  = model.C_MX_Z;
                            authority.Max_XD = model.C_MX_Z / 10;
                            authority.Max_X  = model.C_MX_Z;
                            authority.Max_H  = model.C_MX_Z / 10;
                        }
                        authList.Add(authority);
                    }
                }
                #endregion

                #region 构造新增会员对象
                dbClnt.ClientID   = Guid.NewGuid().ToString().Replace("-", "");
                dbClnt.CreateID   = head.LoginID;
                dbClnt.Balance    = 0;
                dbClnt.Principal  = 0;
                dbClnt.State      = "YES";//新增会员默认为启用状态
                dbClnt.CreateTime = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
                dbClnt.AgentID    = model.C_AID;
                dbClnt.ClientName = model.C_Name;
                dbClnt.LogName    = model.C_UserID;
                dbClnt.F_2        = model.C_F2;
                dbClnt.IsHide     = "FALSE";
                dbClnt.Pwd        = model.C_Pwd;
                if (model.C_WashT != null)
                {
                    dbClnt.WashType = (model.C_WashT == true) ? "S" : "D";
                }
                if (model.C_WashR != null)
                {
                    dbClnt.WashRate = model.C_WashR;
                }
                if (model.C_DrawR != null)
                {
                    dbClnt.DrawRate = model.C_DrawR;
                }
                if (model.C_MN_Z != null)
                {
                    dbClnt.Min_H  = model.C_MN_Z / 10;
                    dbClnt.Min_X  = model.C_MN_Z;
                    dbClnt.Min_XD = model.C_MN_Z / 10;
                    dbClnt.Min_Z  = model.C_MN_Z;
                    dbClnt.Min_ZD = model.C_MN_Z / 10;
                }
                if (model.C_MX_Z != null)
                {
                    dbClnt.Max_H  = model.C_MX_Z / 10;
                    dbClnt.Max_X  = model.C_MX_Z;
                    dbClnt.Max_XD = model.C_MX_Z / 10;
                    dbClnt.Max_Z  = model.C_MX_Z;
                    dbClnt.Max_ZD = model.C_MX_Z / 10;
                }
                #endregion

                #region 构造会员扩展对象
                dbClntEx.ClientID       = model.C_ID;
                dbClntEx.ClientDataShow = (model.C_HdShow == true) ? 2 : 1;
                if (model.C_ODF != null)
                {
                    dbClntEx.Odds_Fu_Client = (model.C_ODF > 0) ? model.C_ODF : standardOdd.C_ODF;
                }
                if (model.C_ODH != null)
                {
                    dbClntEx.Odds_H_Client = (model.C_ODH > 0) ? model.C_ODH : standardOdd.C_ODH;
                }
                if (model.C_ODHe != null)
                {
                    dbClntEx.Odds_He_Client = (model.C_ODHe > 0) ? model.C_ODHe : standardOdd.C_ODHe;
                }
                if (model.C_ODL != null)
                {
                    dbClntEx.Odds_Long_Client = (model.C_ODL > 0) ? model.C_ODL : standardOdd.C_ODL;
                }
                if (model.C_ODX != null)
                {
                    dbClntEx.Odds_X_Client = (model.C_ODX > 0) ? model.C_ODX : standardOdd.C_ODX;
                }
                if (model.C_ODXD != null)
                {
                    dbClntEx.Odds_XD_Client = (model.C_ODXD > 0) ? model.C_ODXD : standardOdd.C_ODXD;
                }
                if (model.C_ODZ != null)
                {
                    dbClntEx.Odds_Z_Client = (model.C_ODZ > 0) ? model.C_ODZ : standardOdd.C_ODZ;
                }
                if (model.C_ODZD != null)
                {
                    dbClntEx.Odds_ZD_Client = (model.C_ODZD > 0) ? model.C_ODZD : standardOdd.C_ODZD;
                }
                #endregion

                #region 构造操作日志对象
                opLog.LogID   = Guid.NewGuid().ToString().Replace("-", "");
                opLog.LogInfo = DateTime.Now.ToString() + head.Account + "新增会员" + dbClnt.LogName;
                opLog.LogTime = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now); //DateTime.Now.ToString();
                opLog.OpID    = head.LoginID;
                opLog.LogType = "新增会员";
                #endregion

                tran  = Db.Context_SqlServer.BeginTransaction();
                batch = Db.Context_SqlServer.BeginBatchConnection(30, tran);
                tran.Insert <T_Client>(dbClnt);
                tran.Insert <T_ClientEx>(dbClntEx);
                batch.Insert <T_Authority>(authList.ToArray());
                tran.Insert <T_OperationLog>(opLog);
                batch.Execute();
                tran.Commit();
                error.ErrMsg = "新增会员成功";
                error.ErrNo  = "0000";
                return(true);
            }
            catch (Exception ex)
            {
                tran.Rollback();
                Common.LogHelper.WriteLog(typeof(ClientListDAL), ex);
                error.ErrMsg = ex.Message.Replace("\r", "").Replace("\n", "");
                return(false);
            }
            finally
            {
                if (batch != null)
                {
                    batch.Close();
                    batch.Dispose();
                }
                if (tran != null)
                {
                    tran.Close();
                    tran.Dispose();
                }
            }
        }