AdminPage.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. using System;
  2. using System.Collections;
  3. using System.Reflection;
  4. using System.Web;
  5. using System.Web.UI.WebControls;
  6. using CB.Common;
  7. using CB.Data;
  8. using CB.Entity;
  9. using CB.TrendChart.LotteryTrendChart;
  10. using CB.TrendMiss.LotteryTrendMiss;
  11. using CB.TrendChart.FrequencyTrendChart;
  12. namespace CB.Framework
  13. {
  14. public class AdminPage : PageBase
  15. {
  16. private string _authPage = "";
  17. private bool _superAdmin = false;
  18. #region 属性
  19. /// <summary>
  20. /// UID
  21. /// </summary>
  22. protected internal int Uid = 0;
  23. /// <summary>
  24. /// 用户组ID
  25. /// </summary>
  26. protected internal int UserGroupId = 0;
  27. /// <summary>
  28. /// 用户组名称
  29. /// </summary>
  30. protected internal string UserGroupName = "";
  31. /// <summary>
  32. /// 用户名
  33. /// </summary>
  34. protected internal string UserName = "";
  35. /// <summary>
  36. /// 昵称
  37. /// </summary>
  38. protected internal string NickName = "";
  39. /// <summary>
  40. /// 权限页信息
  41. /// </summary>
  42. protected internal SysAuthorityInfo Authority = null;
  43. /// <summary>
  44. /// 权限页类名称
  45. /// </summary>
  46. public string authPage { get { return this._authPage; } }
  47. /// <summary>
  48. /// 是否超级管理员
  49. /// </summary>
  50. public bool superAdmin { get { return this._superAdmin; } }
  51. #endregion
  52. public AdminPage()
  53. {
  54. GetOnLineUser();
  55. _authPage = WRequest.GetQueryString("authPage");
  56. if (0 >= Uid)
  57. {
  58. HttpContext.Current.Response.Write("<script language=\"javascript\">top.location.href=\"/webadmin/syslogin.aspx\";</script>");
  59. HttpContext.Current.Response.End();
  60. }
  61. if (!IsPageAllow())
  62. {
  63. HttpContext.Current.Response.Write("<script language=\"javascript\">alert(\"提示:您无法访问当前链接地址网页!\");top.location.href=\"/scybsc/main.aspx\";</script>");
  64. HttpContext.Current.Response.End();
  65. }
  66. }
  67. protected virtual void BindRepeaterList() { }
  68. #region 页面权限及验证
  69. /// <summary>
  70. /// 获取在线用户信息
  71. /// </summary>
  72. private void GetOnLineUser()
  73. {
  74. string usercookies = Utils.GetCookie("ducenter-user");
  75. if (string.IsNullOrEmpty(usercookies) || !Utils.IsBase64String(usercookies))
  76. return;
  77. usercookies = XXTEA.Decode(usercookies);
  78. string[] _data = usercookies.Split(new char[] { ',', '-', '|' });
  79. if (5 == _data.Length)
  80. {
  81. UserName = _data[0];
  82. NickName = _data[1];
  83. UserGroupName = _data[2];
  84. Uid = TypeConverter.StrToInt(_data[3]);
  85. UserGroupId = TypeConverter.StrToInt(_data[4]);
  86. }
  87. if (1 <= Uid)
  88. {
  89. var userinfo = CB.Data.SysUserService.GetUserInfo(Uid);
  90. if (null == userinfo || 0 >= userinfo.Uid || !userinfo.Status)
  91. {
  92. Uid = 0;
  93. return;
  94. }
  95. this._superAdmin = userinfo.SuperAdmin;
  96. }
  97. }
  98. /// <summary>
  99. /// 页面权限验证
  100. /// </summary>
  101. /// <returns></returns>
  102. private bool IsPageAllow()
  103. {
  104. if (string.IsNullOrEmpty(authPage))
  105. {
  106. string _pageName = this.GetType().Name.ToLower();
  107. if (_pageName.EndsWith("main_aspx", StringComparison.CurrentCultureIgnoreCase) || _pageName.EndsWith("menu_aspx", StringComparison.CurrentCultureIgnoreCase)
  108. || _pageName.EndsWith("right_aspx", StringComparison.CurrentCultureIgnoreCase) || _pageName.EndsWith("mypassword_aspx", StringComparison.CurrentCultureIgnoreCase))
  109. { return true; }
  110. }
  111. else
  112. {
  113. if (0 >= UserGroupId)
  114. {
  115. return false;
  116. }
  117. var list = CB.Data.SysAuthorityService.GetUserGroupAuthorityList(UserGroupId, _superAdmin);
  118. if (null == list || 0 == list.Count)
  119. { return false; }
  120. foreach (var item in list)
  121. {
  122. if (item.PageName.Equals(_authPage, StringComparison.CurrentCultureIgnoreCase))
  123. {
  124. Authority = item;
  125. return true;
  126. }
  127. }
  128. }
  129. return false;
  130. }
  131. #endregion
  132. #region 操作日志
  133. /// <summary>
  134. /// 通用记录操作日志
  135. /// </summary>
  136. /// <param name="title"></param>
  137. /// <param name="content"></param>
  138. protected void Logs(string title, string content)
  139. {
  140. CB.Data.SysUserLogService.Save(new SysUserLogInfo()
  141. {
  142. UId = Uid,
  143. UserName = UserName,
  144. Title = title,
  145. Contents = "[" + UserName + "]于:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + content,
  146. AId = Authority.AId,
  147. IP = Utils.GetRealIP()
  148. });
  149. }
  150. #endregion
  151. #region 提示信息
  152. /// <summary>
  153. /// 页面输出提示信息
  154. /// </summary>
  155. /// <param name="Message"></param>
  156. /// <param name="Url"></param>
  157. protected void ShowMessageBox(string Message, string Url = null)
  158. {
  159. if (!string.IsNullOrEmpty(Url))
  160. {
  161. HttpContext.Current.Response.Write("<script language=\"javascript\">alert(\"" + Message + "\");location.href=\"" + Url + "\";</script>");
  162. HttpContext.Current.Response.End();
  163. }
  164. else
  165. {
  166. HttpContext.Current.Response.Write("<script language=\"javascript\">alert(\"" + Message + "\");history.back(-1);</script>");
  167. HttpContext.Current.Response.End();
  168. }
  169. }
  170. #endregion
  171. #region 页面常用方法
  172. /// <summary>
  173. /// 获取权限导航类型字符串
  174. /// </summary>
  175. /// <param name="type"></param>
  176. /// <returns></returns>
  177. public static string GetAuthorityTypeString(AuthorityType type)
  178. {
  179. switch (type)
  180. {
  181. case AuthorityType.Config:
  182. return "基本配置";
  183. case AuthorityType.DataList:
  184. return "数据列表";
  185. case AuthorityType.Nomarl:
  186. return "公共页面";
  187. case AuthorityType.Statistics:
  188. return "数据统计";
  189. }
  190. return "";
  191. }
  192. /// <summary>
  193. /// 更改走势图状态
  194. /// </summary>
  195. /// <param name="status">走势图状态</param>
  196. /// <param name="chartId">走势图ID</param>
  197. /// <returns></returns>
  198. public static bool ChangeState(TrendChartStatus status, int chartId)
  199. {
  200. Entity.TrendChartInfo model = CB.Data.TrendChartService.Get(chartId);
  201. model.Status = status;
  202. if (TrendChartService.Update(model))
  203. {
  204. //ShowMessageBox("数据生成成功!");
  205. return true;
  206. }
  207. else
  208. {
  209. //ShowMessageBox("数据生成失败!");
  210. return false;
  211. }
  212. }
  213. /// <summary>
  214. /// 生成走势图数据
  215. /// </summary>
  216. /// <param name="Cid"></param>
  217. /// <param name="chartId"></param>
  218. /// <returns></returns>
  219. public static Tuple<bool, string> CreateTrendChartData(int Cid, int chartId, long term)
  220. {
  221. Tuple<bool, string> t;
  222. LotterySearchField fields = null;
  223. switch (Cid)
  224. {
  225. case 1:
  226. if (11 == chartId)
  227. fields = new LotterySearchField() { NumRepeat = 1 };
  228. t = FC3DTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  229. break;
  230. case 2:
  231. case 3:
  232. if (23 == chartId)
  233. fields = new LotterySearchField() { NumRepeat = 1 };
  234. t = TCP3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  235. break;
  236. case 4:
  237. if (99 == chartId)
  238. fields = new LotterySearchField() { Week = 3 };
  239. if (100 == chartId)
  240. fields = new LotterySearchField() { Week = 5 };
  241. if (101 == chartId)
  242. fields = new LotterySearchField() { Week = 1 };
  243. t = FCSSQTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  244. break;
  245. case 5:
  246. t = FCQLCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  247. break;
  248. case 12:
  249. if (107 == chartId)
  250. fields = new LotterySearchField() { Week = 2 };
  251. if (108 == chartId)
  252. fields = new LotterySearchField() { Week = 4 };
  253. if (109 == chartId)
  254. fields = new LotterySearchField() { Week = 7 };
  255. t = TCDLTTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  256. break;
  257. case 19:
  258. t = TCQXCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  259. break;
  260. case 28:
  261. t = HC1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  262. break;
  263. case 59:
  264. t = KL12SiChuanTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  265. break;
  266. case 60:
  267. t = TCFJ31X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  268. break;
  269. case 61:
  270. t = TCFJ36X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  271. break;
  272. case 62:
  273. t = TCJS7WSTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  274. break;
  275. case 63:
  276. t = TCZJ6J1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  277. break;
  278. case 64:
  279. t = FCDF6J1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  280. break;
  281. case 65:
  282. t = FCHD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  283. break;
  284. case 66:
  285. t = FCHB22X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  286. break;
  287. case 67:
  288. t = FCHN22X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  289. break;
  290. case 68:
  291. t = FCXJ35X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  292. break;
  293. case 69:
  294. t = FCNY36X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  295. break;
  296. case 70:
  297. t = AH11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  298. break;
  299. case 71:
  300. t = CQ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  301. break;
  302. case 72:
  303. t = GD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  304. break;
  305. case 73:
  306. t = GZ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  307. break;
  308. case 74:
  309. t = HLJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  310. break;
  311. case 75:
  312. t = HB11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  313. break;
  314. case 76:
  315. t = JS11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  316. break;
  317. case 77:
  318. t = JX11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  319. break;
  320. case 78:
  321. t = JL11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  322. break;
  323. case 79:
  324. t = LN11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  325. break;
  326. case 80:
  327. t = SD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  328. break;
  329. case 81:
  330. t = SH11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  331. break;
  332. case 82:
  333. t = SC11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  334. break;
  335. case 83:
  336. t = TJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  337. break;
  338. case 84:
  339. t = YN11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  340. break;
  341. case 85:
  342. t = ZJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  343. break;
  344. case 86:
  345. t = AHK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  346. break;
  347. case 87:
  348. t = HBK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  349. break;
  350. case 88:
  351. t = JSK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  352. break;
  353. case 89:
  354. t = JLK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  355. break;
  356. case 90:
  357. t = KL12LiaoNingTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  358. break;
  359. case 15:
  360. t = GDKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  361. break;
  362. case 91:
  363. t = CQKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  364. break;
  365. case 92:
  366. t = GXKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  367. break;
  368. case 93:
  369. t = HNKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  370. break;
  371. case 94:
  372. t = TJKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  373. break;
  374. case 95:
  375. t = SDQYHTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  376. break;
  377. case 96:
  378. t = HeBK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  379. break;
  380. case 97:
  381. t = NMGK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  382. break;
  383. case 98:
  384. t = ZJKLCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  385. break;
  386. case 99:
  387. t = SXKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  388. break;
  389. case 100:
  390. t = HeB11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  391. break;
  392. case 101:
  393. t = FCHB30X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields);
  394. break;
  395. default:
  396. t = new Tuple<bool, string>(false, "");
  397. break;
  398. }
  399. if (!t.Item1)
  400. return t;
  401. if (ChangeState(TrendChartStatus.Default, chartId))
  402. return new Tuple<bool, string>(true, "");
  403. return new Tuple<bool, string>(false, string.Format("更改走势图【chartId={0}】状态失败!", chartId));
  404. }
  405. /// <summary>
  406. /// 生成遗漏数据
  407. /// </summary>
  408. /// <param name="chartId">走势图ID</param>
  409. /// <param name="term">期号</param>
  410. /// <param name="MultiTerm">true:生成term期数及以后期数的走势图及遗漏数据;false:仅生成当前期走势图及遗漏数据</param>
  411. /// <returns></returns>
  412. public static Tuple<bool, string> CreateMissData(int Cid, int chartId, long term, LotterySearchField fields = null)
  413. {
  414. Tuple<bool, string> t = new Tuple<bool, string>(false, "");
  415. switch (Cid)
  416. {
  417. case 1:
  418. t = FC3DTrendMiss.CreateMissData(chartId, term, fields);
  419. break;
  420. case 2:
  421. case 3:
  422. t = TCP3TrendMiss.CreateMissData(chartId, term, fields);
  423. break;
  424. case 4:
  425. t = FCSSQTrendMiss.CreateMissData(chartId, term, fields);
  426. break;
  427. case 5:
  428. break;
  429. case 12:
  430. break;
  431. case 19:
  432. break;
  433. }
  434. return t;
  435. }
  436. #endregion
  437. #region 下拉列表绑定
  438. protected void BindDropDownListAndSelect(DropDownList ddl, IEnumerable dataSource, string NameField, string ValueField, string selectValue)
  439. {
  440. ddl.Items.Clear();
  441. ddl.DataTextField = NameField;
  442. ddl.DataValueField = ValueField;
  443. ddl.DataSource = dataSource;
  444. ddl.DataBind();
  445. ddl.Items.Insert(0, new ListItem("--请选择--", ""));
  446. if (string.IsNullOrEmpty(selectValue))
  447. ddl.SelectedValue = selectValue;
  448. //if (selectValue != null)
  449. //{
  450. // ListItem selectedItem = ddl.Items.FindByValue(selectValue);
  451. // ddl.SelectedIndex = ddl.Items.IndexOf(selectedItem);
  452. //}
  453. }
  454. #endregion
  455. }
  456. }