cdb23717d91c30c81cf1bf82e234ea8c164109cc.svn-base 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344
  1. using System;
  2. using System.IO;
  3. using System.Xml;
  4. using System.Data;
  5. using System.Collections;
  6. using System.Data.OracleClient;
  7. using Core.Mes.IBaseInterface;
  8. using Core.Mes.ServerFrameWork;
  9. using System.Configuration;
  10. using System.Collections.Specialized;
  11. using System.Text.RegularExpressions;
  12. using System.Reflection;
  13. using System.Threading;
  14. namespace Core.Mes.ServerCommon
  15. {
  16. /// <summary>
  17. /// Class1 的摘要说明。
  18. /// </summary>
  19. public class UserInfoManager : IComponent
  20. {
  21. string sTableSpace = "";
  22. static DataTable ServicesList = new DataTable();
  23. static Thread t_MasterConnector = null;
  24. public UserInfoManager()
  25. {
  26. try
  27. {
  28. sTableSpace = ServerConfig.UserTableSpace;
  29. if (!string.IsNullOrEmpty(sTableSpace.Trim())) sTableSpace = sTableSpace.Trim() + ".";
  30. }
  31. catch { }
  32. ArrayList col_names = new ArrayList() { "ServerName", "URL", "MD5_KEY", "SHA256_KEY" };
  33. foreach (string col_name in col_names)
  34. {
  35. if (!ServicesList.Columns.Contains(col_name))
  36. ServicesList.Columns.Add(col_name, typeof(string));
  37. }
  38. ServicesList.AcceptChanges();
  39. }
  40. #region " 用户登录 "
  41. public ReturnObject GetPurviewInfo(string userID, string passwd, string hostname, string ipaddress)
  42. {
  43. lock (this)
  44. {
  45. string err = "";
  46. DataRow dr = GetPurviewRow(userID, passwd, out err);
  47. if (err != "")
  48. {
  49. return new ReturnObject(null, err);
  50. }
  51. if (dr == null || dr["MEMO"] == null)
  52. return new ReturnObject(null, 10009, "用户名或密码错误!");
  53. UserInfo useInfo = new UserInfo();
  54. useInfo = SetUserInfo(dr);
  55. string v_CheckPwd = "";
  56. v_CheckPwd = ServerConfig.CheckPassword > 0 ? CheckPWDRule(passwd) : "";
  57. if (ServerConfig.CheckIpRule > 0 && !CheckUserIPRule(ipaddress, dr["COMPUTERIP"].ToString().Trim()))
  58. {
  59. throw new Exception("帐号被限制不能在当前计算机IP登录!");
  60. }
  61. return new ReturnObject(useInfo, 0, v_CheckPwd);
  62. }
  63. }
  64. private bool CheckUserIPRule(string IpAddress, string IpRule)
  65. {
  66. if (string.IsNullOrEmpty(IpRule)) return true;
  67. string[] ips = IpAddress.Split(new string[] { ".", @"。" }, StringSplitOptions.None);
  68. string[] ipR = IpRule.Split(new string[] { ";", @";" }, StringSplitOptions.None);
  69. for (int i = 0; i < ipR.GetLength(0); i++)
  70. {
  71. string iprs = ipR[i].Trim();
  72. string[] ipRules = iprs.Split(new string[] { ".", @"。" }, StringSplitOptions.None);
  73. int min_len = Math.Min(ipRules.GetLength(0), ips.GetLength(0));
  74. for (int idx = 0; idx < (min_len >= 4 ? 4 : min_len); idx++)
  75. {
  76. string ip_segment = ipRules[idx].Trim();
  77. string ip = ips[idx].Trim();
  78. if (string.IsNullOrEmpty(ip_segment) || string.IsNullOrEmpty(ip)) continue;
  79. //检查ip规则配置是否正确 只允许包含 [数字]、[*]、[?] 三种字符;
  80. Regex regex_segment = new Regex(@"^[0-9\?\*]{1,3}$");
  81. if (!regex_segment.IsMatch(ip_segment))
  82. {
  83. throw new Exception(string.Format("IP规则第三段配置不正确![{0}]", ip_segment));
  84. }
  85. ip_segment = ip_segment.Replace("*", @"\d*").Replace("?", @"\d?");
  86. ip_segment = string.Format(@"^{0}$", ip_segment);
  87. Regex regex_Ip = new Regex(ip_segment);
  88. if (!regex_Ip.IsMatch(ip))
  89. {
  90. return false;
  91. }
  92. }
  93. }
  94. return true;
  95. }
  96. public ReturnObject CheckPWD(string passwd)
  97. {
  98. string v_CheckPwd = "";
  99. try
  100. {
  101. v_CheckPwd = ServerConfig.CheckPassword > 0 ? CheckPWDRule(passwd) : "";
  102. }
  103. catch
  104. {
  105. }
  106. return new ReturnObject(null, string.IsNullOrEmpty(v_CheckPwd) ? 0 : 1, v_CheckPwd);
  107. }
  108. private string CheckPWDRule(string passwd)
  109. {
  110. string sReason = "";
  111. Boolean ContainLetter = false;
  112. Boolean ContainNumeric = false;
  113. Boolean ContailOthers = false;
  114. int len_pwd = passwd.Length;
  115. if (len_pwd < 6)
  116. {
  117. sReason += " 密码位数太少\n";
  118. }
  119. for (int idx = 0; idx < passwd.Length; idx++)
  120. {
  121. Char[] cp = passwd.Substring(idx, 1).ToLower().ToCharArray();
  122. if ((int)'a' <= (int)(cp[0]) && (int)'z' >= (int)(cp[0]))
  123. {
  124. ContainLetter = true;
  125. }
  126. else if ((int)'0' <= (int)(cp[0]) && (int)'9' >= (int)(cp[0]))
  127. {
  128. ContainNumeric = true;
  129. }
  130. else
  131. {
  132. ContailOthers = true;
  133. }
  134. }
  135. if (!ContailOthers && (!ContainLetter || !ContainNumeric))
  136. {
  137. sReason += " 密码不能全是字母或数字;\n";
  138. }
  139. if (!string.IsNullOrEmpty(sReason))
  140. {
  141. sReason = string.Format("{0}", sReason);
  142. }
  143. return sReason;
  144. }
  145. private DataRow GetPurviewRow(string userID, string passwd, out string err)
  146. {
  147. string sqlstr = string.Format(@"SELECT A.*, B.MEMO, C.NAME, C.BB, C.BC, B.ROLENAME, C.DEPARTMENTID, C.COMPUTERIP,
  148. D.DEPARTMENTNAME FROM {0}UAM_AUTHORIZATION A, {0}UAM_ROLE B, {0}UAM_USER C, {0}UAM_DEPARTMENT D
  149. WHERE A.USERID = C.USERID AND A.ROLEID = B.ROLEID AND C.DEPARTMENTID=D.DEPARTMENTID AND
  150. UPPER(A.LOGINID) = UPPER('{1}') AND UPPER(PASSWD) = '{2}'", sTableSpace, userID, PasswdSecurity(passwd));
  151. err = "";
  152. System.Data.DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out err);
  153. if (err != "") return null;
  154. if (ds.Tables[0].Rows.Count == 0)
  155. {
  156. err = "用户名或密码错误!"; return null;
  157. }
  158. System.Data.DataRow dr = ds.Tables[0].Rows[0];
  159. return dr;
  160. }
  161. private XmlDocument ReadXmlDoc(string fileName)
  162. {
  163. XmlDocument doc = new XmlDocument();
  164. try
  165. {
  166. doc.Load(@"CA\" + fileName);
  167. return doc;
  168. }
  169. catch
  170. {
  171. return null;
  172. }
  173. }
  174. private UserInfo SetUserInfo(DataRow dr)
  175. {
  176. UserInfo info;
  177. try
  178. {
  179. info = new UserInfo();
  180. info.LoginID = dr["LOGINID"].ToString();
  181. info.UserID = dr["USERID"].ToString();
  182. info.UserDepID = this.GetNoNullStr(dr["DEPARTMENTID"]);
  183. info.UserDepName = this.GetNoNullStr(dr["DEPARTMENTNAME"]);
  184. info.UserRoleID = this.GetNoNullStr(dr["ROLEID"]);
  185. info.UserRoleName = this.GetNoNullStr(dr["ROLENAME"]);
  186. if (dr["NAME"] == null || dr["NAME"] == DBNull.Value)
  187. info.UserName = "";
  188. else
  189. info.UserName = dr["NAME"].ToString();
  190. if (dr["BB"] == null || dr["BB"] == DBNull.Value)
  191. info.UserBb = "300305";
  192. else
  193. info.UserBb = dr["BB"].ToString();
  194. if (dr["BC"] == null || dr["BC"] == DBNull.Value)
  195. {
  196. info.UserRz = "1";
  197. info.UserBc = "300205";
  198. }
  199. else
  200. {
  201. info.UserRz = dr["BC"].ToString();
  202. info.UserBc = this.GetCurrBc(dr["BC"].ToString());
  203. }
  204. return info;
  205. }
  206. catch (Exception ex)
  207. {
  208. throw ex;
  209. }
  210. }
  211. private string GetNoNullStr(object obj)
  212. {
  213. if (obj == null || obj == DBNull.Value)
  214. {
  215. return "";
  216. }
  217. return obj.ToString();
  218. }
  219. #region " 登录退出记录 "
  220. private void RecodeLoginInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
  221. string vUSERIPADRESS, string vIsLogin)
  222. {
  223. OracleParameter[] param = new OracleParameter[5];
  224. object[] values = new object[5];
  225. ArrayList outvalues = new ArrayList();
  226. param[0] = new System.Data.OracleClient.OracleParameter();
  227. param[0].ParameterName = "vLoginID";
  228. param[0].DbType = System.Data.DbType.String;
  229. param[0].Size = 20;
  230. param[1] = new System.Data.OracleClient.OracleParameter();
  231. param[1].ParameterName = "vUserName";
  232. param[1].DbType = System.Data.DbType.String;
  233. param[1].Size = 20;
  234. param[2] = new System.Data.OracleClient.OracleParameter();
  235. param[2].ParameterName = "vUSERHOSTNAME";
  236. param[2].DbType = System.Data.DbType.String;
  237. param[2].Size = 100;
  238. param[3] = new System.Data.OracleClient.OracleParameter();
  239. param[3].ParameterName = "vUSERIPADRESS";
  240. param[3].DbType = System.Data.DbType.String;
  241. param[3].Size = 20;
  242. param[4] = new System.Data.OracleClient.OracleParameter();
  243. param[4].ParameterName = "vIsLogin";
  244. param[4].DbType = System.Data.DbType.String;
  245. param[4].Size = 20;
  246. values[0] = vLoginID;
  247. values[1] = vUserName;
  248. values[2] = vUSERHOSTNAME;
  249. values[3] = vUSERIPADRESS;
  250. values[4] = vIsLogin;
  251. string strOut = "";
  252. try
  253. {
  254. this.DBManager.ExecuteNonQuery("pub_useroperatemanager.pPub_Logininfo_Add", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
  255. }
  256. catch { }
  257. }
  258. public ReturnObject RecodeExitInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
  259. string vUSERIPADRESS)
  260. {
  261. RecodeLoginInfo(vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, "退出");
  262. return new ReturnObject();
  263. }
  264. public ReturnObject RecodeOperateInfo(string vLoginID, string vUserName, string vUSERHOSTNAME,
  265. string vUSERIPADRESS, string vOPERATETYPE, string vOPERATEOBJECT, string vREMARK)
  266. {
  267. OracleParameter[] param = new OracleParameter[7];
  268. object[] values = new object[7];
  269. ArrayList outvalues = new ArrayList();
  270. param[0] = new System.Data.OracleClient.OracleParameter();
  271. param[0].ParameterName = "vLoginID";
  272. param[0].DbType = System.Data.DbType.String;
  273. param[0].Size = 20;
  274. param[1] = new System.Data.OracleClient.OracleParameter();
  275. param[1].ParameterName = "vUserName";
  276. param[1].DbType = System.Data.DbType.String;
  277. param[1].Size = 20;
  278. param[2] = new System.Data.OracleClient.OracleParameter();
  279. param[2].ParameterName = "vUSERHOSTNAME";
  280. param[2].DbType = System.Data.DbType.String;
  281. param[2].Size = 100;
  282. param[3] = new System.Data.OracleClient.OracleParameter();
  283. param[3].ParameterName = "vUSERIPADRESS";
  284. param[3].DbType = System.Data.DbType.String;
  285. param[3].Size = 20;
  286. param[4] = new System.Data.OracleClient.OracleParameter();
  287. param[4].ParameterName = "vOPERATETYPE";
  288. param[4].DbType = System.Data.DbType.String;
  289. param[4].Size = 50;
  290. param[5] = new System.Data.OracleClient.OracleParameter();
  291. param[5].ParameterName = "vOPERATEOBJECT";
  292. param[5].DbType = System.Data.DbType.String;
  293. param[5].Size = 100;
  294. param[6] = new System.Data.OracleClient.OracleParameter();
  295. param[6].ParameterName = "vREMARK";
  296. param[6].DbType = System.Data.DbType.String;
  297. param[6].Size = 200;
  298. values[0] = vLoginID;
  299. values[1] = vUserName;
  300. values[2] = vUSERHOSTNAME;
  301. values[3] = vUSERIPADRESS;
  302. values[4] = vOPERATETYPE;
  303. values[5] = vOPERATEOBJECT;
  304. values[6] = vREMARK;
  305. string strOut = "";
  306. try
  307. {
  308. this.DBManager.ExecuteNonQuery("pub_useroperatemanager.pPub_UserOperate_Add", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
  309. }
  310. catch { }
  311. return new ReturnObject();
  312. }
  313. #endregion
  314. #region " 班次、班别 "
  315. private string GetCurrBc(string bc)
  316. {
  317. System.DateTime now = System.DateTime.Now;
  318. switch (bc.Trim())
  319. {
  320. case "3": //三班制
  321. //早
  322. if (now >= new DateTime(now.Year, now.Month, now.Day, 8, 0, 0) &&
  323. now < new DateTime(now.Year, now.Month, now.Day, 16, 0, 0))
  324. return "300201";
  325. //中
  326. if (now >= new DateTime(now.Year, now.Month, now.Day, 16, 0, 0) &&
  327. now <= new DateTime(now.Year, now.Month, now.Day, 23, 59, 59))
  328. return "300202";
  329. //晚
  330. if (now >= new DateTime(now.Year, now.Month, now.Day, 0, 0, 0) &&
  331. now < new DateTime(now.Year, now.Month, now.Day, 8, 0, 0))
  332. return "300203";
  333. break;
  334. case "2": //两班制
  335. //早
  336. if (now >= new DateTime(now.Year, now.Month, now.Day, 8, 0, 0) &&
  337. now < new DateTime(now.Year, now.Month, now.Day, 20, 0, 0))
  338. return "300201";
  339. else
  340. return "300203";
  341. }
  342. return "300205";
  343. }
  344. public ReturnObject GetBz(string strWhere)
  345. {
  346. string sqlstr = string.Format("select ID_ BASECODE, NAME_ BASENAME from scm_base_info where SORT_CODE = '{0}' order by 1", strWhere);
  347. string strOut = "";
  348. try
  349. {
  350. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  351. return new ReturnObject(ds, strOut);
  352. }
  353. catch (Exception ex)
  354. {
  355. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  356. }
  357. }
  358. public ReturnObject SetBz(string userID, string Bc, string Bb)
  359. {
  360. string sqlstr = string.Format(" update UAM_USER set BC = '{0}', BB = '{1}' where USERID = '{2}' ",
  361. Bc, Bb, userID);
  362. string strOut = "";
  363. try
  364. {
  365. int i = this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  366. return new ReturnObject(i, strOut);
  367. }
  368. catch (Exception ex)
  369. {
  370. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  371. }
  372. }
  373. #endregion
  374. private string PasswdSecurity(string pwd)
  375. {
  376. return pwd.ToUpper();
  377. }
  378. public ReturnObject GetServerList()
  379. {
  380. if (!File.Exists("MesServer.xml"))
  381. {
  382. return new ReturnObject(null, "未找到服务配置文件!");
  383. }
  384. DataSet ds = new DataSet();
  385. ds.ReadXml("MesServer.xml");
  386. if (ds == null || ds.Tables.Count == 0)
  387. return new ReturnObject(null, "配置文件设置错误!");
  388. ds.AcceptChanges();
  389. lock (ServicesList)
  390. {
  391. foreach (DataRow dr in ds.Tables[0].Rows)
  392. {
  393. string asmFile = dr["AssemblyName"].ToString() + ".dll";
  394. bool ExistServer = File.Exists(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), asmFile));
  395. string sn = dr["ServerName"].ToString();
  396. string url = dr["url"].ToString();
  397. DataRow[] drs = ServicesList.Select(string.Format("ServerName = '{0}'", sn));
  398. if (drs.GetLength(0) == 0 && ExistServer)
  399. {
  400. DataRow ndr = ServicesList.NewRow();
  401. ndr["ServerName"] = sn;
  402. ndr["URL"] = url;
  403. if (HTServiceKeys.ContainsKey(sn))
  404. {
  405. ndr["MD5_KEY"] = ((ArrayList)(this.HTServiceKeys[sn]))[0].ToString();
  406. ndr["SHA256_KEY"] = ((ArrayList)(this.HTServiceKeys[sn]))[1].ToString();
  407. ServicesList.Rows.Add(ndr);
  408. }
  409. }
  410. else if (drs.GetLength(0) > 0 && !ExistServer)
  411. {
  412. foreach (DataRow cdr in drs)
  413. {
  414. cdr.Delete();
  415. }
  416. }
  417. }
  418. ServicesList.TableName = "ServiceList";
  419. ServicesList.AcceptChanges();
  420. }
  421. DataTable dt_config = new DataTable("CONFIG");
  422. dt_config.Columns.Add("NAME", typeof(string));
  423. dt_config.Columns.Add("VALUE", typeof(object));
  424. dt_config.Rows.Add("PriorityFactor", ServerConfig.PriorityFactor);
  425. ds = new DataSet();
  426. ds.Tables.Add(ServicesList.Copy());
  427. ds.Tables.Add(dt_config);
  428. ds.AcceptChanges();
  429. return new ReturnObject(ds);
  430. }
  431. public ReturnObject CheckAlive(DateTime _dt)
  432. {
  433. return new ReturnObject((object)(new ArrayList() { ServerConfig.MAGIC_ID, _dt }), 1314, "I'AM ALIVE");
  434. }
  435. public ReturnObject ControlIt(string ControlService)
  436. {
  437. try
  438. {
  439. UriBuilder ub = new UriBuilder(ControlService);
  440. if (ub.Host == "127.0.0.1") return new ReturnObject(null, 0, "不接受本地主机IP");
  441. if (!string.IsNullOrEmpty(ServerConfig.MasterServer))
  442. {
  443. if (ServerConfig.MasterServer != ControlService) return new ReturnObject(ServerConfig.MasterServer, 1314, "已受控!");
  444. if (t_MasterConnector == null)
  445. {
  446. t_MasterConnector = new Thread(CheckMaster);
  447. t_MasterConnector.Start();
  448. }
  449. }
  450. else
  451. {
  452. ServerConfig.MasterServer = ControlService;
  453. if (t_MasterConnector != null)
  454. {
  455. t_MasterConnector.Abort();
  456. }
  457. t_MasterConnector = new Thread(CheckMaster);
  458. t_MasterConnector.Start();
  459. }
  460. return new ReturnObject(ServerConfig.MasterServer, 1314, "控制成功!");
  461. }
  462. catch (Exception ex)
  463. {
  464. return new ReturnObject(ServerConfig.MasterServer, 1, ex.Message);
  465. }
  466. }
  467. ICommon MasterChecker = null;
  468. private void CheckMaster()
  469. {
  470. int LostCommander = 0;
  471. do
  472. {
  473. if (string.IsNullOrEmpty(ServerConfig.MasterServer)) Thread.CurrentThread.Abort();
  474. if (MasterChecker == null)
  475. {
  476. MasterChecker = (ICommon)Activator.GetObject(typeof(ICommon), ServerConfig.MasterServer);
  477. }
  478. DateTime dt = DateTime.Now;
  479. CallingMessage par = new CallingMessage();
  480. par.ServerName = ServerConfig.MasterServer;
  481. par.ClassName = "Core.Mes.ServerCommon.UserInfoManager";
  482. par.MethodName = "CheckAlive";
  483. par.args = new object[] { dt };
  484. par.ServerType = MesServerType.IComponentContainServer;
  485. par.TransType = NetWorkTransType.Remoting;
  486. par.visitType = VisitType.Method;
  487. try
  488. {
  489. ReturnObject rtn = MasterChecker.MethodHandler(par, new ValidateInfo());
  490. if (rtn.ErrCode == 1314 && rtn.RealObject != null && (DateTime)(((ArrayList)rtn.RealObject)[1]) == dt
  491. && (int)(((ArrayList)rtn.RealObject)[0]) != ServerConfig.MAGIC_ID)
  492. {
  493. LostCommander = 0;
  494. }
  495. else if (LostCommander >= 3)
  496. {
  497. ServerConfig.MasterServer = "";
  498. Thread.CurrentThread.Abort();
  499. break;
  500. }
  501. else
  502. {
  503. LostCommander += 1;
  504. }
  505. }
  506. catch
  507. {
  508. if (LostCommander >= 3)
  509. {
  510. ServerConfig.MasterServer = "";
  511. break;
  512. }
  513. else
  514. {
  515. LostCommander += 1;
  516. }
  517. }
  518. Thread.Sleep(LostCommander == 0 ? 5000 : 1000);
  519. } while (!string.IsNullOrEmpty(ServerConfig.MasterServer));
  520. }
  521. public ReturnObject GetServerConfig()
  522. {
  523. DataSet ds = new DataSet();
  524. DataTable dt = new DataTable();
  525. dt.Columns.AddRange(new DataColumn[] { new DataColumn("KEY_NAME", typeof(string)),
  526. new DataColumn("KEY_VALUE", typeof(string)) });
  527. dt.TableName = "CONFIG";
  528. dt.PrimaryKey = new DataColumn[] { dt.Columns["KEY_NAME"] };
  529. dt.AcceptChanges();
  530. NameValueCollection appSettings = ConfigurationManager.AppSettings;
  531. IEnumerator appSettingsEnum = appSettings.Keys.GetEnumerator();
  532. int i = 0;
  533. while (appSettingsEnum.MoveNext())
  534. {
  535. string key = appSettings.Keys[i];
  536. string value = appSettings[key];
  537. dt.Rows.Add(new object[] { key, value });
  538. i += 1;
  539. }
  540. dt.AcceptChanges();
  541. if (dt.Rows.Count > 0)
  542. {
  543. ds.Tables.Add(dt);
  544. }
  545. return new ReturnObject((object)ds);
  546. }
  547. public ReturnObject ChangePasswd(string loginID, string passwd, string passwdNew)
  548. {
  549. string sqlstr = string.Format(" update UAM_AUTHORIZATION set passwd = '{2}' where loginid = '{0}' and passwd = '{1}' ",
  550. loginID, passwd, passwdNew);
  551. string strOut = "";
  552. try
  553. {
  554. int i = this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  555. return new ReturnObject(i, strOut);
  556. }
  557. catch (Exception ex)
  558. {
  559. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  560. }
  561. }
  562. #endregion
  563. #region " 消息 "
  564. public ReturnObject HeartBeat()
  565. {
  566. return new ReturnObject();
  567. }
  568. public ReturnObject GetUserMessage()
  569. {
  570. string sqlstr = "select MESSAGE, PROMULGATOR,EDITTIME, PRI_ from PUB_USERMESSAGE where ISVALID = '0' and > sysdate order by edittime desc ";
  571. string strOut = "";
  572. try
  573. {
  574. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  575. return new ReturnObject(ds, strOut);
  576. }
  577. catch (Exception ex)
  578. {
  579. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  580. }
  581. }
  582. public ReturnObject GetMessage(string strWhere)
  583. {
  584. string sqlstr = string.Format("select * from pub_message where GETFLAG <> '1' and SENDPERSONCODE = '{0}' ", strWhere);
  585. string strOut = "";
  586. try
  587. {
  588. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  589. return new ReturnObject(ds, strOut);
  590. }
  591. catch (Exception ex)
  592. {
  593. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  594. }
  595. }
  596. public ReturnObject SendMessage(string vSendPerson, string vSendPersonCode, string vInfo, string vGetPerson)
  597. {
  598. string strOut = "";
  599. OracleParameter[] param = new OracleParameter[7];
  600. object[] values = new object[7];
  601. ArrayList outvalues = new ArrayList();
  602. strOut = "";
  603. param[0] = new OracleParameter();
  604. param[0].ParameterName = "vID";
  605. param[0].Direction = System.Data.ParameterDirection.Input;
  606. param[0].DbType = System.Data.DbType.String;
  607. param[0].Size = 20;
  608. param[1] = new OracleParameter();
  609. param[1].ParameterName = "vSendPerson";
  610. param[1].Direction = System.Data.ParameterDirection.Input;
  611. param[1].DbType = System.Data.DbType.String;
  612. param[1].Size = 20;
  613. param[2] = new OracleParameter();
  614. param[2].ParameterName = "vSendPersonCode";
  615. param[2].Direction = System.Data.ParameterDirection.Input;
  616. param[2].DbType = System.Data.DbType.String;
  617. param[2].Size = 20;
  618. param[3] = new OracleParameter();
  619. param[3].ParameterName = "vInfo";
  620. param[3].Direction = System.Data.ParameterDirection.Input;
  621. param[3].DbType = System.Data.DbType.String;
  622. param[3].Size = 200;
  623. param[4] = new OracleParameter();
  624. param[4].ParameterName = "vGetPerson";
  625. param[4].Direction = System.Data.ParameterDirection.Input;
  626. param[4].DbType = System.Data.DbType.String;
  627. param[4].Size = 20;
  628. param[5] = new System.Data.OracleClient.OracleParameter();
  629. param[5].ParameterName = "vRESULT";
  630. param[5].Direction = System.Data.ParameterDirection.Output;
  631. param[5].DbType = System.Data.DbType.Int16;
  632. param[6] = new System.Data.OracleClient.OracleParameter();
  633. param[6].ParameterName = "vMESSAGE";
  634. param[6].Direction = System.Data.ParameterDirection.Output;
  635. param[6].DbType = System.Data.DbType.String;
  636. param[6].Size = 200;
  637. values[0] = System.Guid.NewGuid().ToString();
  638. values[1] = vSendPerson;
  639. values[2] = vSendPersonCode;
  640. values[3] = vInfo;
  641. values[4] = vGetPerson;
  642. values[5] = 0;
  643. values[6] = "";
  644. try
  645. {
  646. this.DBManager.ExecuteNonQuery("pub_MessageManager.pPub_Message_Send", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
  647. return new ReturnObject(outvalues, strOut);
  648. }
  649. catch (Exception ex)
  650. {
  651. return new ReturnObject(-1, ex.Message + "\n" + strOut);
  652. }
  653. }
  654. public ReturnObject AffirmMessage(string vID)
  655. {
  656. string strOut = "";
  657. OracleParameter[] param = new OracleParameter[3];
  658. object[] values = new object[3];
  659. ArrayList outvalues = new ArrayList();
  660. strOut = "";
  661. param[0] = new OracleParameter();
  662. param[0].ParameterName = "vID";
  663. param[0].Direction = System.Data.ParameterDirection.Input;
  664. param[0].DbType = System.Data.DbType.String;
  665. param[0].Size = 20;
  666. param[1] = new System.Data.OracleClient.OracleParameter();
  667. param[1].ParameterName = "vRESULT";
  668. param[1].Direction = System.Data.ParameterDirection.Output;
  669. param[1].DbType = System.Data.DbType.Int16;
  670. param[2] = new System.Data.OracleClient.OracleParameter();
  671. param[2].ParameterName = "vMESSAGE";
  672. param[2].Direction = System.Data.ParameterDirection.Output;
  673. param[2].DbType = System.Data.DbType.String;
  674. param[2].Size = 200;
  675. values[0] = vID;
  676. values[1] = 0;
  677. values[2] = "";
  678. try
  679. {
  680. this.DBManager.ExecuteNonQuery("pub_MessageManager.pPub_Message_Affirm", CommandType.StoredProcedure, param, values, ref outvalues, out strOut);
  681. return new ReturnObject(outvalues, strOut);
  682. }
  683. catch (Exception ex)
  684. {
  685. return new ReturnObject(-1, ex.Message + "\n" + strOut);
  686. }
  687. }
  688. #endregion
  689. #region " override "
  690. public override int maxValue
  691. {
  692. get
  693. {
  694. return 30;
  695. }
  696. }
  697. public override int minValue
  698. {
  699. get
  700. {
  701. return 20;
  702. }
  703. }
  704. #endregion
  705. #region 权限设置
  706. public ReturnObject selectPT_MenuInfo()
  707. {
  708. string sqlstr = string.Format("SELECT ID_,CAPTION,PARENTID,XH FROM {0}PT_MENUINFO ORDER BY PARENTID,XH,REMARK", sTableSpace);
  709. string err = "";
  710. DataSet dset = DBManager.ExecuteQuery(sqlstr, out err);
  711. return new ReturnObject(dset, err);
  712. }
  713. public ReturnObject updatePT_MenuPos(DataTable dt)
  714. {
  715. try
  716. {
  717. string err = "";
  718. bool success = DBManager.UpdateTable(dt, string.Format("SELECT ID_,CAPTION,PARENTID,XH FROM {0}PT_MENUINFO WHERE XH IS NOT NULL", sTableSpace), out err);
  719. return new ReturnObject(null, err);
  720. }
  721. catch (Exception ee)
  722. {
  723. return new ReturnObject(null, ee.Message);
  724. }
  725. }
  726. public ReturnObject GetPt_menuinfo(string strWhere)
  727. {
  728. string sqlstr = string.Format("SELECT * FROM {0}PT_MENUINFO WHERE 1=1 {1} ORDER BY CATEGORY, CAPTION", sTableSpace, strWhere);
  729. string strOut = "";
  730. try
  731. {
  732. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  733. return new ReturnObject(ds, strOut);
  734. }
  735. catch (Exception ex)
  736. {
  737. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  738. }
  739. }
  740. public ReturnObject InsertPt_menuinfo(string vkey, string vCategory, string vCaption, string vRemark, string vType)
  741. {
  742. string strOut = "";
  743. DataSet ds = null;
  744. string strID = "";
  745. object obj = null;
  746. int iCount = 0;
  747. string sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_MENUINFO WHERE KEY_ = '{1}'", sTableSpace, vkey);
  748. try
  749. {
  750. ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  751. }
  752. catch (Exception ex)
  753. {
  754. return new ReturnObject(null, ex.Message + "\n" + strOut);
  755. }
  756. obj = ds.Tables[0].Rows[0][0];
  757. if (obj == null || obj == DBNull.Value)
  758. {
  759. iCount = 0;
  760. }
  761. else
  762. {
  763. iCount = Convert.ToInt32(Convert.ToInt32(obj));
  764. }
  765. if (iCount > 0)
  766. {
  767. return new ReturnObject(null, "键值重复!请重新输入!");
  768. }
  769. sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_MENUINFO ", sTableSpace);
  770. try
  771. {
  772. ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  773. }
  774. catch (Exception ex)
  775. {
  776. return new ReturnObject(null, ex.Message + "\n" + strOut);
  777. }
  778. obj = ds.Tables[0].Rows[0][0];
  779. if (obj == null || obj == DBNull.Value)
  780. {
  781. strID = "0";
  782. }
  783. else
  784. {
  785. strID = Convert.ToString(Convert.ToInt32(obj) + 1);
  786. }
  787. sqlstr = string.Format("INSERT INTO {0}PT_MENUINFO (ID_, KEY_, CATEGORY, CAPTION, REMARK, TYPE) "
  788. + " VALUES "
  789. + " ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}') ", sTableSpace, strID, vkey, vCategory, vCaption, vRemark, vType);
  790. strOut = "";
  791. try
  792. {
  793. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  794. return new ReturnObject(strID, strOut);
  795. }
  796. catch (Exception ex)
  797. {
  798. return new ReturnObject(null, ex.Message + "\n" + strOut);
  799. }
  800. }
  801. public ReturnObject UpdatePt_menuinfo(string vID, string vkey, string vCategory, string vCaption, string vRemark, string vType)
  802. {
  803. string sqlstr = string.Format("UPDATE {0}PT_MENUINFO SET KEY_ = '{1}', CATEGORY = '{2}', "
  804. + " CAPTION = '{3}', REMARK = '{4}', TYPE='{5}' WHERE ID_ = '{6}' ",
  805. sTableSpace, vkey, vCategory, vCaption, vRemark, vType, vID);
  806. string strOut = "";
  807. try
  808. {
  809. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  810. return new ReturnObject(null, strOut);
  811. }
  812. catch (Exception ex)
  813. {
  814. return new ReturnObject(null, ex.Message + "\n" + strOut);
  815. }
  816. }
  817. public ReturnObject DeletePt_menuinfo(string vID)
  818. {
  819. string sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_USERMENUINFO WHERE MENUID = '{1}' ", sTableSpace, vID);
  820. string strOut = "";
  821. try
  822. {
  823. DataSet dset = DBManager.ExecuteQuery(sqlstr, out strOut);
  824. if (int.Parse(dset.Tables[0].Rows[0][0].ToString()) > 0)
  825. return new ReturnObject(null, "该菜单已被配置到角色菜单中去,请先在角色菜单中删除!");
  826. }
  827. catch (Exception ex)
  828. {
  829. return new ReturnObject(null, ex.Message + "\n" + strOut);
  830. }
  831. sqlstr = string.Format("SELECT COUNT(1) FROM {0}PT_MENUINFO WHERE PARENTID = '{1}' ", sTableSpace, vID);
  832. strOut = "";
  833. try
  834. {
  835. DataSet dset = DBManager.ExecuteQuery(sqlstr, out strOut);
  836. if (int.Parse(dset.Tables[0].Rows[0][0].ToString()) > 0)
  837. return new ReturnObject(null, "该菜单其下还有子菜单,不可直接删除!");
  838. }
  839. catch (Exception ex)
  840. {
  841. return new ReturnObject(null, ex.Message + "\n" + strOut);
  842. }
  843. sqlstr = string.Format("DELETE {0}PT_MENUINFO WHERE ID_ = '{1}' ", sTableSpace, vID);
  844. strOut = "";
  845. try
  846. {
  847. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  848. }
  849. catch (Exception ex)
  850. {
  851. return new ReturnObject(null, ex.Message + "\n" + strOut);
  852. }
  853. sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE MENUID = '{1}' ", sTableSpace, vID);
  854. strOut = "";
  855. try
  856. {
  857. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  858. return new ReturnObject(null, strOut);
  859. }
  860. catch (Exception ex)
  861. {
  862. return new ReturnObject(null, ex.Message + "\n" + strOut);
  863. }
  864. }
  865. public ReturnObject PlastPt_menuinfo(string oldRole, string newRole)
  866. {
  867. string sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE ROLEID = '{1}' ", sTableSpace, newRole);
  868. string strOut = "";
  869. try
  870. {
  871. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  872. }
  873. catch (Exception ex)
  874. {
  875. return new ReturnObject(null, ex.Message + "\n" + strOut);
  876. }
  877. sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_USERMENUINFO ", sTableSpace);
  878. int iCount = 0;
  879. DataSet ds = null;
  880. try
  881. {
  882. ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  883. }
  884. catch (Exception ex)
  885. {
  886. return new ReturnObject(null, ex.Message + "\n" + strOut);
  887. }
  888. object obj = ds.Tables[0].Rows[0][0];
  889. if (obj == null || obj == DBNull.Value)
  890. {
  891. iCount = 0;
  892. }
  893. else
  894. {
  895. iCount = Convert.ToInt32(obj);
  896. }
  897. sqlstr = string.Format("SELECT * FROM {0}PT_USERMENUINFO WHERE ROLEID = '{1}'", sTableSpace, oldRole);
  898. try
  899. {
  900. ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  901. }
  902. catch (Exception ex)
  903. {
  904. return new ReturnObject(null, ex.Message + "\n" + strOut);
  905. }
  906. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  907. {
  908. iCount = iCount + 1;
  909. sqlstr = string.Format("INSERT INTO {0}PT_USERMENUINFO (ID_, ROLEID, MENUID, SETINFO) "
  910. + " VALUES "
  911. + " ('{1}', '{2}', '{3}', '{4}' ) ", sTableSpace, Convert.ToString(iCount),
  912. newRole, ds.Tables[0].Rows[i]["MENUID"].ToString(),
  913. ds.Tables[0].Rows[i]["SETINFO"].ToString());
  914. strOut = "";
  915. try
  916. {
  917. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  918. }
  919. catch (Exception ex)
  920. {
  921. return new ReturnObject(null, ex.Message + "\n" + strOut);
  922. }
  923. }
  924. return new ReturnObject(null);
  925. }
  926. public ReturnObject SavePt_usermenuinfo(string vRole, ArrayList arMenu, ArrayList arSet)
  927. {
  928. string sqlstr = string.Format("DELETE {0}PT_USERMENUINFO WHERE ROLEID = '{1}' ", sTableSpace, vRole);
  929. string strOut = "";
  930. try
  931. {
  932. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  933. }
  934. catch (Exception ex)
  935. {
  936. return new ReturnObject(null, ex.Message + "\n" + strOut);
  937. }
  938. sqlstr = string.Format("SELECT MAX(TO_NUMBER(ID_)) FROM {0}PT_USERMENUINFO ", sTableSpace);
  939. int iCount = 0;
  940. DataSet ds = null;
  941. try
  942. {
  943. ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  944. }
  945. catch (Exception ex)
  946. {
  947. return new ReturnObject(null, ex.Message + "\n" + strOut);
  948. }
  949. object obj = ds.Tables[0].Rows[0][0];
  950. if (obj == null || obj == DBNull.Value)
  951. {
  952. iCount = 0;
  953. }
  954. else
  955. {
  956. iCount = Convert.ToInt32(obj);
  957. }
  958. for (int i = 0; i < arMenu.Count; i++)
  959. {
  960. iCount = iCount + 1;
  961. sqlstr = string.Format("INSERT INTO {0}PT_USERMENUINFO (ID_, ROLEID, MENUID, SETINFO) "
  962. + " VALUES "
  963. + " ('{1}', '{2}', '{3}', '{4}' ) ", sTableSpace, Convert.ToString(iCount),
  964. vRole, arMenu[i].ToString(), arSet[i].ToString());
  965. strOut = "";
  966. try
  967. {
  968. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  969. }
  970. catch (Exception ex)
  971. {
  972. return new ReturnObject(null, ex.Message + "\n" + strOut);
  973. }
  974. }
  975. return new ReturnObject(null, "");
  976. }
  977. public ReturnObject GetUserRolePairs()
  978. {
  979. try
  980. {
  981. string err = "";
  982. string sql = "SELECT U.LOGINID, U.ROLEID FROM UAM_AUTHORIZATION U ORDER BY U.LOGINID";
  983. DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
  984. if (ds != null && ds.Tables[0].Rows.Count > 0)
  985. {
  986. return new ReturnObject(ds);
  987. }
  988. return new ReturnObject(null, err);
  989. }
  990. catch (System.Exception ex)
  991. {
  992. return new ReturnObject(null, ex.ToString());
  993. }
  994. }
  995. public ReturnObject GetRoleMenuPairs(string RoleID)
  996. {
  997. try
  998. {
  999. if (RoleID.Trim() == "") return new ReturnObject(null, "");
  1000. string err = "";
  1001. string sql = string.Format(@"SELECT T.ROLEID, T.MENUID, T.SETINFO, M.KEY_, M.CATEGORY, M.CAPTION, M.REMARK
  1002. FROM {0}PT_USERMENUINFO T
  1003. LEFT JOIN {0}PT_MENUINFO M
  1004. ON T.MENUID = M.ID_
  1005. Where T.ROLEID = '{1}'", sTableSpace, RoleID.Trim());
  1006. DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
  1007. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1008. {
  1009. return new ReturnObject(ds);
  1010. }
  1011. return new ReturnObject(null, err);
  1012. }
  1013. catch (System.Exception ex)
  1014. {
  1015. return new ReturnObject(null, ex.ToString());
  1016. }
  1017. }
  1018. public ReturnObject GetUser_Uam_Role(string DptID)
  1019. {
  1020. try
  1021. {
  1022. string err = "";
  1023. string sql = string.Format("SELECT ROLEID, ROLENAME FROM {0}UAM_ROLE WHERE DEPARTMENTID IN({1}) ORDER BY ROLENAME ", sTableSpace, DptID);
  1024. DataSet ds = this.DBManager.ExecuteQuery(sql, out err);
  1025. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1026. {
  1027. return new ReturnObject(ds);
  1028. }
  1029. return new ReturnObject(null, err);
  1030. }
  1031. catch (System.Exception ex)
  1032. {
  1033. return new ReturnObject(null, ex.ToString());
  1034. }
  1035. }
  1036. public ReturnObject GetUam_role()
  1037. {
  1038. string sqlstr = "SELECT ROLEID, ROLENAME FROM UAM_ROLE ORDER BY ROLENAME ";
  1039. string strOut = "";
  1040. try
  1041. {
  1042. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  1043. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1044. {
  1045. return new ReturnObject(ds, strOut);
  1046. }
  1047. else
  1048. {
  1049. return new ReturnObject(null, strOut);
  1050. }
  1051. }
  1052. catch (Exception ex)
  1053. {
  1054. return new ReturnObject(null, ex.Message + "\n" + strOut);
  1055. }
  1056. }
  1057. public ReturnObject GetPurviewTree(string strWhere)
  1058. {
  1059. string sqlstr = string.Format("SELECT ID_, MENUID, (SELECT CAPTION FROM {0}PT_MENUINFO WHERE ID_ = MENUID) MENUNAME, "
  1060. + " SETINFO FROM {0}PT_USERMENUINFO WHERE 1=1 {1} ORDER BY SETINFO ", sTableSpace, strWhere);
  1061. string strOut = "";
  1062. try
  1063. {
  1064. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  1065. return new ReturnObject(ds, strOut);
  1066. }
  1067. catch (Exception ex)
  1068. {
  1069. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  1070. }
  1071. }
  1072. public ReturnObject GetBuildMenuInfo(string strWhere)
  1073. {
  1074. string sqlstr = string.Format("SELECT C.KEY_, C.CATEGORY, C.CAPTION, C.TYPE,B.SETINFO "
  1075. + " FROM {0}UAM_AUTHORIZATION A, {0}PT_USERMENUINFO B, {0}PT_MENUINFO C "
  1076. + " WHERE LOGINID = '{1}' AND A.ROLEID = B.ROLEID AND B.MENUID = C.ID_ ORDER BY B.SETINFO ", sTableSpace, strWhere);
  1077. string strOut = "";
  1078. try
  1079. {
  1080. DataSet ds = this.DBManager.ExecuteQuery(sqlstr, out strOut);
  1081. return new ReturnObject(ds, strOut);
  1082. }
  1083. catch (Exception ex)
  1084. {
  1085. return new ReturnObject(new DataSet(), ex.Message + "\n" + strOut);
  1086. }
  1087. }
  1088. #endregion
  1089. #region "系统监听"
  1090. public ReturnObject MesSystemListener()
  1091. {
  1092. string sqlstr = "select sysdate from dual";
  1093. string strOut = "";
  1094. try
  1095. {
  1096. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  1097. return new ReturnObject(null, strOut);
  1098. }
  1099. catch (Exception ex)
  1100. {
  1101. return new ReturnObject(null, ex.Message + "\n" + strOut);
  1102. }
  1103. }
  1104. public ReturnObject RecordUserEvent(string vLoginID, string vUserName, string vUSERHOSTNAME,
  1105. string vUSERIPADRESS, string vOPerateType, string vControlTYPE, string vOPERATEOBJECT, string vFormName, string vClassName, string vREMARK)
  1106. {
  1107. try
  1108. {
  1109. DateTime dt = System.DateTime.Now;
  1110. CoreWriteLogFile.WriteLog(dt, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
  1111. Insert_UserEventsRec(dt, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
  1112. }
  1113. catch { }
  1114. return new ReturnObject();
  1115. }
  1116. public ReturnObject Insert_UserEventsRec(DateTime dt, string vLoginID, string vUserName, string vUSERHOSTNAME, string vUSERIPADRESS, string vOPerateType,
  1117. string vControlTYPE, string vOPERATEOBJECT, string vFormName, string vClassName, string vREMARK)
  1118. {
  1119. string sqlstr = string.Format("INSERT INTO {0}PUB_USEREVENTS (LOGINID, USERNAME, USERHOSTNAME, USERIPADRESS, OPERATETIME, OPERATETYPE, CONTROLTYPE, OPERATEOBJECT, FORMNAME, CLASSNAME, REMARK) "
  1120. + " VALUES ('{1}', '{2}', '{3}', '{4}', TO_TIMESTAMP('{5}', 'yyyy-mm-dd hh24:mi:ss.ff'), '{6}', '{7}', '{8}', '{9}', '{10}', '{11}') ",
  1121. sTableSpace, vLoginID, vUserName, vUSERHOSTNAME, vUSERIPADRESS, dt.ToString("yyyy-MM-dd HH:mm:ss.fff"),
  1122. vOPerateType, vControlTYPE, vOPERATEOBJECT, vFormName, vClassName, vREMARK);
  1123. string strOut = "";
  1124. try
  1125. {
  1126. this.DBManager.ExecuteNonQuery(sqlstr, out strOut);
  1127. return new ReturnObject(null, 0, strOut);
  1128. }
  1129. catch (Exception ex)
  1130. {
  1131. return new ReturnObject(null, -1, ex.Message + "\n" + strOut);
  1132. }
  1133. }
  1134. #endregion
  1135. public ReturnObject getDBSrvTime()
  1136. {
  1137. string strOut = "";
  1138. try
  1139. {
  1140. DataSet ds = this.DBManager.ExecuteQuery("SELECT SYSDATE FROM DUAL", out strOut);
  1141. return new ReturnObject(ds.Tables[0].Rows[0][0], strOut);
  1142. }
  1143. catch (Exception ex)
  1144. {
  1145. return new ReturnObject(null, ex.Message + "\n" + strOut);
  1146. }
  1147. }
  1148. }
  1149. }