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
}
}