123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Web;
- using System.Web.UI.WebControls;
- using System.Xml;
- using CB.Common;
- using CB.Data;
- using CB.Entity;
- using CB.TrendChart.FrequencyTrendChart;
- using CB.TVUCenter.Config;
- using CB.TVUCenter.Data;
- using CB.TVUCenter.Entity;
- namespace CB.TVTrendChartData
- {
-
-
-
- public class GetTrendChartAPI : IHttpHandler
- {
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- public void ProcessRequest(HttpContext context)
- {
-
- string sign, data;
- string key;
- if (TVConfigs.GetConfig().Debug)
- {
- key = "E03F49114203ABCD";
- }
- else
- {
- key = TVConfigs.GetConfig().DecryptKey;
- }
- sign = WRequest.GetString("sign");
- data = WRequest.GetString("data");
- string RealData = string.Empty;
- var DicData = new Dictionary<string, string>();
-
- try
- {
- RealData = TVUCenter.Encrypt.AES.Decrypt(data, key);
- if (!string.IsNullOrEmpty(RealData))
- {
- foreach (var item in RealData.Split(','))
- {
- DicData.Add(item.Split(':')[0], item.Split(':')[1]);
- }
- }
- }
- catch (Exception ex)
- {
- IsDebug(context, ex.Message);
- return;
- }
-
-
- string realUserName = DicData["Mac"];
- int LotteryId = DicData["LotteryId"].ToInt();
- int ChartId = DicData["ChartId"].ToInt();
- int Direction = DicData["Direction"].ToInt();
- if (CheckSign(sign, RealData, data, realUserName))
- {
-
- string resultData = GetTrendChartData(LotteryId, ChartId, Direction);
- if (!string.IsNullOrEmpty(resultData))
- {
- context.Response.ContentType = "text/html";
- context.Response.Write(resultData);
- }
- else
- {
- IsDebug(context, "验证通过,走势图读取错误!");
- }
- }
- else
- {
- IsDebug(context, "验证失败,用户不合法!!");
- }
- }
- #region 常用方法及验证
-
-
-
-
-
-
-
-
- private static bool CheckSign(string sign, string RealData, string data, string realUserName)
- {
- if (sign == Utils.MD5(RealData))
- {
- return !OnlineUsers.CheckUserLock(new OnlineUserInfo()
- {
- UserName = realUserName,
- Sign = data,
- RequestTime = DateTime.Now
- });
- }
- return false;
- }
- #endregion
- #region 生成走势图数据和遗漏数据
- private string GetTrendChartData(int lotteryid, int chartid, int drection)
- {
- var chartInfo = CB.Data.Caches.GetTrendChartInfo(chartid);
- if (null == chartInfo)
- return "";
- var chartData = GetTrendChartData(chartInfo.Id);
- if(null==chartData)
- return "";
- var sp = new StringBuilder(10240);
- sp.Append("<tr class=\"miss\">");
- sp.Append("<td colspan=\"6\">出现次数</td>");
- foreach (var item in chartData.AllTimes)
- {
- if (item == "-1")
- continue;
- foreach (var missvalue in item.Split(','))
- {
- sp.Append(string.Format("<td>{0}</td>", missvalue));
- }
- }
- sp.Append("<td> </td><td> </td><td> </td><td> </td><td> </td></tr>");
- sp.Append("<tr class=\"miss\">");
- sp.Append("<td colspan=\"6\">平均遗漏</td>");
- foreach (var item in chartData.AllMaxMiss)
- {
- if (item == "-1")
- continue;
- foreach (var missvalue in item.Split(','))
- {
- sp.Append(string.Format("<td>{0}</td>", missvalue));
- }
- }
- sp.Append("<td> </td><td> </td><td> </td><td> </td><td> </td></tr>");
- sp.Append("<tr class=\"miss\">");
- sp.Append("<td colspan=\"6\">最大遗漏</td>");
- foreach (var item in chartData.AllMaxMiss)
- {
- if (item == "-1")
- continue;
- foreach (var missvalue in item.Split(','))
- {
- sp.Append(string.Format("<td>{0}</td>", missvalue));
- }
- }
- sp.Append("<td> </td><td> </td><td> </td><td> </td><td> </td></tr>");
- sp.Append("<tr class=\"miss\">");
- sp.Append("<td colspan=\"6\">当前遗漏</td>");
- foreach (var item in chartData.LocalMiss)
- {
- if (item == "-1")
- continue;
- foreach (var missvalue in item.Split(','))
- {
- sp.Append(string.Format("<td>{0}</td>", missvalue));
- }
- }
- sp.Append("<td> </td><td> </td><td> </td><td> </td><td> </td></tr>");
- var tags = new Dictionary<string, string>();
- tags.Add("<!--@@chartData-->", chartData.HtmlData);
- tags.Add("<!--@@missData-->", sp.ToString());
- return CB.Framework.WebPage.BuildTemplateData(chartInfo.TemplateId, tags);
- #region 已注释
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #endregion
- }
-
-
-
-
-
-
-
- private TrendChartData GetTrendChartData(int chartid, TrendChartType chartType = TrendChartType.TV, LotterySearchField fields = null)
- {
- switch (chartid)
- {
- case 342:
- return KL12SiChuanTrend.PreViewTrendChart(chartid, chartType, null);
- default:
- return null;
- }
- }
- #endregion
- #region 是否走Debug模式
- public void IsDebug(HttpContext context, string msg)
- {
- context.Response.ContentType = "text/plain";
- if (TVConfigs.GetConfig().Debug)
- {
- context.Response.StatusCode = 404;
- context.Response.Write("错误信息:" + msg);
- }
- }
- #endregion
- }
- }
|