list.aspx.cs 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using CB.Entity;
  8. using CB.Common;
  9. using CB.Framework;
  10. using System.Text;
  11. using CB.Data;
  12. using CB.TrendChart.LotteryTrendChart;
  13. using System.Text.RegularExpressions;
  14. using CB.Entity.Frequency;
  15. using CB.TrendChart.FrequencyTrendChart;
  16. namespace CB.Wap.zs
  17. {
  18. public partial class list : WebPage
  19. {
  20. protected string hTitle = "", hDescription = "", hKeywords = "";
  21. protected string chartData = "", chartName = "";
  22. protected int hcid = 0;
  23. //彩种相关
  24. protected string lotName = "", lotLogoCsss = "";
  25. protected string ShowMenu = "", HideMenu = "", years = "";
  26. protected string navStr = "";
  27. protected string pcUrl = "http://www.55128.cn/zs/{0}_{1}.htm";
  28. protected string first = "0", endqi = "0";
  29. protected string searchYearHTML = "";
  30. //当前日期
  31. protected DateTime SearchTime = DateTime.Today;
  32. //选择期数
  33. protected int Record = 50;
  34. /// <summary>
  35. /// 设置弹出框内容
  36. /// </summary>
  37. protected string Setting = @"<div class=""bg-black"">
  38. <div class=""search-box"">
  39. <h1>走势图设置</h1>
  40. <dl class=""search-link"">
  41. <dt><span>期数</span></dt>
  42. <dd>
  43. <a href=""?record=50"" class=""select"">近50期</a><a href=""?record=80"">近80期</a>
  44. <a href=""?record=100"">近100期</a><a href=""?record=200"">近200期</a>
  45. </dd>
  46. </dl>
  47. <dl class=""ctl-box"">
  48. <dt><span class=""ctl-title"">功能</span></dt>
  49. <dd class=""ctl-list"">
  50. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_foldLine"" id=""ctl_foldLine1"" checked=""checked"" autocomplete=""off"" /><label for=""ctl_foldLine1"">折线</label></span>
  51. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_miss"" id=""ctl_miss1"" autocomplete=""off"" /><label for=""ctl_miss1"">不带遗漏</label></span>
  52. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_sliceMiss"" id=""ctl_sliceMiss1"" autocomplete=""off"" /><label for=""ctl_sliceMiss1"">遗漏分层</label></span>
  53. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_repeat"" id=""ctl_repeat1"" autocomplete=""off"" /><label for=""ctl_repeat1"">重号</label></span>
  54. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_near"" id=""ctl_near1"" autocomplete=""off"" /><label for=""ctl_near1"">邻号</label></span>
  55. <span class=""ctl-item""><input type=""checkbox"" name=""ctl_jump"" id=""ctl_jump1"" autocomplete=""off"" /><label for=""ctl_jump1"">跳号</label></span>
  56. </dd>
  57. </dl>
  58. <dl class=""sear"">
  59. <dt><span>搜索</span></dt>
  60. <dd><select class=""mSelectBox"" onchange=""if(this.value.length==5){window.location=window.location.href.split('?')[0]+'?year='+this.value.substr(0,4);}"">
  61. <option class=""mSelect"" selected=""selected"">按年份</option>
  62. <option><a href=""?year=2016"">2016年</a></option><option><a href=""?year=2015"">2015年</a></option><option><a href=""?year=2014"">2014年</a></option><option><a href=""?year=2013"">2013年</a></option><option><a href=""?year=2012"">2012年</a></option><option><a href=""?year=2011"">2011年</a></option><option><a href=""?year=2010"">2010年</a></option><option><a href=""?year=2009"">2009年</a></option><option><a href=""?year=2008"">2008年</a></option><option><a href=""?year=2007"">2007年</a></option><option><a href=""?year=2006"">2006年</a></option><option><a href=""?year=2005"">2005年</a></option><option><a href=""?year=2004"">2004年</a></option><option><a href=""?year=2003"">2003年</a></option>
  63. </select>
  64. </dd>
  65. <dd>
  66. <input id=""startTerm"" name=""startTerm"" type=""text"" value=""2016015"" onfocus=""this.value='';"" onkeyup=""this.value=this.value.replace(/[^0-9]/g,'')"" /><span>至</span><input id=""endTerm"" name=""endTerm"" type=""text"" value=""2016044"" onfocus=""this.value='';"" onkeyup=""this.value=this.value.replace(/[^0-9]/g,'')"" /><span>期</span>
  67. </dd>
  68. </dl>
  69. </div>
  70. <div class=""sec-btn"">
  71. <input type=""button"" class=""cancel"" value=""取消""/>
  72. <input type=""submit"" class=""searchs"" value=""确定""/>
  73. </div>
  74. </div>";
  75. /// <summary>
  76. /// 高频彩种特殊处理
  77. /// </summary>
  78. protected bool HighFrequency = false;
  79. protected void Page_Load(object sender, EventArgs e)
  80. {
  81. try
  82. {
  83. InitData();
  84. }
  85. catch (Exception ex) {
  86. var url = Request.Url.ToString();
  87. CB.TrendTool.LogHelper.WriteLog(url + " => " + ex.ToString(), TrendTool.ExceptionType.ExceptionLog, true);
  88. }
  89. header1.ColumnName = lotName;
  90. }
  91. private void DealChartDataWithRazor(List<TrendChartData> list, int chartId, TrendChartInfo entity, LotteryInfo lottery, TrendChartSearchField chartSearch)
  92. {
  93. //if (null == list || 0 >= list.Count)
  94. // return;
  95. //modified by zizi,at 2016-5-18
  96. //create viewbag
  97. var viewbag = new Dictionary<string, object>();
  98. var isUseRazorTemplate = true;
  99. Setting = "";
  100. var rlist = CB.Data.Caches.GetTrendChartList(entity.Cid, entity.Tid, 0);
  101. var zr = new StringBuilder(rlist.Count * 100);
  102. if (null != rlist && 0 < rlist.Count)
  103. {
  104. var _index = 0;
  105. zr.Append("<ul>");
  106. foreach (var item in rlist)
  107. {
  108. if (entity.Name.Contains("手机版"))
  109. {
  110. if (item.Name == entity.Name.Substring(3))
  111. {
  112. //modified by zizi , at 2016-5-20(改成电脑版)
  113. zr.AppendFormat(
  114. "<li><a href=\"http://www.55128.cn/zs/{0}_{1}.htm\" target=\"_blank\" class=\"pc-zs\">{2}</a></li>",
  115. item.Cid, item.Id, "电脑版走势");
  116. _index++;
  117. }
  118. }
  119. else
  120. {
  121. if (item.Name == entity.Name)
  122. {
  123. //modified by zizi , at 2016-5-20(去掉前面的彩种名称)
  124. zr.AppendFormat(
  125. "<li><a href=\"http://www.55128.cn/zs/{0}_{1}.htm\" target=\"_blank\" class=\"pc-zs\">{2}</a></li>",
  126. item.Cid, item.Id, "电脑版走势");//Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase));
  127. _index++;
  128. }
  129. }
  130. if (_index == 3)
  131. {
  132. zr.Append("</ul><ul>");
  133. _index = 0;
  134. }
  135. }
  136. if (zr.Length == 0)
  137. zr.Append("<ul>");
  138. foreach (var item in rlist)
  139. {
  140. var exceptionCids = new int[] { 15, 20 };
  141. var splitCid = 29;
  142. if ((lottery.Cid < splitCid && !exceptionCids.Contains(lottery.Cid) &&
  143. !item.Name.Contains("手机版")) ||
  144. ((lottery.Cid >= splitCid || exceptionCids.Contains(lottery.Cid)) &&
  145. item.Name.Contains("手机版")))
  146. //if (item.Name != entity.Name.Substring(3) && !item.Name.Contains("手机版"))
  147. {
  148. //modified by zizi , at 2016-5-20(去掉前面的彩种名称)
  149. var _name = LotteryNameReplace(item.Name, lottery.Name);
  150. //TODO: 2016-7-15 保持移动端和pc端的地址一致
  151. var _id = MobPcConvert.GetSyncIdFromM(item.Id);
  152. if (_id == 0) _id = item.Id;
  153. zr.AppendFormat("<li><a href=\"{0}_{1}.htm\" target=\"_blank\">{2}</a></li>", item.Cid, _id, _name);
  154. //zr.AppendFormat("<li><a href=\"{0}_{1}.htm\" target=\"_blank\">{2}</a></li>", item.Cid,
  155. // item.Id,
  156. // RemovePreffixLotName(Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase)));//item.Name);
  157. _index++;
  158. }
  159. if (_index == 3)
  160. {
  161. zr.Append("</ul><ul>");
  162. _index = 0;
  163. }
  164. }
  165. if (_index < 3 && _index > 0)
  166. {
  167. for (var i = _index; i < 3; i++)
  168. {
  169. zr.Append("<li></li>");
  170. }
  171. zr.Append("</ul>");
  172. }
  173. //读取razor模板[_trendChartfooter.cshtml]
  174. var zrs = zr.ToString();
  175. if (zrs.EndsWith("<ul>"))
  176. zrs = zrs.Remove(zrs.Length - 4, 4);
  177. viewbag.Add("SearchTime", SearchTime);
  178. viewbag.Add("recommend1", CB.Data.RecommendsService.Get(31).Content);//"<p>看预测、技巧加微信:<span>ikancaila</span> -长按复制</p>"));
  179. viewbag.Add("recommend2", zrs);
  180. if (!isUseRazorTemplate)
  181. zr = TemplateEngine.Template.GetTemplateContent("_trendChartfooter", null, viewbag);
  182. }
  183. if (isUseRazorTemplate)
  184. {
  185. chartData = GetRazorTemplateContent(entity.TemplateId, list, viewbag);
  186. return;
  187. }
  188. }
  189. private List<TrendChartData> DealDifferentChart(int cId, int chartId, GpLotterySearchField lotterySearch)
  190. {
  191. switch (cId)
  192. {
  193. case 59://四川快乐12
  194. return KL12Trend<KL12Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL12_SiChuan", lotterySearch).Item3;
  195. case 90://辽宁快乐12
  196. return KL12Trend<KL12Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL12_LiaoNing", lotterySearch).Item3;
  197. case 98://浙江快乐12
  198. return KL12Trend<KL12Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL12_ZheJiang", lotterySearch).Item3;
  199. case 70: //11选5-安徽 70-85都是11选5
  200. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_AnHui", lotterySearch).Item3;
  201. case 71: //重庆11选5
  202. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_ChongQing", lotterySearch).Item3;
  203. case 72: //广东11选5
  204. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_GuangDong", lotterySearch).Item3;
  205. case 73: //贵州11选5
  206. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_GuiZhou", lotterySearch).Item3;
  207. case 74: //黑龙江11选5
  208. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_HeiLongJiang", lotterySearch).Item3;
  209. case 75: //湖北11选5
  210. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_HuBei", lotterySearch).Item3;
  211. case 76: //江苏11选5
  212. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_JiangSu", lotterySearch).Item3;
  213. case 77: //江西11选5
  214. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_JiangXi", lotterySearch).Item3;
  215. case 78: //吉林11选5
  216. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_JiLin", lotterySearch).Item3;
  217. case 79: //辽宁11选5
  218. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_LiaoNing", lotterySearch).Item3;
  219. case 80: //山东11选5
  220. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_ShanDong", lotterySearch).Item3;
  221. case 81: //上海11选5
  222. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_Shanghai", lotterySearch).Item3;
  223. case 82: //11选5-四川
  224. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_SiChuan", lotterySearch).Item3;
  225. case 83: //天津11选5
  226. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_TianJin", lotterySearch).Item3;
  227. case 84: //云南11选5
  228. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_YunNan", lotterySearch).Item3;
  229. case 85: //浙江11选5
  230. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_ZheJiang", lotterySearch).Item3;
  231. case 100:
  232. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_HeBei", lotterySearch).Item3;
  233. case 86://安徽快3
  234. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_AnHui", lotterySearch).Item3;
  235. case 87://湖北快3
  236. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_HuBei", lotterySearch).Item3;
  237. case 88://江苏快3
  238. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_JiangSu", lotterySearch).Item3;
  239. case 89://吉林快3
  240. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_JiLin", lotterySearch).Item3;
  241. case 96://河北快3
  242. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_HeBei", lotterySearch).Item3;
  243. case 97://内蒙古快3
  244. return KL12Trend<K3Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_K3_NeiMengGu", lotterySearch).Item3;
  245. //TODO:未配置
  246. case 15://广东快乐十分
  247. return KL12Trend<KL10FInfo>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_GuangDong", lotterySearch).Item3;
  248. case 91://重庆快乐十分
  249. return KL12Trend<KL10FInfo>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_ChongQing", lotterySearch).Item3;
  250. case 92://广西快乐十分
  251. return KL12Trend<KL10FInfo_GuangXi>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_GuangXi", lotterySearch).Item3;
  252. case 93://湖南快乐十分
  253. return KL12Trend<KL10FInfo>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_HuNan", lotterySearch).Item3;
  254. case 94://天津快乐十分
  255. return KL12Trend<KL10FInfo>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_TianJin", lotterySearch).Item3;
  256. case 99://山西快乐十分
  257. return KL12Trend<KL10FInfo>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL10F_ShanXi", lotterySearch).Item3;
  258. case 95://群英会-山东
  259. return KL12Trend<QYHInfo_ShanDong>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_QYH_ShanDong", lotterySearch).Item3;
  260. //2016-12-28新增高频彩
  261. case 103:
  262. return KL12Trend<KLPK3Info_ShanDong>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KLPK3_ShanDong", lotterySearch).Item3;
  263. case 104://湖南幸运赛车
  264. return KL12Trend<XYSCInfo_HuNan>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_XYSC_HuNan", lotterySearch).Item3;
  265. case 105://河南快赢481(泳坛夺金)
  266. return KL12Trend<YTDJInfo_HeNan>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KY481_HeNan", lotterySearch).Item3;
  267. case 102://上海时时乐
  268. return KL12Trend<SSLInfo_ShangHai>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_SSL_ShangHai", lotterySearch).Item3;
  269. case 114:
  270. return KL12Trend<KL8Info_BeiJing>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_KL8_BeiJing", lotterySearch).Item3;
  271. case 115://北京pk10
  272. return KL12Trend<GPpk10Info_BeiJing>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_PK10_BeiJing", lotterySearch).Item3;
  273. case 106: //内蒙古11选5
  274. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_NeiMengGu", lotterySearch).Item3;
  275. case 107: //甘肃11选5
  276. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_GanSu", lotterySearch).Item3;
  277. case 108: //福建11选5(即乐彩)
  278. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_FuJian", lotterySearch).Item3;
  279. case 109: //新疆11选5(新乐彩)
  280. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_XinJiang", lotterySearch).Item3;
  281. case 110: //山西11选5
  282. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_ShanXiTaiYuan", lotterySearch).Item3;
  283. case 111: //陕西11选5
  284. return KL12Trend<GP11x5Info>.CreateGPTrendChart(cId, chartId, TrendChartType.PC, "GP_11x5_ShanXiXiAn", lotterySearch).Item3;
  285. default:
  286. return null;
  287. }
  288. }
  289. protected override void InitData()
  290. {
  291. //TODO:2016-7-15 保持移动端和pc端的地址一致
  292. var _pc_chartId = WRequest.GetQueryInt("chartid");
  293. int chartId = MobPcConvert.GetSyncIdFromPc(_pc_chartId);//WRequest.GetQueryInt("chartid");
  294. if (chartId == 0) chartId = _pc_chartId;
  295. if (0 >= chartId)
  296. { ShowError(); return; }
  297. var entity = CB.Data.Caches.GetTrendChartInfo(chartId);
  298. if (null == entity)
  299. { ShowError(); return; }
  300. chartName = entity.Name;
  301. hTitle = entity.hTitle;
  302. hDescription = entity.hDescription;
  303. hKeywords = entity.hKeywords;
  304. hcid = entity.Cid;
  305. pcUrl = string.Format(pcUrl, entity.Cid, entity.Id);
  306. searchYearHTML = ShowSearchYears(entity.Cid);
  307. var lottery = CB.Data.Caches.GetLotteryInfo(entity.Cid);
  308. if (null != lottery)
  309. {
  310. lotName = lottery.Name;
  311. lotLogoCsss = GetLotteryLogoCss(entity.Cid);
  312. navStr = string.Format("<a href=\"/zs/{0}_{1}.htm\">{2}</a> - {3}", lottery.Id, chartId, lotName, chartName);
  313. }
  314. var Tlist = CB.Data.Caches.GetTrendChartList(entity.Cid, 2001, 0);
  315. if (Tlist.Count > 0)
  316. {
  317. for (int i = 0; i < Tlist.Count; i++)
  318. {
  319. //if (i < 3)
  320. //{
  321. //Modified by zizi at 2016-6-1, 由于七星彩(19)之前的彩票未区分手机版本和电脑数据(个人比较认同不用区分的方式),后面的又建了电脑版和手机版两种
  322. var exceptionCids = new int[] {15, 20};
  323. var splitCid = 29;
  324. if ((lottery.Cid < splitCid && !exceptionCids.Contains(lottery.Cid) && !Tlist[i].Name.Contains("手机版")) || ((lottery.Cid >= splitCid || exceptionCids.Contains(lottery.Cid)) && Tlist[i].Name.Contains("手机版")))
  325. {
  326. var _name = LotteryNameReplace(Tlist[i].Name, lottery.Name);
  327. //TODO: 2016-7-15 保持移动端和pc端的地址一致
  328. var _id = MobPcConvert.GetSyncIdFromM(Tlist[i].Id);
  329. if (_id == 0) _id = Tlist[i].Id;
  330. ShowMenu += "<li><a href=\"/zs/" + Tlist[i].Cid + "_" + _id + ".htm\">" +
  331. _name +
  332. "</a></li>";
  333. //modified by zizi , at 2016-5-20(去掉页头前面的彩种名称)
  334. //modified by zizi , at 2016-5-30(恢复页头前面的彩种名称)
  335. if (Tlist[i].Id == chartId)
  336. lotName = lottery.Name.Trim() + _name;
  337. }
  338. //}
  339. //else
  340. //{
  341. // HideMenu += "<li><a href=\"/zs/" + Tlist[i].Cid + "_" + Tlist[i].Id + ".htm\">" + Regex.Replace(Tlist[i].Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase) + "</a></li>";
  342. //}
  343. }
  344. }
  345. else
  346. {
  347. ShowMenu = "";
  348. }
  349. years = ShowSearchYears(entity.Cid);
  350. UpdateTrendSmart(entity.Id);
  351. #region=====调用其它站点走势图特殊处理========
  352. if (!string.IsNullOrEmpty(entity.Url) && entity.Url.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase))
  353. {
  354. HighFrequency = true;
  355. chartData = "<iframe src=\"" + entity.Url + "\" frameborder=\"0\" width=\"1000\" id=\"myframe\" name=\"myframe\" scrolling=\"no\"></iframe>";
  356. base.InitData();
  357. return;
  358. }
  359. #endregion
  360. var chartSearch = new TrendChartSearchField()
  361. {
  362. ChartId = chartId,
  363. Record = WRequest.GetQueryInt("record"),
  364. StartTerm = WRequest.GetQueryInt("startTerm"),
  365. EndTerm = WRequest.GetQueryInt("endTerm"),
  366. ChartType = TrendChartType.PC,
  367. Year = WRequest.GetQueryInt("year"),
  368. };
  369. if (chartSearch.Year > 0)
  370. { chartSearch.Record = 1500; }
  371. else if (chartSearch.StartTerm == chartSearch.EndTerm && chartSearch.EndTerm != 0)
  372. { chartSearch.Record = 100; chartSearch.StartTerm = 0; chartSearch.EndTerm = 0; }
  373. else if ((0 >= chartSearch.StartTerm || 0 >= chartSearch.EndTerm) && 0 == chartSearch.Record)
  374. { chartSearch.Record = 30; }
  375. switch (entity.Type)
  376. {
  377. case TrendChartIdType.Dynamic://动态生成
  378. var lotterySearch = new GpLotterySearchField()
  379. {
  380. TopSize = WRequest.GetQueryInt("topSize"),
  381. StartTerm = WRequest.GetQueryInt("startTerm"),
  382. EndTerm = WRequest.GetQueryInt("endTerm"),
  383. Year = WRequest.GetQueryInt("year"),
  384. SearchDate = WRequest.GetQueryDateTime("searchTime"),
  385. SearchDay = WRequest.GetQueryExist("searchTime")
  386. };
  387. if (lotterySearch.SearchDate.HasValue)
  388. {
  389. SearchTime = lotterySearch.SearchDate.Value;
  390. }
  391. var tlist = DealDifferentChart(entity.Cid, chartId, lotterySearch);
  392. //if (tlist != null)
  393. // tlist.Reverse();
  394. DealChartDataWithRazor(tlist, chartId, entity, lottery, chartSearch);
  395. break;
  396. case TrendChartIdType.Normal:
  397. Record = chartSearch.Record;
  398. #region 直接读取结果集生成遗漏
  399. var list = GetTrendChartList(entity.Cid, chartSearch);
  400. if (null == list || 0 >= list.Count)
  401. return;
  402. //modified by zizi,at 2016-5-18
  403. //create viewbag
  404. var viewbag = new Dictionary<string, object>();
  405. var isUseRazorTemplate = IsUseRazorEngine(chartId);
  406. var rlist = CB.Data.Caches.GetTrendChartList(entity.Cid, entity.Tid, 0);
  407. var zr = new StringBuilder(rlist.Count * 100);
  408. if (null != rlist && 0 < rlist.Count)
  409. {
  410. var _index = 0;
  411. zr.Append("<ul>");
  412. foreach (var item in rlist)
  413. {
  414. if (entity.Name.Contains("手机版"))
  415. {
  416. if (item.Name == entity.Name.Substring(3))
  417. {
  418. //modified by zizi , at 2016-5-20(改成电脑版)
  419. zr.AppendFormat(
  420. "<li><a href=\"http://www.55128.cn/zs/{0}_{1}.htm\" target=\"_blank\" class=\"pc-zs\">{2}</a></li>",
  421. item.Cid, item.Id, "电脑版走势");
  422. _index++;
  423. }
  424. }
  425. else
  426. {
  427. if (item.Name == entity.Name)
  428. {
  429. //modified by zizi , at 2016-5-20(去掉前面的彩种名称)
  430. zr.AppendFormat(
  431. "<li><a href=\"http://www.55128.cn/zs/{0}_{1}.htm\" target=\"_blank\" class=\"pc-zs\">{2}</a></li>",
  432. item.Cid, item.Id, "电脑版走势");//Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase));
  433. _index++;
  434. }
  435. }
  436. if (_index == 3)
  437. {
  438. zr.Append("</ul><ul>");
  439. _index = 0;
  440. }
  441. }
  442. if (zr.Length == 0)
  443. zr.Append("<ul>");
  444. foreach (var item in rlist)
  445. {
  446. //if (item.Name != entity.Name.Substring(3) && !item.Name.Contains("手机版"))
  447. //{
  448. // //modified by zizi , at 2016-5-20(去掉前面的彩种名称)
  449. // zr.AppendFormat("<li><a href=\"{0}_{1}.htm\" target=\"_blank\">{2}</a></li>", item.Cid,
  450. // item.Id,
  451. // RemovePreffixLotName(Regex.Replace(item.Name, "^" + lottery.Name, "", RegexOptions.IgnoreCase)));//item.Name);
  452. // _index++;
  453. //}
  454. //modified by zizi, at 2016-6-17,对地方彩和高频彩只读取带"手机版”的连接
  455. var exceptionCids = new int[] { 15, 20 };
  456. var splitCid = 29;
  457. if ((lottery.Cid < splitCid && !exceptionCids.Contains(lottery.Cid) &&
  458. !item.Name.Contains("手机版")) ||
  459. ((lottery.Cid >= splitCid || exceptionCids.Contains(lottery.Cid)) &&
  460. item.Name.Contains("手机版")))
  461. {
  462. var _name = LotteryNameReplace(item.Name, lottery.Name);
  463. //TODO: 2016-7-15 保持移动端和pc端的地址一致
  464. var _id = MobPcConvert.GetSyncIdFromM(item.Id);
  465. if (_id == 0) _id = item.Id;
  466. zr.AppendFormat("<li><a href=\"{0}_{1}.htm\" target=\"_blank\">{2}</a></li>", item.Cid, _id, _name);
  467. _index++;
  468. }
  469. if (_index == 3)
  470. {
  471. zr.Append("</ul><ul>");
  472. _index = 0;
  473. }
  474. }
  475. if (_index < 3 && _index > 0)
  476. {
  477. for (var i = _index; i < 3; i++)
  478. {
  479. zr.Append("<li></li>");
  480. }
  481. zr.Append("</ul>");
  482. }
  483. //读取razor模板[_trendChartfooter.cshtml]
  484. var zrs = zr.ToString();
  485. if (zrs.EndsWith("<ul>"))
  486. zrs = zrs.Remove(zrs.Length - 4, 4);
  487. viewbag.Add("recommend1", CB.Data.RecommendsService.Get(31).Content);//"<p>看预测、技巧加微信:<span>ikancaila</span> -长按复制</p>"));
  488. viewbag.Add("recommend2", zrs);
  489. if (!isUseRazorTemplate)
  490. {
  491. zr = TemplateEngine.Template.GetTemplateContent("_trendChartfooter", null, viewbag);
  492. //新增设置
  493. //viewbag.Add("chartSearch", chartSearch);
  494. Setting = TemplateEngine.Template.GetTemplateContent("_trendChartSetting", chartSearch, null).ToString();
  495. }
  496. }
  497. if (isUseRazorTemplate)
  498. {
  499. chartData = GetRazorTemplateContent(entity.TemplateId, list, viewbag);
  500. return;
  501. }
  502. //modified by zizi,at 2016-5-20
  503. var sp = new StringBuilder(list.Count * 5000);
  504. var qis = new StringBuilder(list.Count * 50);
  505. for (int i = list.Count - 1; i >= 0; i--)
  506. {
  507. int begin = list[i].HtmlData.IndexOf("<td");
  508. int end = list[i].HtmlData.IndexOf("</td>");
  509. string qi = list[i].HtmlData.Substring(begin, end + 1);
  510. string qistr = Regex.Match(qi, "[0-9]{7}").ToString().Substring(2);
  511. if (i == list.Count - 1)
  512. {
  513. first = Regex.Match(qi, "[0-9]{7}").ToString();
  514. }
  515. if (i == 0)
  516. {
  517. endqi = Regex.Match(qi, "[0-9]{7}").ToString();
  518. }
  519. qi = Regex.Replace(qi, "[0-9]{7}", qistr);
  520. qis.Append(qi);
  521. sp.Append(list[i].HtmlData.Remove(begin, end - begin));
  522. }
  523. //获取数据分析样式
  524. List<Tuple<string, string>> DataAnalysisCssList = GetDataAnalysisCssList(chartSearch.ChartId, chartSearch.ChartType);
  525. Dictionary<string, string> DicchartData = new Dictionary<string, string>();
  526. DicchartData.Add("<!--@@chartQi-->", qis.ToString());
  527. DicchartData.Add("<!--@@chartData-->", sp.ToString());
  528. DicchartData.Add("<!--@@localMissData-->", LocalMissData(list, DataAnalysisCssList));
  529. DicchartData.Add("<!--@@missData-->", GetmissData(list[list.Count - 1], DataAnalysisCssList));
  530. DicchartData.Add("<!--@@rz-->", zr.ToString());
  531. #endregion
  532. chartData = BuildTemplateData(entity.TemplateId, DicchartData);
  533. return;
  534. case TrendChartIdType.Abnormal:
  535. chartData = GetSpecialTrendChartList(entity, chartSearch, null);
  536. if (entity.Id == 94 || entity.Id == 95)
  537. {
  538. string[] qistring = Regex.Split(chartData, "期");
  539. endqi = Regex.Match(qistring[0], "[0-9]{7}").ToString();
  540. first = Regex.Match(qistring[qistring.Length - 2], "[0-9]{7}").ToString();
  541. }
  542. return;
  543. case TrendChartIdType.Static: //静态类型(图表)
  544. chartData = FileUtil.ReadTextFile(entity.Url);
  545. return;
  546. }
  547. base.InitData();
  548. }
  549. private bool IsUseRazorEngine(int chartId)
  550. {
  551. switch (chartId)
  552. {
  553. case 6:
  554. case 10:
  555. case 15:
  556. case 18:
  557. case 22:
  558. case 29:
  559. case 34:
  560. case 35:
  561. case 65:
  562. case 66:
  563. case 68:
  564. case 69:
  565. case 98:
  566. case 157:
  567. case 112:
  568. case 194:
  569. case 3:
  570. case 48:
  571. case 771://手机版东方6+1
  572. case 772:
  573. case 773://手机版浙江6+1
  574. case 774:
  575. case 775://手机版东方15选5
  576. case 776:
  577. case 777://手机版南粤36选7
  578. case 778:
  579. case 786://手机版四川快乐12
  580. case 787:
  581. case 788://手机版河南22选5
  582. case 789:
  583. case 791://手机版湖北22选5
  584. case 792:
  585. case 793://手机版新疆35选7
  586. case 794:
  587. case 795://手机版江苏7位数
  588. case 796:
  589. case 797://手机版福建31选7
  590. case 798:
  591. case 799://手机版福建36选7
  592. case 800:
  593. case 982://手机版湖北30选5
  594. case 983:
  595. Setting = "";
  596. return true;
  597. }
  598. return false;
  599. }
  600. private string GetRazorTemplateContent(int tid, IList<TrendChartData> list, Dictionary<string, object> viewbag)
  601. {
  602. Nancy.StaticConfiguration.DisableErrorTraces = false;
  603. #if DEBUG
  604. Nancy.StaticConfiguration.DisableCaches = true;
  605. #endif
  606. var template = CB.Data.Caches.GetTemplateInfo(tid);
  607. if (null == template)
  608. return "";
  609. // var lastItem = list.LastOrDefault();
  610. var fileName = System.IO.Path.GetFileName(template.FilePath);
  611. var _list = list == null ? new List<TrendChartData>() : list;
  612. var tdEntity = new TrendDataEntity<TrendChartData, TrendChartData>
  613. {
  614. DataItems = _list,
  615. TrendDataItems = _list,
  616. };
  617. var sb = TemplateEngine.Template.GetTemplateContent(fileName, tdEntity, viewbag);
  618. return sb.ToString();
  619. }
  620. /// <summary>
  621. /// 历史遗漏
  622. /// </summary>
  623. /// <param name="Entity"></param>
  624. /// <returns></returns>
  625. private string GetmissData(TrendChartData Entity, List<Tuple<string, string>> dataAnalysisCssList)
  626. {
  627. StringBuilder missData = new StringBuilder();
  628. if (Entity != null)
  629. {
  630. missData.Append("<tbody id=\"historyData\" style=\"display:none;\">");
  631. int count = 0;
  632. #region 历史最大遗漏
  633. missData.Append("<tr>");
  634. for (int i = 0; i < Entity.AllMaxMiss.Count(); i++)
  635. {
  636. if (Entity.AllMaxMiss[i] == "-1")
  637. {
  638. if (i != 0)
  639. {
  640. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[count].Item1, ""));
  641. count++;
  642. }
  643. continue;
  644. }
  645. for (int j = 0; j < Entity.AllMaxMiss[i].Split(',').Count(); j++)
  646. {
  647. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[count].Item1, Entity.AllMaxMiss[i].Split(',')[j]));
  648. count++;
  649. }
  650. }
  651. missData.Append("</tr>");
  652. #endregion
  653. #region 历史平均遗漏
  654. count = 0;
  655. missData.Append("<tr>");
  656. for (int i = 0; i < Entity.AllAvgMiss.Count(); i++)
  657. {
  658. if (Entity.AllAvgMiss[i] == "-1")
  659. {
  660. if (i != 0)
  661. {
  662. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[count].Item1, ""));
  663. count++;
  664. }
  665. continue;
  666. }
  667. foreach (var missvalue in Entity.AllAvgMiss[i].Split(','))
  668. {
  669. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[count].Item1, missvalue));
  670. count++;
  671. }
  672. }
  673. missData.Append("</tr>");
  674. #endregion
  675. #region 历史出现次数
  676. count = 0;
  677. missData.Append("<tr>");
  678. for (int i = 0; i < Entity.AllTimes.Count(); i++)
  679. {
  680. if (Entity.AllTimes[i] == "-1")
  681. {
  682. if (i != 0)
  683. {
  684. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[count].Item1, ""));
  685. count++;
  686. }
  687. continue;
  688. }
  689. foreach (var missvalue in Entity.AllTimes[i].Split(','))
  690. {
  691. missData.Append(string.Format("<td class=\"appears {0}\">{1} <br /><img width=\"8\" height=\"{2}\" src=\"/static/images/{3}\" alt=\"\" /> </td>", dataAnalysisCssList[count].Item1, missvalue, 60 * missvalue.ToInt() / Entity.RecordCount, dataAnalysisCssList[count].Item2));
  692. count++;
  693. }
  694. }
  695. missData.Append("</tr>");
  696. #endregion
  697. missData.Append("</tbody>");
  698. return missData.ToString();
  699. }
  700. return "";
  701. }
  702. /// <summary>
  703. /// 当前页遗漏
  704. /// </summary>
  705. /// <param name="list"></param>
  706. /// <returns></returns>
  707. private string LocalMissData(IList<TrendChartData> list, List<Tuple<string, string>> dataAnalysisCssList)
  708. {
  709. if (list == null && list.Count <= 0)
  710. return "";
  711. //将list按期号升序排列
  712. list = list.OrderBy(info => info.Term).ToList();
  713. //本期遗漏列表(当前页数据根据本期遗漏计算)
  714. List<List<int>> LocalMissArray = new List<List<int>>();
  715. #region 将list里面提取本期遗漏数据
  716. foreach (var item in list)
  717. {
  718. var row = new List<int>();
  719. for (int i = 0; i < item.LocalMiss.Count(); i++)
  720. {
  721. if (item.LocalMiss[i] == "-1")
  722. {
  723. row.Add(-1);
  724. continue;
  725. }
  726. foreach (var missvalue in item.LocalMiss[i].Split(','))
  727. {
  728. row.Add(missvalue.ToInt());
  729. }
  730. }
  731. LocalMissArray.Add(row);
  732. }
  733. #endregion
  734. if (LocalMissArray.Count <= 0)
  735. return "";
  736. //当前页最大遗漏
  737. int[] maxMissArray = new int[LocalMissArray[0].Count];
  738. //当前页出现次数
  739. int[] TimesArray = new int[LocalMissArray[0].Count];
  740. //当前页遗漏总和
  741. int[] allMissArray = new int[LocalMissArray[0].Count];
  742. #region 根据当前页本期遗漏计算当前页(最大遗漏、出现次数、遗漏总和)
  743. for (int k = 0; k < LocalMissArray.Count; k++)
  744. {
  745. for (int i = 0; i < LocalMissArray[k].Count; i++)
  746. {
  747. //如果为-1说明没有遗漏数据
  748. if (LocalMissArray[k][i] == -1)
  749. {
  750. maxMissArray[i] = -1;
  751. TimesArray[i] = -1;
  752. allMissArray[i] = -1;
  753. continue;
  754. }
  755. //遍历当前页遗漏找当前页最大遗漏
  756. if (maxMissArray[i] < LocalMissArray[k][i])
  757. {
  758. maxMissArray[i] = LocalMissArray[k][i];
  759. }
  760. //遍历当前页遗漏累加当前页出现次数
  761. if (LocalMissArray[k][i] == 0)
  762. {
  763. TimesArray[i]++;
  764. }
  765. //遍历当前页遗漏累加遗漏总数
  766. if (k == 0)
  767. {
  768. allMissArray[i] = LocalMissArray[k][i];
  769. }
  770. else
  771. {
  772. if (LocalMissArray[k][i] != 0)
  773. {
  774. allMissArray[i]++;
  775. }
  776. }
  777. }
  778. }
  779. #endregion
  780. StringBuilder missData = new StringBuilder();
  781. missData.Append("<tbody id=\"currentData\" style=\"\">");
  782. #region 当前最大遗漏
  783. missData.Append("<tr>");
  784. for (int i = 0; i < maxMissArray.Count(); i++)
  785. {
  786. if (maxMissArray[i] == -1)
  787. {
  788. if (i != 0)
  789. {
  790. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[i].Item1, ""));
  791. }
  792. continue;
  793. }
  794. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[i].Item1, maxMissArray[i]));
  795. }
  796. missData.Append("</tr>");
  797. #endregion
  798. #region 当前平均遗漏
  799. missData.Append("<tr>");
  800. for (int i = 0; i < allMissArray.Count(); i++)
  801. {
  802. if (allMissArray[i] == -1)
  803. {
  804. if (i != 0)
  805. {
  806. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[i].Item1, ""));
  807. }
  808. continue;
  809. }
  810. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[i].Item1, TimesArray[i] >= 0 ? allMissArray[i] / (TimesArray[i] + 1) : 0));
  811. }
  812. missData.Append("</tr>");
  813. #endregion
  814. #region 当前出现次数
  815. missData.Append("<tr>");
  816. Func<int, int> getchartHeight = h =>
  817. {
  818. var maxHeight = 60;
  819. if (h <= 0)
  820. return 0;
  821. var ht = (h - 1) * 5 + 10;
  822. if (ht > maxHeight)
  823. return maxHeight;
  824. return ht;
  825. };
  826. for (int i = 0; i < TimesArray.Count(); i++)
  827. {
  828. if (TimesArray[i] == -1)
  829. {
  830. if (i != 0)
  831. {
  832. missData.Append(string.Format("<td class=\"{0}\">{1}</td>", dataAnalysisCssList[i].Item1, ""));
  833. }
  834. continue;
  835. }
  836. //TODO: modified by zizi at 2016-5-17
  837. missData.Append(string.Format("<td class=\"appears {0}\">{1}<br /><img width=\"16\" height=\"{2}\" src=\"/static/images/{3}\" alt=\"\" /> </td>", dataAnalysisCssList[i].Item1, TimesArray[i],
  838. getchartHeight(TimesArray[i]),//60 * TimesArray[i] / list.Count,
  839. dataAnalysisCssList[i].Item2));
  840. }
  841. missData.Append("</tr>");
  842. #endregion
  843. missData.Append("</tbody>");
  844. return missData.ToString();
  845. }
  846. private int GetTrendChartColspan(string[] array)
  847. {
  848. if (null == array || 0 >= array.Length)
  849. return 0;
  850. int colspan = 0;
  851. for (int i = array.Length - 1; i >= 0; i--)
  852. {
  853. colspan = colspan + array[i].Split(',').Length;
  854. }
  855. return colspan;
  856. }
  857. /// <summary>
  858. /// 获取走势图列表
  859. /// </summary>
  860. /// <param name="cid"></param>
  861. /// <param name="chartSearch"></param>
  862. /// <returns></returns>
  863. public IList<TrendChartData> GetTrendChartList(int cid, TrendChartSearchField chartSearch)
  864. {
  865. switch (cid)
  866. {
  867. case 1:
  868. return FC3DTrendChartDataService.ToList(chartSearch);
  869. case 2:
  870. case 3:
  871. return TCP3TrendChartDataService.ToList(chartSearch);
  872. case 4:
  873. return FCSSQTrendChartDataService.ToList(chartSearch);
  874. case 5:
  875. return FCQLCTrendChartDataService.ToList(chartSearch);
  876. case 12:
  877. return TCDLTTrendChartDataService.ToList(chartSearch);
  878. case 19:
  879. return TCQXCTrendChartDataService.ToList(chartSearch);
  880. case 28:
  881. return HC1TrendChartDataService.ToList(chartSearch);
  882. case 59:
  883. return SCKL12TrendChartDataService.ToList(chartSearch);
  884. case 60:
  885. return TCFJ31X7TrendChartDataService.ToList(chartSearch);
  886. case 61:
  887. return TCFJ36X7TrendChartDataService.ToList(chartSearch);
  888. case 62:
  889. return TCJS7WSTrendChartDataService.ToList(chartSearch);
  890. case 63:
  891. return TCZJ6J1TrendChartDataService.ToList(chartSearch);
  892. case 64:
  893. return FCDF6J1TrendChartDataService.ToList(chartSearch);
  894. case 65:
  895. return FCHD11X5TrendChartDataService.ToList(chartSearch);
  896. //case 66:return FCHB22X5TrendChartDataService.ToList(chartSearch);
  897. case 67:
  898. return FCHN22X5TrendChartDataService.ToList(chartSearch);
  899. case 68:
  900. return FCXJ35X7TrendChartDataService.ToList(chartSearch);
  901. case 69:
  902. return FCNY36X7TrendChartDataService.ToList(chartSearch);
  903. case 70:
  904. return AH11X5TrendChartDataService.ToList(chartSearch);
  905. case 71:
  906. return CQ11X5TrendChartDataService.ToList(chartSearch);
  907. case 72:
  908. return GD11X5TrendChartDataService.ToList(chartSearch);
  909. case 73:
  910. return GZ11X5TrendChartDataService.ToList(chartSearch);
  911. case 74:
  912. return HLJ11X5TrendChartDataService.ToList(chartSearch);
  913. case 75:
  914. return HB11X5TrendChartDataService.ToList(chartSearch);
  915. case 76:
  916. return JS11X5TrendChartDataService.ToList(chartSearch);
  917. case 77:
  918. return JX11X5TrendChartDataService.ToList(chartSearch);
  919. case 78:
  920. return JL11X5TrendChartDataService.ToList(chartSearch);
  921. case 79:
  922. return LN11X5TrendChartDataService.ToList(chartSearch);
  923. case 80:
  924. return SD11X5TrendChartDataService.ToList(chartSearch);
  925. case 81:
  926. return SH11X5TrendChartDataService.ToList(chartSearch);
  927. case 82:
  928. return SC11X5TrendChartDataService.ToList(chartSearch);
  929. case 83:
  930. return TJ11X5TrendChartDataService.ToList(chartSearch);
  931. case 84:
  932. return YN11X5TrendChartDataService.ToList(chartSearch);
  933. case 85:
  934. return ZJ11X5TrendChartDataService.ToList(chartSearch);
  935. case 86:
  936. return AHK3TrendChartDataService.ToList(chartSearch);
  937. case 87:
  938. return HBK3TrendChartDataService.ToList(chartSearch);
  939. case 88:
  940. return JSK3TrendChartDataService.ToList(chartSearch);
  941. case 89:
  942. return JLK3TrendChartDataService.ToList(chartSearch);
  943. case 90:
  944. return LNKL12TrendChartDataService.ToList(chartSearch);
  945. case 15:
  946. return GDKL10TrendChartDataService.ToList(chartSearch);
  947. case 91:
  948. return CQKL10TrendChartDataService.ToList(chartSearch);
  949. case 92:
  950. return GXKL10TrendChartDataService.ToList(chartSearch);
  951. case 93:
  952. return HNKL10TrendChartDataService.ToList(chartSearch);
  953. case 94:
  954. return TJKL10TrendChartDataService.ToList(chartSearch);
  955. case 95:
  956. return SDQYHTrendChartDataService.ToList(chartSearch);
  957. case 101://湖北30选5
  958. return FCHB30X5TrendChartDataService.ToList(chartSearch);
  959. }
  960. return null;
  961. }
  962. // 特殊配置项
  963. public string GetSpecialTrendChartList(TrendChartInfo entity, TrendChartSearchField chartSearch, LotterySearchField lotterySearch)
  964. {
  965. switch (entity.Cid)
  966. {
  967. case 1:
  968. if (entity.Id == 94)
  969. {
  970. return FC3DTrend.PreViewFC3D_012_4_TrendChart(entity.Id, chartSearch.ChartType, chartSearch);
  971. }
  972. break;
  973. case 2:
  974. case 3:
  975. if (entity.Id == 95)
  976. {
  977. return TCP3Trend.PreViewTCP3_012_4_TrendChart(entity.Id, chartSearch.ChartType, chartSearch);
  978. }
  979. break;
  980. case 4:
  981. if (entity.Id == 102)
  982. {
  983. return FCSSQTrend.PreView_FCSSQChuHaoPL_TrendChart(entity.Id, chartSearch.ChartType, chartSearch);
  984. }
  985. break;
  986. case 5:
  987. break;
  988. case 12:
  989. if (entity.Id == 114)
  990. {
  991. return TCDLTTrend.PreView_TCDLTChuHaoPL_TrendChart(entity.Id, chartSearch.ChartType, chartSearch);
  992. }
  993. break;
  994. case 19:
  995. break;
  996. }
  997. return "";
  998. }
  999. /// <summary>
  1000. /// 获取数据分析样式
  1001. /// </summary>
  1002. /// <param name="chartId"></param>
  1003. /// <param name="chartType"></param>
  1004. /// <returns></returns>
  1005. public List<Tuple<string, string>> GetDataAnalysisCssList(int chartId, TrendChartType chartType)
  1006. {
  1007. //Tuple<string, string> 第一个存放:数据分析样式,第二个存放:数据分析(出现次数)图片
  1008. List<Tuple<string, string>> cssList = new List<Tuple<string, string>>();
  1009. IList<TrendChartItemInfo> TrendChartItemList = Caches.GetTrendChartItemList(chartId, chartType);
  1010. if (TrendChartItemList == null || TrendChartItemList.Count <= 0)
  1011. return null;
  1012. ChartCssConfigInfo css = new ChartCssConfigInfo();
  1013. foreach (var chartItem in TrendChartItemList)
  1014. {
  1015. css = Caches.GetTrendChartItemCssConfig(chartItem.ChartCssId);
  1016. if (css.ChildList == null) //没有子样式
  1017. {
  1018. for (int i = 0; i < chartItem.ItemCount; i++)
  1019. {
  1020. cssList.Add(new Tuple<string, string>(css.DataAnalysisCssName, css.DataAnalysisImgName));
  1021. }
  1022. }
  1023. else //有子样式
  1024. {
  1025. foreach (var item in css.ChildList)
  1026. {
  1027. for (int i = item.startNum; i <= item.endNum; i++)
  1028. {
  1029. cssList.Add(new Tuple<string, string>(item.DataAnalysisCssName, item.DataAnalysisImgName));
  1030. }
  1031. }
  1032. }
  1033. }
  1034. if (cssList.Count <= 0)
  1035. return null;
  1036. return cssList;
  1037. }
  1038. /// <summary>
  1039. /// 数据查询年份显示
  1040. /// </summary>
  1041. /// <param name="lotteryId">彩种ID</param>
  1042. /// <returns></returns>
  1043. private string ShowSearchYears(int lotteryId)
  1044. {
  1045. int maxYear = DateTime.Now.Year;
  1046. int minYear = 9999;
  1047. switch (lotteryId)
  1048. {
  1049. case 1:
  1050. minYear = 2002;
  1051. break;
  1052. case 2:
  1053. minYear = 2004;
  1054. break;
  1055. case 3:
  1056. minYear = 2004;
  1057. break;
  1058. case 4:
  1059. minYear = 2003;
  1060. break;
  1061. case 5:
  1062. minYear = 2002;
  1063. break;
  1064. case 12:
  1065. minYear = 2007;
  1066. break;
  1067. case 19:
  1068. minYear = 2006;
  1069. break;
  1070. case 28:
  1071. minYear = 2009;
  1072. break;
  1073. }
  1074. var sp = new StringBuilder();
  1075. for (int i = maxYear; i >= minYear; i--)
  1076. {
  1077. sp.AppendFormat("<option><a href=\"?year={0}\">{0}年</a></option>", i.ToString());
  1078. }
  1079. return sp.ToString();
  1080. }
  1081. }
  1082. }