Exemplo n.º 1
0
        public LibTableObj GetUserMenus(string userid)
        {
            LibTableObj tbobj = this.DSContext[0];

            this.DataAccess.FillTableObj(tbobj.Where(tbobj.Columns.UId + "={0}", userid));
            return(tbobj);
        }
Exemplo n.º 2
0
        public void FillTableObj(LibTableObj tableObj)
        {
            SQLBuilder sQLBuilder = new SQLBuilder(tableObj.FromDSID);

            if (tableObj.WhereObject != null)
            {
                DataTable dt = this.GetDataTable(sQLBuilder.GetSQL(tableObj.TableName, null, tableObj.WhereObject, false, false));
                tableObj.FillData(dt);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="password"></param>
        /// <returns>返回1表示登录成功,2表示已登录,3表示密码错误,0表示登录失败</returns>
        public LoginInfo Login(string userid, string password)
        {
            //SQLBuilder builder = new SQLBuilder("Account");
            //string sql = builder.GetSQL("Account", new string[] { "A.UserId,A.Password,A.PasswordKey,A.loginIP,A.LoginDT,A.IsLogin" }, builder.Where("A.UserId={0}", userid));
            //DataRow row = this.DataAccess.GetDataRow(sql);
            LibTableObj account = this.DSContext["Account"];
            LoginInfo   lginfo  = new LoginInfo();

            lginfo.HasAdminRole = false;
            this.DataAccess.FillTableObj(account.Where(account.Columns.UserId + "={0}", userid));
            dynamic row = account.FindRow(0);

            if (row != null)
            {
                if (row.IsLogin)
                {
                    //this.AddMessage(string.Format(this.GetMessageDesc("msg000000001")), LibMessageType.Prompt);
                    //return 2;
                    lginfo.loginResult = 2;
                }
                string pwd    = row.Password;
                string pwdkey = row.PasswordKey;
                lginfo.UserNm = row.UserNm;
                pwdkey        = DesCryptFactory.AESDecrypt(pwdkey, SysConstManage._pwdkeyEncrykey);
                pwd           = DesCryptFactory.DecryptString(pwd, pwdkey);
                //this.AddMessage("test", LibMessageType.Error);
                if (pwd == password)
                {
                    //sql = builder.GetUpdateSQL("Account", builder.UpdateField("IsLogin={0},loginIP={1}", true, "192.168.1.5"), builder.Where("UserId={0}", userid));
                    //int result = this.DataAccess.ExecuteNonQuery(sql);
                    //return result > 0 ? 1 : 0;
                    lginfo.loginResult = 1;
                    LibTableObj roletbobj = this.GetAuthority(userid);
                    if (roletbobj != null)
                    {
                        var exist = roletbobj.Rows.FirstOrDefault(i => i.JoleId == "001");
                        if (exist != null)
                        {
                            lginfo.HasAdminRole = true;
                        }
                    }
                }
                else
                {
                    lginfo.loginResult = 3;
                }
            }
            else
            {
                lginfo.loginResult = -1;
            }
            return(lginfo);
            //return 1;
        }
Exemplo n.º 4
0
        public string GenerateNoByprogid(string progid)
        {
            DataTable dt = GetRuleDataByProgid(progid);

            //dt.DefaultView.Sort = "RuleId,SeqNo";
            if (dt != null)
            {
                LibTableObj tbobj = new LibTableObj(dt);
                var         rows  = tbobj.Rows.Where(i => i.IsDefault && ((DataRowObj)i).DataRowState != DataRowState.Deleted).ToList();
                return(DoGenerateNo(rows));
            }
            return(string.Empty);
        }
Exemplo n.º 5
0
        ///// <summary>
        ///// 根据账户id 获取账户下的角色及权限对象。
        ///// </summary>
        ///// <param name="userid"></param>
        ///// <returns></returns>
        //public DataTable GetAuthority(string userid)
        //{
        //    //SQLBuilder sQLBuilder = new SQLBuilder("Account");
        //    LibDSContext dSContext = new LibDSContext("Account");
        //    var userRole = dSContext["UserRole"];
        //    string sql = dSContext.GetSQL("UserRole", null, dSContext.Where(userRole.Columns.UserId + "={0}", userid));
        //    return this.DataAccess.GetDataTable(sql);
        //}

        /// <summary>
        /// 根据账户id 获取账户下的角色及权限对象。
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public LibTableObj GetAuthority(string userid)
        {
            //SQLBuilder sQLBuilder = new SQLBuilder("Account");
            LibDSContext dSContext = new LibDSContext("Account");
            LibTableObj  userRole  = dSContext["UserRole"];
            //this.DataAccess.FillTableObj(userRole.Where(userRole.Columns.UserId + "={0}", userid));
            string    sql = dSContext.GetSQL("UserRole", null, dSContext.Where(userRole.Columns.UserId + "={0}", userid));
            DataTable dt  = this.DataAccess.GetDataTable(sql);

            userRole.DataTable.PrimaryKey = null;
            userRole.FillData(dt);
            return(userRole);
        }
Exemplo n.º 6
0
        public string GenerateNo(string progid, string ruleid)
        {
            DataTable dt = GetRuleDataByProgid(progid);

            //dt.DefaultView.Sort = "RuleId,SeqNo";
            if (dt != null)
            {
                LibTableObj tbobj = new LibTableObj(dt);
                var         rows  = tbobj.Rows.Where(i => i.RuleId == ruleid).OrderBy(i => new { i.RuleId, i.SeqNo }).ToList();
                return(DoGenerateNo(rows));
                //DataRow[] rows = dt.Select(string.Format("RuleId='{0}'", ruleid));
                //return DoGenerateNo(rows);
            }
            return(string.Empty);
        }
Exemplo n.º 7
0
        private string DoGenerateNo(List <dynamic> rows)
        {
            if (rows != null && rows.Count > 0)
            {
                #region 判断是否有加锁
                dynamic    firstdr = rows[0];
                DataRowObj rowobj  = (DataRowObj)firstdr;
                if (this.ExistDataLock("CodeRuleConfig", rowobj.Row))
                {
                    //该功能和规则编号,正被锁着。
                    //throw new LibExceptionBase("该功能和规则编号,正被锁着。");
                    //msg000000011       该功能和规则编号,正被锁着。
                    this.AddMessage("msg000000011", null);
                }

                #endregion
                #region 加锁,防止生成重复序列号

                this.AddDataLock("CodeRuleConfig", rowobj.Row,
                                 new DataColumn[] {
                    rowobj.Row.Table.Columns[rowobj.TableObj.Columns.ProgId],
                    rowobj.Row.Table.Columns[rowobj.TableObj.Columns.RuleId]
                }
                                 );
                #endregion
                string        currdate   = firstdr.CurrDate;
                int           currserial = firstdr.CurrSerial;
                string        module     = string.Empty;
                int           serialen   = -1;
                int           index      = 0;
                StringBuilder dateformat = new StringBuilder();
                StringBuilder format     = new StringBuilder();
                foreach (var dr in rows)
                {
                    module = dr.ModuleId;
                    switch (module)
                    {
                    case "yy":
                    case "yyyy":
                    case "MM":
                    case "dd":
                        dateformat.Append(module);
                        format.Append(module);
                        break;

                    case "prefix":
                    case "suffix":
                        format.Append(dr.FixValue);
                        break;

                    case "serial":
                        format.Append("{" + index + "}");
                        index++;
                        serialen = Convert.ToInt32(dr.SeriaLen);
                        break;
                    }
                }
                if (serialen != -1)
                {
                    currserial = DateTime.Now.ToString(dateformat.ToString()) == currdate ? (currserial + 1) : 1;
                }
                #region 更新CodeRuleConfig表的当前日期和流水号
                LibTableObj config = new LibTableObj("CodeRuleConfig", "CodeRuleConfig");
                config.FillData(new DataRow[] { rowobj.Row });
                dynamic rw = config.FindRow(0);
                rw.CurrDate   = DateTime.Now.ToString(dateformat.ToString());
                rw.CurrSerial = currserial;
                this.DataAccess.SaveChange(new LibTableObj[] { config });
                #endregion
                #region 从容器中移除锁
                RemoveDataLock("CodeRuleConfig", rowobj.Row);
                #endregion
                return(DateTime.Now.ToString(string.Format(format.ToString(), currserial.ToString().PadLeft(serialen, '0'))));
            }
            else
            {
                //msg000000012        找不到或未配置编码规则,请确认
                this.AddMessage("msg000000012", null);
            }
            return(string.Empty);
        }
Exemplo n.º 8
0
        private string DoGenerateNo(DataRow[] rows)
        {
            //DataRow[] rows = dt.Select(string.Format("RuleId='{0}'", ruleid));
            if (rows != null && rows.Length > 0)
            {
                LibTableObj config = new LibTableObj(rows[0].Table);
                config.FillData(rows);

                #region 判断是否有加锁
                if (this.ExistDataLock("CodeRuleConfig", rows[0]))
                {
                    //该功能和规则编号,正被锁着。
                    //throw new LibExceptionBase("该功能和规则编号,正被锁着。");
                    //this.AddMessage("该功能和规则编号,正被锁着。", LibMessageType.Error);
                    //msg000000011 该功能和规则编号,正被锁着。
                    this.AddMessage("msg000000011", null);
                }

                #endregion
                #region 加锁,防止生成重复序列号
                dynamic firstdr = config.FindRow(0);
                this.AddDataLock("CodeRuleConfig", rows[0], new DataColumn[] { rows[0].Table.Columns[config.Columns.ProgId], rows[0].Table.Columns[config.Columns.RuleId] });
                #endregion
                //string currdate = rows[0][config.Columns .CurrDate].ToString();
                //int currserial = Convert.ToInt32(rows[0][config.Columns .CurrSerial]);
                string currdate   = firstdr.CurrDate;
                int    currserial = firstdr.CurrSerial;
                string module     = string.Empty;
                int    serialen   = -1;
                int    index      = 0;
                //string suffix = string.Empty;
                StringBuilder dateformat = new StringBuilder();
                StringBuilder format     = new StringBuilder();
                foreach (DataRow dr in rows)
                {
                    module = dr["ModuleId"].ToString();
                    switch (module)
                    {
                    case "yy":
                    case "yyyy":
                    case "MM":
                    case "dd":
                        dateformat.Append(module);
                        format.Append(module);
                        break;

                    case "prefix":
                    case "suffix":
                        format.Append(dr["FixValue"].ToString());
                        break;

                    case "serial":
                        format.Append("{" + index + "}");
                        index++;
                        serialen = Convert.ToInt32(dr["SeriaLen"]);
                        break;
                    }
                }
                if (serialen != -1)
                {
                    currserial = DateTime.Now.ToString(dateformat.ToString()) == currdate ? (currserial + 1) : 1;
                    //format.(format.ToString(), currserial.ToString().PadLeft(serialen, '0'));
                }
                #region 更新CodeRuleConfig表的当前日期和流水号
                //SQLBuilder builder = new SQLBuilder("CodeRuleConfig");
                //string sql= builder.GetUpdateSQL("CodeRuleConfig", builder.UpdateField("CurrDate={0},CurrSerial={1}", DateTime.Now.ToString(dateformat.ToString()), currserial),
                //                                       builder.Where("ProgId={0} and RuleId={1}", rows[0]["ProgId"].ToString(), rows[0]["RuleId"].ToString()));
                //this.DataAccess.ExecuteNonQuery(sql);
                config = new LibTableObj("CodeRuleConfig", "CodeRuleConfig");
                config.FillData(new DataRow[] { rows[0] });
                dynamic rw = config.FindRow(0);
                rw.CurrDate   = DateTime.Now.ToString(dateformat.ToString());
                rw.CurrSerial = currserial;
                this.DataAccess.SaveChange(new LibTableObj[] { config });
                #endregion
                #region 从容器中移除锁
                RemoveDataLock("CodeRuleConfig", rows[0]);
                #endregion
                return(DateTime.Now.ToString(string.Format(format.ToString(), currserial.ToString().PadLeft(serialen, '0'))));
            }
            return(string.Empty);
        }