";
///
/// 高频彩种特殊处理
///
protected bool HighFrequency = false;
protected void Page_Load(object sender, EventArgs e)
{
try
{
InitData();
}
catch (Exception ex) {
var url = Request.Url.ToString();
CB.TrendTool.LogHelper.WriteLog(url + " => " + ex.ToString(), TrendTool.ExceptionType.ExceptionLog, true);
}
header1.ColumnName = lotName;
}
private void DealChartDataWithRazor(List list, int chartId, TrendChartInfo entity, LotteryInfo lottery, TrendChartSearchField chartSearch)
{
//if (null == list || 0 >= list.Count)
// return;
//modified by zizi,at 2016-5-18
//create viewbag
var viewbag = new Dictionary();
var isUseRazorTemplate = true;
Setting = "";
var rlist = CB.Data.Caches.GetTrendChartList(entity.Cid, entity.Tid, 0);
var zr = new StringBuilder(rlist.Count * 100);
if (null != rlist && 0 < rlist.Count)
{
var _index = 0;
zr.Append("
");
foreach (var item in rlist)
{
if (entity.Name.Contains("手机版"))
{
if (item.Name == entity.Name.Substring(3))
{
//modified by zizi , at 2016-5-20(改成电脑版)
zr.AppendFormat(
"
";
//}
}
}
else
{
ShowMenu = "";
}
years = ShowSearchYears(entity.Cid);
UpdateTrendSmart(entity.Id);
#region=====调用其它站点走势图特殊处理========
if (!string.IsNullOrEmpty(entity.Url) && entity.Url.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase))
{
HighFrequency = true;
chartData = "";
base.InitData();
return;
}
#endregion
var chartSearch = new TrendChartSearchField()
{
ChartId = chartId,
Record = WRequest.GetQueryInt("record"),
StartTerm = WRequest.GetQueryInt("startTerm"),
EndTerm = WRequest.GetQueryInt("endTerm"),
ChartType = TrendChartType.PC,
Year = WRequest.GetQueryInt("year"),
};
if (chartSearch.Year > 0)
{ chartSearch.Record = 1500; }
else if (chartSearch.StartTerm == chartSearch.EndTerm && chartSearch.EndTerm != 0)
{ chartSearch.Record = 100; chartSearch.StartTerm = 0; chartSearch.EndTerm = 0; }
else if ((0 >= chartSearch.StartTerm || 0 >= chartSearch.EndTerm) && 0 == chartSearch.Record)
{ chartSearch.Record = 30; }
switch (entity.Type)
{
case TrendChartIdType.Dynamic://动态生成
var lotterySearch = new GpLotterySearchField()
{
TopSize = WRequest.GetQueryInt("topSize"),
StartTerm = WRequest.GetQueryInt("startTerm"),
EndTerm = WRequest.GetQueryInt("endTerm"),
Year = WRequest.GetQueryInt("year"),
SearchDate = WRequest.GetQueryDateTime("searchTime"),
SearchDay = WRequest.GetQueryExist("searchTime")
};
if (lotterySearch.SearchDate.HasValue)
{
SearchTime = lotterySearch.SearchDate.Value;
}
var tlist = DealDifferentChart(entity.Cid, chartId, lotterySearch);
//if (tlist != null)
// tlist.Reverse();
DealChartDataWithRazor(tlist, chartId, entity, lottery, chartSearch);
break;
case TrendChartIdType.Normal:
Record = chartSearch.Record;
#region 直接读取结果集生成遗漏
var list = GetTrendChartList(entity.Cid, chartSearch);
if (null == list || 0 >= list.Count)
return;
//modified by zizi,at 2016-5-18
//create viewbag
var viewbag = new Dictionary();
var isUseRazorTemplate = IsUseRazorEngine(chartId);
var rlist = CB.Data.Caches.GetTrendChartList(entity.Cid, entity.Tid, 0);
var zr = new StringBuilder(rlist.Count * 100);
if (null != rlist && 0 < rlist.Count)
{
var _index = 0;
zr.Append("
");
foreach (var item in rlist)
{
if (entity.Name.Contains("手机版"))
{
if (item.Name == entity.Name.Substring(3))
{
//modified by zizi , at 2016-5-20(改成电脑版)
zr.AppendFormat(
"
"));
viewbag.Add("recommend2", zrs);
if (!isUseRazorTemplate)
{
zr = TemplateEngine.Template.GetTemplateContent("_trendChartfooter", null, viewbag);
//新增设置
//viewbag.Add("chartSearch", chartSearch);
Setting = TemplateEngine.Template.GetTemplateContent("_trendChartSetting", chartSearch, null).ToString();
}
}
if (isUseRazorTemplate)
{
chartData = GetRazorTemplateContent(entity.TemplateId, list, viewbag);
return;
}
//modified by zizi,at 2016-5-20
var sp = new StringBuilder(list.Count * 5000);
var qis = new StringBuilder(list.Count * 50);
for (int i = list.Count - 1; i >= 0; i--)
{
int begin = list[i].HtmlData.IndexOf("
");
string qi = list[i].HtmlData.Substring(begin, end + 1);
string qistr = Regex.Match(qi, "[0-9]{7}").ToString().Substring(2);
if (i == list.Count - 1)
{
first = Regex.Match(qi, "[0-9]{7}").ToString();
}
if (i == 0)
{
endqi = Regex.Match(qi, "[0-9]{7}").ToString();
}
qi = Regex.Replace(qi, "[0-9]{7}", qistr);
qis.Append(qi);
sp.Append(list[i].HtmlData.Remove(begin, end - begin));
}
//获取数据分析样式
List> DataAnalysisCssList = GetDataAnalysisCssList(chartSearch.ChartId, chartSearch.ChartType);
Dictionary DicchartData = new Dictionary();
DicchartData.Add("", qis.ToString());
DicchartData.Add("", sp.ToString());
DicchartData.Add("", LocalMissData(list, DataAnalysisCssList));
DicchartData.Add("", GetmissData(list[list.Count - 1], DataAnalysisCssList));
DicchartData.Add("", zr.ToString());
#endregion
chartData = BuildTemplateData(entity.TemplateId, DicchartData);
return;
case TrendChartIdType.Abnormal:
chartData = GetSpecialTrendChartList(entity, chartSearch, null);
if (entity.Id == 94 || entity.Id == 95)
{
string[] qistring = Regex.Split(chartData, "期");
endqi = Regex.Match(qistring[0], "[0-9]{7}").ToString();
first = Regex.Match(qistring[qistring.Length - 2], "[0-9]{7}").ToString();
}
return;
case TrendChartIdType.Static: //静态类型(图表)
chartData = FileUtil.ReadTextFile(entity.Url);
return;
}
base.InitData();
}
private bool IsUseRazorEngine(int chartId)
{
switch (chartId)
{
case 6:
case 10:
case 15:
case 18:
case 22:
case 29:
case 34:
case 35:
case 65:
case 66:
case 68:
case 69:
case 98:
case 157:
case 112:
case 194:
case 3:
case 48:
case 771://手机版东方6+1
case 772:
case 773://手机版浙江6+1
case 774:
case 775://手机版东方15选5
case 776:
case 777://手机版南粤36选7
case 778:
case 786://手机版四川快乐12
case 787:
case 788://手机版河南22选5
case 789:
case 791://手机版湖北22选5
case 792:
case 793://手机版新疆35选7
case 794:
case 795://手机版江苏7位数
case 796:
case 797://手机版福建31选7
case 798:
case 799://手机版福建36选7
case 800:
case 982://手机版湖北30选5
case 983:
Setting = "";
return true;
}
return false;
}
private string GetRazorTemplateContent(int tid, IList list, Dictionary viewbag)
{
Nancy.StaticConfiguration.DisableErrorTraces = false;
#if DEBUG
Nancy.StaticConfiguration.DisableCaches = true;
#endif
var template = CB.Data.Caches.GetTemplateInfo(tid);
if (null == template)
return "";
// var lastItem = list.LastOrDefault();
var fileName = System.IO.Path.GetFileName(template.FilePath);
var _list = list == null ? new List() : list;
var tdEntity = new TrendDataEntity
{
DataItems = _list,
TrendDataItems = _list,
};
var sb = TemplateEngine.Template.GetTemplateContent(fileName, tdEntity, viewbag);
return sb.ToString();
}
///
/// 历史遗漏
///
///
///
private string GetmissData(TrendChartData Entity, List> dataAnalysisCssList)
{
StringBuilder missData = new StringBuilder();
if (Entity != null)
{
missData.Append("");
int count = 0;
#region 历史最大遗漏
missData.Append("
");
for (int i = 0; i < Entity.AllMaxMiss.Count(); i++)
{
if (Entity.AllMaxMiss[i] == "-1")
{
if (i != 0)
{
missData.Append(string.Format("