| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344 |
- using System;
- using System.IO;
- using System.Xml;
- using System.Data;
- using System.Collections;
- using System.Data.OracleClient;
- using Core.Mes.IBaseInterface;
- using Core.Mes.ServerFrameWork;
- using System.Configuration;
- using System.Collections.Specialized;
- using System.Text.RegularExpressions;
- using System.Reflection;
- using System.Threading;
- namespace Core.Mes.ServerCommon
- {
- /// <summary>
- /// Class1 的摘要说明。
- /// </summary>
- public class UserInfoManager : IComponent
- {
- string sTableSpace = "";
- static DataTable ServicesList = new DataTable();
- static Thread t_MasterConnector = null;
- public UserInfoManager()
- {
- try
- {
- sTableSpace = ServerConfig.UserTableSpace;
- if (!string.IsNullOrEmpty(sTableSpace.Trim())) sTableSpace = sTableSpace.Trim() + ".";
- }
- catch { }
- ArrayList col_names = new ArrayList() { "ServerName", "URL", "MD5_KEY", "SHA256_KEY" };
- foreach (string col_name in col_names)
- {
- if (!ServicesList.Columns.Contains(col_name))
- ServicesList.Columns.Add(col_name, typeof(string));
- }
- ServicesList.AcceptChanges();
- }
- #region " 用户登录 "
- public ReturnObject GetPurviewInfo(string userID, string passwd, string hostname, string ipaddress)
- {
- lock (this)
- {
- string err = "";
- DataRow dr = GetPurviewRow(userID, passwd, out err);
- if (err != "")
- {
- return new ReturnObject(null, err);
- }
- if (dr == null || dr["MEMO"] == null)
- return new ReturnObject(null, 10009, "用户名或密码错误!");
- UserInfo useInfo = new UserInfo();
- useInfo = SetUserInfo(dr);
- string v_CheckPwd = "";
- v_CheckPwd = ServerConfig.CheckPassword > 0 ? CheckPWDRule(passwd) : "";
- if (ServerConfig.CheckIpRule > 0 && !CheckUserIPRule(ipaddress, dr["COMPUTERIP"].ToString().Trim()))
- {
- throw new Exception("帐号被限制不能在当前计算机IP登录!");
- }
- return new ReturnObject(useInfo, 0, v_CheckPwd);
- }
- }
- private bool CheckUserIPRule(string IpAddress, string IpRule)
- {
- if (string.IsNullOrEmpty(IpRule)) return true;
- string[] ips = IpAddress.Split(new string[] { ".", @"。" }, StringSplitOptions.None);
- string[] ipR = IpRule.Split(new string[] { ";", @";" }, StringSplitOptions.None);
- for (int i = 0; i < ipR.GetLength(0); i++)
- {
- string iprs = ipR[i].Trim();
- string[] ipRules = iprs.Split(new string[] { ".", @"。" }, StringSplitOptions.None);
- int min_len = Math.Min(ipRules.GetLength(0), ips.GetLength(0));
- for (int idx = 0; idx < (min_len >= 4 ? 4 : min_len); idx++)
- {
- string ip_segment = ipRules[idx].Trim();
- string ip = ips[idx].Trim();
- if (string.IsNullOrEmpty(ip_segment) || string.IsNullOrEmpty(ip)) continue;
- //检查ip规则配置是否正确 只允许包含 [数字]、[*]、[?] 三种字符;
- Regex regex_segment = new Regex(@"^[0-9\?\*]{1,3}$");
- if (!regex_segment.IsMatch(ip_segment))
- {
- throw new Exception(string.Format("IP规则第三段配置不正确![{0}]", ip_segment));
- }
- ip_segment = ip_segment.Replace("*", @"\d*").Replace("?", @"\d?");
- ip_segment = string.Format(@"^{0}$", ip_segment);
- Regex regex_Ip = new Regex(ip_segment);
- if (!regex_Ip.IsMatch(ip))
- {
- return false;
- }
- }
- }
- return true;
- }
- public ReturnObject CheckPWD(string passwd)
- {
- string v_CheckPwd = "";
- try
- {
- v_CheckPwd = ServerConfig.CheckPassword > 0 ? CheckPWDRule(passwd) : "";
- }
- catch
- {
- }
- return new ReturnObject(null, string.IsNullOrEmpty(v_CheckPwd) ? 0 : 1, v_CheckPwd);
- }
- private string CheckPWDRule(string passwd)
- {
- string sReason = "";
- Boolean ContainLetter = false;
- Boolean ContainNumeric = false;
- Boolean ContailOthers = false;
- int len_pwd = passwd.Length;
- if (len_pwd < 6)
- {
- sReason += " 密码位数太少\n";
- }
- for (int idx = 0; idx < passwd.Length; idx++)
- {
- Char[] cp = passwd.Substring(idx, 1).ToLower().ToCharArray();
- if ((int)'a' <= (int)(cp[0]) && (int)'z' >= (int)(cp[0]))
- {
- ContainLetter = true;
- }
- else if ((int)'0' <= (int)(cp[0]) && (int)'9' >= (int)(cp[0]))
- {
- ContainNumeric = true;
- }
- else
- {
- ContailOthers = true;
- }
- }
- if (!ContailOthers && (!ContainLetter || !ContainNumeric))
- {
- sReason += " 密码不能全是字母或数字;\n";
- }
- if (!string.IsNullOrEmpty(sReason))
- {
- sReason = string.Format("{0}", sReason);
- }
- return sReason;
- }
- private DataRow GetPurviewRow(string userID, string passwd, out string err)
- {
- string sqlstr = string.Format(@"SELECT A.*, B.MEMO, C.NAME, C.BB, C.BC, B.ROLENAME, C.DEPARTMENTID, C.COMPUTERIP,
- D.DEPARTMENTNAME FROM {0}UAM_AUTHORIZATION A, {0}UAM_ROLE B, {0}UAM_USER C, {0}UAM_DEPARTMENT D
- WHERE A.USERID = C.USERID AND A.ROLEID = B.ROLEID AND C.DEPARTMENTID=D.DEPARTMENTID AND
- UPPER(A.LOGINID) = UPPER('{1}') AND UPPER(PASSWD) = '{2}'", sTableSpace, userID, PasswdSecurity(passwd));
- err = "";
- System.Data.DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out err);
- if (err != "") return null;
- if (ds.Tables[0].Rows.Count == 0)
- {
- err = "用户名或密码错误!"; return null;
- }
- System.Data.DataRow dr = ds.Tables[0].Rows[0];
- return dr;
- }
- private XmlDocument ReadXmlDoc(string fileName)
- {
- XmlDocument doc = new XmlDocument();
- try
- {
- doc.Load(@"CA\" + fileName);
- return doc;
- }
- catch
- {
- return null;
- }
- }
- private UserInfo SetUserInfo(DataRow dr)
- {
- UserInfo info;
- try
- {
- info = new UserInfo();
- info.LoginID = dr["LOGINID"].ToString();
- info.UserID = dr["USERID"].ToString();
- info.UserDepID = this.GetNoNullStr(dr["DEPARTMENTID"]);
- info.UserDepName = this.GetNoNullStr(dr["DEPARTMENTNAME"]);
- info.UserRoleID = this.GetNoNullStr(dr["ROLEID"]);
- info.UserRoleName = this.GetNoNullStr(dr["ROLENAME"]);
- if (dr["NAME"] == null || dr["NAME"] == DBNull.Value)
- info.UserName = "";
- else
- info.UserName = dr["NAME"].ToString();
- if (dr["BB"] == null || dr["BB"] == DBNull.Value)
- info.UserBb = "300305";
- else
- info.UserBb = dr["BB"].ToString();
- if (dr["BC"] == null || dr["BC"] == DBNull.Value)
- {
- info.UserRz = "1";
- info.UserBc = "300205";
- }
- else
- {
- info.UserRz = dr["BC"].ToString();
- info.UserBc = this.GetCurrBc(dr["BC"].ToString());
- }
- return info;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- private string GetNoNullStr(object obj)
- {
- if (obj == null || obj == DBNull.Value)
- {
- return "";
- }
- return obj.ToString();
- }
- #region " 登录退出记录 "
- private void RecodeLoginInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
- string vUSERIPADRESS, string vIsLogin)
- {
- OracleParameter[] param = new OracleParameter[5];
- object[] values = new object[5];
- ArrayList outvalues = new ArrayList();
- param[0] = new System.Data.OracleClient.OracleParameter();
- param[0].ParameterName = "vLoginID";
- param[0].DbType = System.Data.DbType.String;
- param[0].Size = 20;
- param[1] = new System.Data.OracleClient.OracleParameter();
- param[1].ParameterName = "vUserName";
- param[1].DbType = System.Data.DbType.String;
- param[1].Size = 20;
- param[2] = new System.Data.OracleClient.OracleParameter();
- param[2].ParameterName = "vUSERHOSTNAME";
- param[2].DbType = System.Data.DbType.String;
- param[2].Size = 100;
- param[3] = new System.Data.OracleClient.OracleParameter();
- param[3].ParameterName = "vUSERIPADRESS";
- param[3].DbType = System.Data.DbType.String;
- param[3].Size = 20;
- param[4] = new System.Data.OracleClient.OracleParameter();
- param[4].ParameterName = "vIsLogin";
- param[4].DbType = System.Data.DbType.String;
- param[4].Size = 20;
- values[0] = vLoginID;
- values[1] = vUserName;
- values[2] = vUSERHOSTNAME;
- values[3] = vUSERIPADRESS;
- values[4] = vIsLogin;
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery("pub_useroperatemanager.pPub_Logininfo_Add", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
- }
- catch { }
- }
- public ReturnObject RecodeExitInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
- string vUSERIPADRESS)
- {
- RecodeLoginInfo(vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, "退出");
- return new ReturnObject();
- }
- public ReturnObject RecodeOperateInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
- string vUSERIPADRESS, string vOPERATETYPE, string vOPERATEOBJECT, string vREMARK)
- {
- OracleParameter[] param = new OracleParameter[7];
- object[] values = new object[7];
- ArrayList outvalues = new ArrayList();
- param[0] = new System.Data.OracleClient.OracleParameter();
- param[0].ParameterName = "vLoginID";
- param[0].DbType = System.Data.DbType.String;
- param[0].Size = 20;
- param[1] = new System.Data.OracleClient.OracleParameter();
- param[1].ParameterName = "vUserName";
- param[1].DbType = System.Data.DbType.String;
- param[1].Size = 20;
- param[2] = new System.Data.OracleClient.OracleParameter();
- param[2].ParameterName = "vUSERHOSTNAME";
- param[2].DbType = System.Data.DbType.String;
- param[2].Size = 100;
- param[3] = new System.Data.OracleClient.OracleParameter();
- param[3].ParameterName = "vUSERIPADRESS";
- param[3].DbType = System.Data.DbType.String;
- param[3].Size = 20;
- param[4] = new System.Data.OracleClient.OracleParameter();
- param[4].ParameterName = "vOPERATETYPE";
- param[4].DbType = System.Data.DbType.String;
- param[4].Size = 50;
- param[5] = new System.Data.OracleClient.OracleParameter();
- param[5].ParameterName = "vOPERATEOBJECT";
- param[5].DbType = System.Data.DbType.String;
- param[5].Size = 100;
- param[6] = new System.Data.OracleClient.OracleParameter();
- param[6].ParameterName = "vREMARK";
- param[6].DbType = System.Data.DbType.String;
- param[6].Size = 200;
- values[0] = vLoginID;
- values[1] = vUserName;
- values[2] = vUSERHOSTNAME;
- values[3] = vUSERIPADRESS;
- values[4] = vOPERATETYPE;
- values[5] = vOPERATEOBJECT;
- values[6] = vREMARK;
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery("pub_useroperatemanager.pPub_UserOperate_Add", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
- }
- catch { }
- return new ReturnObject();
- }
- #endregion
- #region " 班次、班别 "
- private string GetCurrBc(string bc)
- {
- System.DateTime now = System.DateTime.Now;
- switch (bc.Trim())
- {
- case "3": //三班制
- //早
- if (now >= new DateTime(now.Year, now.Month, now.Day, 8, 0, 0) &&
- now < new DateTime(now.Year, now.Month, now.Day, 16, 0, 0))
- return "300201";
- //中
- if (now >= new DateTime(now.Year, now.Month, now.Day, 16, 0, 0) &&
- now <= new DateTime(now.Year, now.Month, now.Day, 23, 59, 59))
- return "300202";
- //晚
- if (now >= new DateTime(now.Year, now.Month, now.Day, 0, 0, 0) &&
- now < new DateTime(now.Year, now.Month, now.Day, 8, 0, 0))
- return "300203";
- break;
- case "2": //两班制
- //早
- if (now >= new DateTime(now.Year, now.Month, now.Day, 8, 0, 0) &&
- now < new DateTime(now.Year, now.Month, now.Day, 20, 0, 0))
- return "300201";
- else
- return "300203";
- }
- return "300205";
- }
- public ReturnObject GetBz(string strWhere)
- {
- string sqlstr = string.Format("select ID_ BASECODE, NAME_ BASENAME from scm_base_info where SORT_CODE = '{0}' order by 1", strWhere);
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject SetBz(string userID, string Bc, string Bb)
- {
- string sqlstr = string.Format(" update UAM_USER set BC = '{0}', BB = '{1}' where USERID = '{2}' ",
- Bc, Bb, userID);
- string strOut = "";
- try
- {
- int i = this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(i, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- #endregion
- private string PasswdSecurity(string pwd)
- {
- return pwd.ToUpper();
- }
- public ReturnObject GetServerList()
- {
- if (!File.Exists("MesServer.xml"))
- {
- return new ReturnObject(null, "未找到服务配置文件!");
- }
- DataSet ds = new DataSet();
- ds.ReadXml("MesServer.xml");
- if (ds == null || ds.Tables.Count == 0)
- return new ReturnObject(null, "配置文件设置错误!");
- ds.AcceptChanges();
- lock (ServicesList)
- {
- foreach (DataRow dr in ds.Tables[0].Rows)
- {
- string asmFile = dr["AssemblyName"].ToString() + ".dll";
- bool ExistServer = File.Exists(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), asmFile));
- string sn = dr["ServerName"].ToString();
- string url = dr["url"].ToString();
- DataRow[] drs = ServicesList.Select(string.Format("ServerName = '{0}'", sn));
- if (drs.GetLength(0) == 0 && ExistServer)
- {
- DataRow ndr = ServicesList.NewRow();
- ndr["ServerName"] = sn;
- ndr["URL"] = url;
- if (HTServiceKeys.ContainsKey(sn))
- {
- ndr["MD5_KEY"] = ((ArrayList)(this.HTServiceKeys[sn]))[0].ToString();
- ndr["SHA256_KEY"] = ((ArrayList)(this.HTServiceKeys[sn]))[1].ToString();
- ServicesList.Rows.Add(ndr);
- }
- }
- else if (drs.GetLength(0) > 0 && !ExistServer)
- {
- foreach (DataRow cdr in drs)
- {
- cdr.Delete();
- }
- }
- }
- ServicesList.TableName = "ServiceList";
- ServicesList.AcceptChanges();
- }
- DataTable dt_config = new DataTable("CONFIG");
- dt_config.Columns.Add("NAME", typeof(string));
- dt_config.Columns.Add("VALUE", typeof(object));
- dt_config.Rows.Add("PriorityFactor", ServerConfig.PriorityFactor);
- ds = new DataSet();
- ds.Tables.Add(ServicesList.Copy());
- ds.Tables.Add(dt_config);
- ds.AcceptChanges();
- return new ReturnObject(ds);
- }
- public ReturnObject CheckAlive(DateTime _dt)
- {
- return new ReturnObject((object)(new ArrayList() { ServerConfig.MAGIC_ID, _dt }), 1314, "I'AM ALIVE");
- }
- public ReturnObject ControlIt(string ControlService)
- {
- try
- {
- UriBuilder ub = new UriBuilder(ControlService);
- if (ub.Host == "127.0.0.1") return new ReturnObject(null, 0, "不接受本地主机IP");
- if (!string.IsNullOrEmpty(ServerConfig.MasterServer))
- {
- if (ServerConfig.MasterServer != ControlService) return new ReturnObject(ServerConfig.MasterServer, 1314, "已受控!");
- if (t_MasterConnector == null)
- {
- t_MasterConnector = new Thread(CheckMaster);
- t_MasterConnector.Start();
- }
- }
- else
- {
- ServerConfig.MasterServer = ControlService;
- if (t_MasterConnector != null)
- {
- t_MasterConnector.Abort();
- }
- t_MasterConnector = new Thread(CheckMaster);
- t_MasterConnector.Start();
- }
- return new ReturnObject(ServerConfig.MasterServer, 1314, "控制成功!");
- }
- catch (Exception ex)
- {
- return new ReturnObject(ServerConfig.MasterServer, 1, ex.Message);
- }
- }
- ICommon MasterChecker = null;
- private void CheckMaster()
- {
- int LostCommander = 0;
- do
- {
- if (string.IsNullOrEmpty(ServerConfig.MasterServer)) Thread.CurrentThread.Abort();
- if (MasterChecker == null)
- {
- MasterChecker = (ICommon)Activator.GetObject(typeof(ICommon), ServerConfig.MasterServer);
- }
- DateTime dt = DateTime.Now;
- CallingMessage par = new CallingMessage();
- par.ServerName = ServerConfig.MasterServer;
- par.ClassName = "Core.Mes.ServerCommon.UserInfoManager";
- par.MethodName = "CheckAlive";
- par.args = new object[] { dt };
- par.ServerType = MesServerType.IComponentContainServer;
- par.TransType = NetWorkTransType.Remoting;
- par.visitType = VisitType.Method;
- try
- {
- ReturnObject rtn = MasterChecker.MethodHandler(par, new ValidateInfo());
- if (rtn.ErrCode == 1314 && rtn.RealObject != null && (DateTime)(((ArrayList)rtn.RealObject)[1]) == dt
- && (int)(((ArrayList)rtn.RealObject)[0]) != ServerConfig.MAGIC_ID)
- {
- LostCommander = 0;
- }
- else if (LostCommander >= 3)
- {
- ServerConfig.MasterServer = "";
- Thread.CurrentThread.Abort();
- break;
- }
- else
- {
- LostCommander += 1;
- }
- }
- catch
- {
- if (LostCommander >= 3)
- {
- ServerConfig.MasterServer = "";
- break;
- }
- else
- {
- LostCommander += 1;
- }
- }
- Thread.Sleep(LostCommander == 0 ? 5000 : 1000);
- } while (!string.IsNullOrEmpty(ServerConfig.MasterServer));
- }
- public ReturnObject GetServerConfig()
- {
- DataSet ds = new DataSet();
- DataTable dt = new DataTable();
- dt.Columns.AddRange(new DataColumn[] { new DataColumn("KEY_NAME", typeof(string)),
- new DataColumn("KEY_VALUE", typeof(string)) });
- dt.TableName = "CONFIG";
- dt.PrimaryKey = new DataColumn[] { dt.Columns["KEY_NAME"] };
- dt.AcceptChanges();
- NameValueCollection appSettings = ConfigurationManager.AppSettings;
- IEnumerator appSettingsEnum = appSettings.Keys.GetEnumerator();
- int i = 0;
- while (appSettingsEnum.MoveNext())
- {
- string key = appSettings.Keys[i];
- string value = appSettings[key];
- dt.Rows.Add(new object[] { key, value });
- i += 1;
- }
- dt.AcceptChanges();
- if (dt.Rows.Count > 0)
- {
- ds.Tables.Add(dt);
- }
- return new ReturnObject((object)ds);
- }
- public ReturnObject ChangePasswd(string loginID, string passwd, string passwdNew)
- {
- string sqlstr = string.Format(" update UAM_AUTHORIZATION set passwd = '{2}' where loginid = '{0}' and passwd = '{1}' ",
- loginID, passwd, passwdNew);
- string strOut = "";
- try
- {
- int i = this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(i, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- #endregion
- #region " 消息 "
- public ReturnObject HeartBeat()
- {
- return new ReturnObject();
- }
- public ReturnObject GetUserMessage()
- {
- string sqlstr = "select MESSAGE, PROMULGATOR,EDITTIME, PRI_ from PUB_USERMESSAGE where ISVALID = '0' and > sysdate order by edittime desc ";
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject GetMessage(string strWhere)
- {
- string sqlstr = string.Format("select * from pub_message where GETFLAG <> '1' and SENDPERSONCODE = '{0}' ", strWhere);
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject SendMessage(string vSendPerson, string vSendPersonCode, string vInfo, string vGetPerson)
- {
- string strOut = "";
- OracleParameter[] param = new OracleParameter[7];
- object[] values = new object[7];
- ArrayList outvalues = new ArrayList();
- strOut = "";
- param[0] = new OracleParameter();
- param[0].ParameterName = "vID";
- param[0].Direction = System.Data.ParameterDirection.Input;
- param[0].DbType = System.Data.DbType.String;
- param[0].Size = 20;
- param[1] = new OracleParameter();
- param[1].ParameterName = "vSendPerson";
- param[1].Direction = System.Data.ParameterDirection.Input;
- param[1].DbType = System.Data.DbType.String;
- param[1].Size = 20;
- param[2] = new OracleParameter();
- param[2].ParameterName = "vSendPersonCode";
- param[2].Direction = System.Data.ParameterDirection.Input;
- param[2].DbType = System.Data.DbType.String;
- param[2].Size = 20;
- param[3] = new OracleParameter();
- param[3].ParameterName = "vInfo";
- param[3].Direction = System.Data.ParameterDirection.Input;
- param[3].DbType = System.Data.DbType.String;
- param[3].Size = 200;
- param[4] = new OracleParameter();
- param[4].ParameterName = "vGetPerson";
- param[4].Direction = System.Data.ParameterDirection.Input;
- param[4].DbType = System.Data.DbType.String;
- param[4].Size = 20;
- param[5] = new System.Data.OracleClient.OracleParameter();
- param[5].ParameterName = "vRESULT";
- param[5].Direction = System.Data.ParameterDirection.Output;
- param[5].DbType = System.Data.DbType.Int16;
- param[6] = new System.Data.OracleClient.OracleParameter();
- param[6].ParameterName = "vMESSAGE";
- param[6].Direction = System.Data.ParameterDirection.Output;
- param[6].DbType = System.Data.DbType.String;
- param[6].Size = 200;
- values[0] = System.Guid.NewGuid().ToString();
- values[1] = vSendPerson;
- values[2] = vSendPersonCode;
- values[3] = vInfo;
- values[4] = vGetPerson;
- values[5] = 0;
- values[6] = "";
- try
- {
- this.DBManager.ExecuteNonQuery("pub_MessageManager.pPub_Message_Send", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
- return new ReturnObject(outvalues, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(-1, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject AffirmMessage(string vID)
- {
- string strOut = "";
- OracleParameter[] param = new OracleParameter[3];
- object[] values = new object[3];
- ArrayList outvalues = new ArrayList();
- strOut = "";
- param[0] = new OracleParameter();
- param[0].ParameterName = "vID";
- param[0].Direction = System.Data.ParameterDirection.Input;
- param[0].DbType = System.Data.DbType.String;
- param[0].Size = 20;
- param[1] = new System.Data.OracleClient.OracleParameter();
- param[1].ParameterName = "vRESULT";
- param[1].Direction = System.Data.ParameterDirection.Output;
- param[1].DbType = System.Data.DbType.Int16;
- param[2] = new System.Data.OracleClient.OracleParameter();
- param[2].ParameterName = "vMESSAGE";
- param[2].Direction = System.Data.ParameterDirection.Output;
- param[2].DbType = System.Data.DbType.String;
- param[2].Size = 200;
- values[0] = vID;
- values[1] = 0;
- values[2] = "";
- try
- {
- this.DBManager.ExecuteNonQuery("pub_MessageManager.pPub_Message_Affirm", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
- return new ReturnObject(outvalues, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(-1, ex.Message + "\n" + strOut);
- }
- }
- #endregion
- #region " override "
- public override int maxValue
- {
- get
- {
- return 30;
- }
- }
- public override int minValue
- {
- get
- {
- return 20;
- }
- }
- #endregion
- #region 权限设置
- public ReturnObject selectPT_MenuInfo()
- {
- string sqlstr = string.Format("SELECT ID_,CAPTION,PARENTID,XH FROM {0}PT_MENUINFO ORDER BY PARENTID,XH,REMARK", sTableSpace);
- string err = "";
- DataSet dset = DBManager.ExecuteQuery(sqlstr, out err);
- return new ReturnObject(dset, err);
- }
- public ReturnObject updatePT_MenuPos(DataTable dt)
- {
- try
- {
- string err = "";
- bool success = DBManager.UpdateTable(dt, string.Format("SELECT ID_,CAPTION,PARENTID,XH FROM {0}PT_MENUINFO WHERE XH IS NOT NULL", sTableSpace), out err);
- return new ReturnObject(null, err);
- }
- catch (Exception ee)
- {
- return new ReturnObject(null, ee.Message);
- }
- }
- public ReturnObject GetPt_menuinfo(string strWhere)
- {
- string sqlstr = string.Format("SELECT * FROM {0}PT_MENUINFO WHERE 1=1 {1} ORDER BY CATEGORY, CAPTION", sTableSpace, strWhere);
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject InsertPt_menuinfo(string vkey, string vCategory, string vCaption, string vRemark, string vType)
- {
- string strOut = "";
- DataSet ds = null;
- string strID = "";
- object obj = null;
- int iCount = 0;
- string sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_MENUINFO WHERE KEY_ = '{1}'", sTableSpace, vkey);
- try
- {
- ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- obj = ds.Tables[0].Rows[0][0];
- if (obj == null || obj == DBNull.Value)
- {
- iCount = 0;
- }
- else
- {
- iCount = Convert.ToInt32(Convert.ToInt32(obj));
- }
- if (iCount > 0)
- {
- return new ReturnObject(null, "键值重复!请重新输入!");
- }
- sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_MENUINFO ", sTableSpace);
- try
- {
- ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- obj = ds.Tables[0].Rows[0][0];
- if (obj == null || obj == DBNull.Value)
- {
- strID = "0";
- }
- else
- {
- strID = Convert.ToString(Convert.ToInt32(obj) + 1);
- }
- sqlstr = string.Format("INSERT INTO {0}PT_MENUINFO (ID_, KEY_, CATEGORY, CAPTION, REMARK, TYPE) "
- + " VALUES "
- + " ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}') ", sTableSpace, strID, vkey, vCategory, vCaption, vRemark, vType);
- strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(strID, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject UpdatePt_menuinfo(string vID, string vkey, string vCategory, string vCaption, string vRemark, string vType)
- {
- string sqlstr = string.Format("UPDATE {0}PT_MENUINFO SET KEY_ = '{1}', CATEGORY = '{2}', "
- + " CAPTION = '{3}', REMARK = '{4}', TYPE='{5}' WHERE ID_ = '{6}' ",
- sTableSpace, vkey, vCategory, vCaption, vRemark, vType, vID);
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(null, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject DeletePt_menuinfo(string vID)
- {
- string sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_USERMENUINFO WHERE MENUID = '{1}' ", sTableSpace, vID);
- string strOut = "";
- try
- {
- DataSet dset = DBManager.ExecuteQuery(sqlstr, out strOut);
- if (int.Parse(dset.Tables[0].Rows[0][0].ToString()) > 0)
- return new ReturnObject(null, "该菜单已被配置到角色菜单中去,请先在角色菜单中删除!");
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_MENUINFO WHERE PARENTID = '{1}' ", sTableSpace, vID);
- strOut = "";
- try
- {
- DataSet dset = DBManager.ExecuteQuery(sqlstr, out strOut);
- if (int.Parse(dset.Tables[0].Rows[0][0].ToString()) > 0)
- return new ReturnObject(null, "该菜单其下还有子菜单,不可直接删除!");
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- sqlstr = string.Format("DELETE {0}PT_MENUINFO WHERE ID_ = '{1}' ", sTableSpace, vID);
- strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE MENUID = '{1}' ", sTableSpace, vID);
- strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(null, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject PlastPt_menuinfo(string oldRole, string newRole)
- {
- string sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE ROLEID = '{1}' ", sTableSpace, newRole);
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_USERMENUINFO ", sTableSpace);
- int iCount = 0;
- DataSet ds = null;
- try
- {
- ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- object obj = ds.Tables[0].Rows[0][0];
- if (obj == null || obj == DBNull.Value)
- {
- iCount = 0;
- }
- else
- {
- iCount = Convert.ToInt32(obj);
- }
- sqlstr = string.Format("SELECT * FROM {0}PT_USERMENUINFO WHERE ROLEID = '{1}'", sTableSpace, oldRole);
- try
- {
- ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
- {
- iCount = iCount + 1;
- sqlstr = string.Format("INSERT INTO {0}PT_USERMENUINFO (ID_, ROLEID, MENUID, SETINFO) "
- + " VALUES "
- + " ('{1}', '{2}', '{3}', '{4}' ) ", sTableSpace, Convert.ToString(iCount),
- newRole, ds.Tables[0].Rows[i]["MENUID"].ToString(),
- ds.Tables[0].Rows[i]["SETINFO"].ToString());
- strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- return new ReturnObject(null);
- }
- public ReturnObject SavePt_usermenuinfo(string vRole, ArrayList arMenu, ArrayList arSet)
- {
- string sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE ROLEID = '{1}' ", sTableSpace, vRole);
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_USERMENUINFO ", sTableSpace);
- int iCount = 0;
- DataSet ds = null;
- try
- {
- ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- object obj = ds.Tables[0].Rows[0][0];
- if (obj == null || obj == DBNull.Value)
- {
- iCount = 0;
- }
- else
- {
- iCount = Convert.ToInt32(obj);
- }
- for (int i = 0; i < arMenu.Count; i++)
- {
- iCount = iCount + 1;
- sqlstr = string.Format("INSERT INTO {0}PT_USERMENUINFO (ID_, ROLEID, MENUID, SETINFO) "
- + " VALUES "
- + " ('{1}', '{2}', '{3}', '{4}' ) ", sTableSpace, Convert.ToString(iCount),
- vRole, arMenu[i].ToString(), arSet[i].ToString());
- strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- return new ReturnObject(null, "");
- }
- public ReturnObject GetUserRolePairs()
- {
- try
- {
- string err = "";
- string sql = "SELECT U.LOGINID, U.ROLEID FROM UAM_AUTHORIZATION U ORDER BY U.LOGINID";
- DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- return new ReturnObject(ds);
- }
- return new ReturnObject(null, err);
- }
- catch (System.Exception ex)
- {
- return new ReturnObject(null, ex.ToString());
- }
- }
- public ReturnObject GetRoleMenuPairs(string RoleID)
- {
- try
- {
- if (RoleID.Trim() == "") return new ReturnObject(null, "");
- string err = "";
- string sql = string.Format(@"SELECT T.ROLEID, T.MENUID, T.SETINFO, M.KEY_, M.CATEGORY, M.CAPTION, M.REMARK
- FROM {0}PT_USERMENUINFO T
- LEFT JOIN {0}PT_MENUINFO M
- ON T.MENUID = M.ID_
- Where T.ROLEID = '{1}'", sTableSpace, RoleID.Trim());
- DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- return new ReturnObject(ds);
- }
- return new ReturnObject(null, err);
- }
- catch (System.Exception ex)
- {
- return new ReturnObject(null, ex.ToString());
- }
- }
- public ReturnObject GetUser_Uam_Role(string DptID)
- {
- try
- {
- string err = "";
- string sql = string.Format("SELECT ROLEID, ROLENAME FROM {0}UAM_ROLE WHERE DEPARTMENTID IN({1}) ORDER BY ROLENAME ", sTableSpace, DptID);
- DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- return new ReturnObject(ds);
- }
- return new ReturnObject(null, err);
- }
- catch (System.Exception ex)
- {
- return new ReturnObject(null, ex.ToString());
- }
- }
- public ReturnObject GetUam_role()
- {
- string sqlstr = "SELECT ROLEID, ROLENAME FROM UAM_ROLE ORDER BY ROLENAME ";
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- if (ds != null && ds.Tables[0].Rows.Count > 0)
- {
- return new ReturnObject(ds, strOut);
- }
- else
- {
- return new ReturnObject(null, strOut);
- }
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject GetPurviewTree(string strWhere)
- {
- string sqlstr = string.Format("SELECT ID_, MENUID, (SELECT CAPTION FROM {0}PT_MENUINFO WHERE ID_ = MENUID) MENUNAME, "
- + " SETINFO FROM {0}PT_USERMENUINFO WHERE 1=1 {1} ORDER BY SETINFO ", sTableSpace, strWhere);
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject GetBuildMenuInfo(string strWhere)
- {
- string sqlstr = string.Format("SELECT C.KEY_, C.CATEGORY, C.CAPTION, C.TYPE,B.SETINFO "
- + " FROM {0}UAM_AUTHORIZATION A, {0}PT_USERMENUINFO B, {0}PT_MENUINFO C "
- + " WHERE LOGINID = '{1}' AND A.ROLEID = B.ROLEID AND B.MENUID = C.ID_ ORDER BY B.SETINFO ", sTableSpace, strWhere);
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
- return new ReturnObject(ds, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
- }
- }
- #endregion
- #region "系统监听"
- public ReturnObject MesSystemListener()
- {
- string sqlstr = "select sysdate from dual";
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(null, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- public ReturnObject RecordUserEvent(string vLoginID, string vUserName, string vUSERHOSTNAME,
- string vUSERIPADRESS, string vOPerateType, string vControlTYPE, string vOPERATEOBJECT, string vFormName, string vClassName, string vREMARK)
- {
- try
- {
- DateTime dt = System.DateTime.Now;
- CoreWriteLogFile.WriteLog(dt, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
- Insert_UserEventsRec(dt, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
- }
- catch { }
- return new ReturnObject();
- }
- public ReturnObject Insert_UserEventsRec(DateTime dt, string vLoginID, string vUserName, string vUSERHOSTNAME, string vUSERIPADRESS, string vOPerateType,
- string vControlTYPE, string vOPERATEOBJECT, string vFormName, string vClassName, string vREMARK)
- {
- string sqlstr = string.Format("INSERT INTO {0}PUB_USEREVENTS (LOGINID, USERNAME, USERHOSTNAME, USERIPADRESS, OPERATETIME, OPERATETYPE, CONTROLTYPE, OPERATEOBJECT, FORMNAME, CLASSNAME, REMARK) "
- + " VALUES ('{1}', '{2}', '{3}', '{4}', TO_TIMESTAMP('{5}', 'yyyy-mm-dd hh24:mi:ss.ff'), '{6}', '{7}', '{8}', '{9}', '{10}', '{11}') ",
- sTableSpace, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, dt.ToString("yyyy-MM-dd HH:mm:ss.fff"),
- vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
- string strOut = "";
- try
- {
- this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
- return new ReturnObject(null, 0, strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, -1, ex.Message + "\n" + strOut);
- }
- }
- #endregion
- public ReturnObject getDBSrvTime()
- {
- string strOut = "";
- try
- {
- DataSet ds = this.DBManager.ExecuteQuery("SELECT SYSDATE FROM DUAL", out strOut);
- return new ReturnObject(ds.Tables[0].Rows[0][0], strOut);
- }
- catch (Exception ex)
- {
- return new ReturnObject(null, ex.Message + "\n" + strOut);
- }
- }
- }
- }
|