/// <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; }
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); }
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); }