using System; using System.Collections; using System.Reflection; using System.Web; using System.Web.UI.WebControls; using CB.Common; using CB.Data; using CB.Entity; using CB.TrendChart.LotteryTrendChart; using CB.TrendMiss.LotteryTrendMiss; using CB.TrendChart.FrequencyTrendChart; namespace CB.Framework { public class AdminPage : PageBase { private string _authPage = ""; private bool _superAdmin = false; #region 属性 /// /// UID /// protected internal int Uid = 0; /// /// 用户组ID /// protected internal int UserGroupId = 0; /// /// 用户组名称 /// protected internal string UserGroupName = ""; /// /// 用户名 /// protected internal string UserName = ""; /// /// 昵称 /// protected internal string NickName = ""; /// /// 权限页信息 /// protected internal SysAuthorityInfo Authority = null; /// /// 权限页类名称 /// public string authPage { get { return this._authPage; } } /// /// 是否超级管理员 /// public bool superAdmin { get { return this._superAdmin; } } #endregion public AdminPage() { GetOnLineUser(); _authPage = WRequest.GetQueryString("authPage"); if (0 >= Uid) { HttpContext.Current.Response.Write(""); HttpContext.Current.Response.End(); } if (!IsPageAllow()) { HttpContext.Current.Response.Write(""); HttpContext.Current.Response.End(); } } protected virtual void BindRepeaterList() { } #region 页面权限及验证 /// /// 获取在线用户信息 /// private void GetOnLineUser() { string usercookies = Utils.GetCookie("ducenter-user"); if (string.IsNullOrEmpty(usercookies) || !Utils.IsBase64String(usercookies)) return; usercookies = XXTEA.Decode(usercookies); string[] _data = usercookies.Split(new char[] { ',', '-', '|' }); if (5 == _data.Length) { UserName = _data[0]; NickName = _data[1]; UserGroupName = _data[2]; Uid = TypeConverter.StrToInt(_data[3]); UserGroupId = TypeConverter.StrToInt(_data[4]); } if (1 <= Uid) { var userinfo = CB.Data.SysUserService.GetUserInfo(Uid); if (null == userinfo || 0 >= userinfo.Uid || !userinfo.Status) { Uid = 0; return; } this._superAdmin = userinfo.SuperAdmin; } } /// /// 页面权限验证 /// /// private bool IsPageAllow() { if (string.IsNullOrEmpty(authPage)) { string _pageName = this.GetType().Name.ToLower(); if (_pageName.EndsWith("main_aspx", StringComparison.CurrentCultureIgnoreCase) || _pageName.EndsWith("menu_aspx", StringComparison.CurrentCultureIgnoreCase) || _pageName.EndsWith("right_aspx", StringComparison.CurrentCultureIgnoreCase) || _pageName.EndsWith("mypassword_aspx", StringComparison.CurrentCultureIgnoreCase)) { return true; } } else { if (0 >= UserGroupId) { return false; } var list = CB.Data.SysAuthorityService.GetUserGroupAuthorityList(UserGroupId, _superAdmin); if (null == list || 0 == list.Count) { return false; } foreach (var item in list) { if (item.PageName.Equals(_authPage, StringComparison.CurrentCultureIgnoreCase)) { Authority = item; return true; } } } return false; } #endregion #region 操作日志 /// /// 通用记录操作日志 /// /// /// protected void Logs(string title, string content) { CB.Data.SysUserLogService.Save(new SysUserLogInfo() { UId = Uid, UserName = UserName, Title = title, Contents = "[" + UserName + "]于:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + content, AId = Authority.AId, IP = Utils.GetRealIP() }); } #endregion #region 提示信息 /// /// 页面输出提示信息 /// /// /// protected void ShowMessageBox(string Message, string Url = null) { if (!string.IsNullOrEmpty(Url)) { HttpContext.Current.Response.Write(""); HttpContext.Current.Response.End(); } else { HttpContext.Current.Response.Write(""); HttpContext.Current.Response.End(); } } #endregion #region 页面常用方法 /// /// 获取权限导航类型字符串 /// /// /// public static string GetAuthorityTypeString(AuthorityType type) { switch (type) { case AuthorityType.Config: return "基本配置"; case AuthorityType.DataList: return "数据列表"; case AuthorityType.Nomarl: return "公共页面"; case AuthorityType.Statistics: return "数据统计"; } return ""; } /// /// 更改走势图状态 /// /// 走势图状态 /// 走势图ID /// public static bool ChangeState(TrendChartStatus status, int chartId) { Entity.TrendChartInfo model = CB.Data.TrendChartService.Get(chartId); model.Status = status; if (TrendChartService.Update(model)) { //ShowMessageBox("数据生成成功!"); return true; } else { //ShowMessageBox("数据生成失败!"); return false; } } /// /// 生成走势图数据 /// /// /// /// public static Tuple CreateTrendChartData(int Cid, int chartId, long term) { Tuple t; LotterySearchField fields = null; switch (Cid) { case 1: if (11 == chartId) fields = new LotterySearchField() { NumRepeat = 1 }; t = FC3DTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 2: case 3: if (23 == chartId) fields = new LotterySearchField() { NumRepeat = 1 }; t = TCP3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 4: if (99 == chartId) fields = new LotterySearchField() { Week = 3 }; if (100 == chartId) fields = new LotterySearchField() { Week = 5 }; if (101 == chartId) fields = new LotterySearchField() { Week = 1 }; t = FCSSQTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 5: t = FCQLCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 12: if (107 == chartId) fields = new LotterySearchField() { Week = 2 }; if (108 == chartId) fields = new LotterySearchField() { Week = 4 }; if (109 == chartId) fields = new LotterySearchField() { Week = 7 }; t = TCDLTTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 19: t = TCQXCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 28: t = HC1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 59: t = KL12SiChuanTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 60: t = TCFJ31X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 61: t = TCFJ36X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 62: t = TCJS7WSTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 63: t = TCZJ6J1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 64: t = FCDF6J1Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 65: t = FCHD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 66: t = FCHB22X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 67: t = FCHN22X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 68: t = FCXJ35X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 69: t = FCNY36X7Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 70: t = AH11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 71: t = CQ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 72: t = GD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 73: t = GZ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 74: t = HLJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 75: t = HB11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 76: t = JS11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 77: t = JX11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 78: t = JL11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 79: t = LN11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 80: t = SD11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 81: t = SH11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 82: t = SC11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 83: t = TJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 84: t = YN11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 85: t = ZJ11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 86: t = AHK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 87: t = HBK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 88: t = JSK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 89: t = JLK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 90: t = KL12LiaoNingTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 15: t = GDKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 91: t = CQKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 92: t = GXKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 93: t = HNKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 94: t = TJKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 95: t = SDQYHTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 96: t = HeBK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 97: t = NMGK3Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 98: t = ZJKLCTrend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 99: t = SXKL10Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 100: t = HeB11X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; case 101: t = FCHB30X5Trend.CreateTrendChart(chartId, TrendChartType.PC, term, fields); break; default: t = new Tuple(false, ""); break; } if (!t.Item1) return t; if (ChangeState(TrendChartStatus.Default, chartId)) return new Tuple(true, ""); return new Tuple(false, string.Format("更改走势图【chartId={0}】状态失败!", chartId)); } /// /// 生成遗漏数据 /// /// 走势图ID /// 期号 /// true:生成term期数及以后期数的走势图及遗漏数据;false:仅生成当前期走势图及遗漏数据 /// public static Tuple CreateMissData(int Cid, int chartId, long term, LotterySearchField fields = null) { Tuple t = new Tuple(false, ""); switch (Cid) { case 1: t = FC3DTrendMiss.CreateMissData(chartId, term, fields); break; case 2: case 3: t = TCP3TrendMiss.CreateMissData(chartId, term, fields); break; case 4: t = FCSSQTrendMiss.CreateMissData(chartId, term, fields); break; case 5: break; case 12: break; case 19: break; } return t; } #endregion #region 下拉列表绑定 protected void BindDropDownListAndSelect(DropDownList ddl, IEnumerable dataSource, string NameField, string ValueField, string selectValue) { ddl.Items.Clear(); ddl.DataTextField = NameField; ddl.DataValueField = ValueField; ddl.DataSource = dataSource; ddl.DataBind(); ddl.Items.Insert(0, new ListItem("--请选择--", "")); if (string.IsNullOrEmpty(selectValue)) ddl.SelectedValue = selectValue; //if (selectValue != null) //{ // ListItem selectedItem = ddl.Items.FindByValue(selectValue); // ddl.SelectedIndex = ddl.Items.IndexOf(selectedItem); //} } #endregion } }