TrendChartHelper.cs 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using SCC.Models;
  6. using SCC.Common;
  7. using SCC.Interface;
  8. using SCC.Services;
  9. namespace SCC.Crawler.DT
  10. {
  11. /// <summary>
  12. /// 地方彩生成走势图的帮助类
  13. /// </summary>
  14. public static class TrendChartHelper
  15. {
  16. /// <summary>
  17. /// 生成东方6+1走势图
  18. /// </summary>
  19. /// <param name="Log">日志实例</param>
  20. public static void GenerateFCDF6J1TrendChart(LogHelper Log)
  21. {
  22. ITrendChart helper = new TrendChartServices();
  23. IDTOpenCode service = new DTOpenCodeServices();
  24. var DF6J1 = ConfigHelper.GetConfigValue<int>("DF6J1");
  25. var configList = helper.GetTrendChartConfig(DF6J1);
  26. if (configList.Count == 0)
  27. {
  28. Console.WriteLine("未找到有效走势图信息");
  29. return;
  30. }
  31. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  32. foreach (var itemInfo in trendChartItemList)
  33. {
  34. itemInfo.Cid = DF6J1;
  35. }
  36. var dbItemList = service.GetDF6J1ListOpenCode();
  37. if (dbItemList.Count == 0)
  38. {
  39. Console.WriteLine("未找到有效开奖数据");
  40. return;
  41. }
  42. var chartCssConfigs = helper.GetChartCssConfigs();
  43. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  44. foreach (var config in configList)//基本走势图,和值走势图,手机版
  45. {
  46. var chartId = config.Id;
  47. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  48. if (trendChartItems.Count == 0)
  49. {
  50. Console.WriteLine("未找到该走势图的显示项信息");
  51. return;
  52. }
  53. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  54. var chartItems = new TrendChartItemHelper<FCDF6J1Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  55. var count = trendChartItems.Count;
  56. //var j = 0;
  57. TrendChartData entity = null;
  58. var ResultEntity = new TrendChartData
  59. {
  60. ChartId = chartId,
  61. Term = 0,
  62. ChartType = TrendChartType.PC,
  63. LocalMiss = new string[count],
  64. LastMiss = new string[count],
  65. AllMaxMiss = new string[count],
  66. AllAvgMiss = new string[count],
  67. AllTimes = new string[count]
  68. };
  69. foreach (var dbItem in dbItemList)
  70. {
  71. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  72. FCDF6J1Info info = null;
  73. info = twoInfoList[0];
  74. if (twoInfoList.Count == 2)
  75. {
  76. entity = ResultEntity;//变量存储上一个走势图数据
  77. //if(j==0)
  78. // entity
  79. }
  80. bool yes = true;
  81. var sb = new StringBuilder(20000);
  82. sb.Append("<tr>");
  83. for (var i = 0; i < count; i++)
  84. {
  85. chartItems[i].InitMissData(entity, i);
  86. //计算项值及遗漏计算
  87. yes = yes && chartItems[i].SetItemValue(info);
  88. if (yes)
  89. {
  90. //结果集赋值
  91. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  92. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  93. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  94. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  95. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  96. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  97. }
  98. }
  99. sb.Append("</tr>");
  100. if (null != entity)
  101. ResultEntity.RecordCount = entity.RecordCount + 1;
  102. else
  103. ResultEntity.RecordCount = 1;
  104. ResultEntity.Term = dbItem.Term;
  105. ResultEntity.HtmlData = sb.ToString();
  106. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  107. trendChartDataList.Add(new TrendChartData()
  108. {
  109. Id = ResultEntity.Id,
  110. ChartId = ResultEntity.ChartId,
  111. Term = ResultEntity.Term,
  112. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  113. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  114. RecordCount = ResultEntity.RecordCount,
  115. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  116. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  117. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  118. HtmlData = ResultEntity.HtmlData,
  119. ChartType = ResultEntity.ChartType,
  120. Addtime = ResultEntity.Addtime
  121. });
  122. }
  123. Console.WriteLine();
  124. }
  125. if (helper.SaveTrendChartList(SCCLottery.DF6J1TrendChart, trendChartDataList))
  126. Log.Info(typeof(TrendChartHelper), "------<<生成东方6+1走势图数据成功!>>------");
  127. else
  128. {
  129. Console.ForegroundColor = ConsoleColor.Red;
  130. Console.WriteLine("------<<生成东方6+1走势图数据失败!>>------");
  131. Console.ResetColor();
  132. }
  133. Console.WriteLine();
  134. Console.WriteLine();
  135. }
  136. /// <summary>
  137. /// 生成华东15选5走势图
  138. /// </summary>
  139. /// <param name="Log">日志实例</param>
  140. public static void GenerateHD15X5TrendChart(LogHelper Log)
  141. {
  142. ITrendChart helper = new TrendChartServices();
  143. IDTOpenCode service = new DTOpenCodeServices();
  144. var HD15X5 = ConfigHelper.GetConfigValue<int>("HD15X5");
  145. var configList = helper.GetTrendChartConfig(HD15X5);
  146. if (configList.Count == 0)
  147. {
  148. Console.WriteLine("未找到有效走势图信息");
  149. return;
  150. }
  151. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  152. foreach (var itemInfo in trendChartItemList)
  153. {
  154. itemInfo.Cid = HD15X5;
  155. }
  156. var dbItemList = service.GetHD15X5ListOpenCode();
  157. if (dbItemList.Count == 0)
  158. {
  159. Console.WriteLine("未找到有效开奖数据");
  160. return;
  161. }
  162. var chartCssConfigs = helper.GetChartCssConfigs();
  163. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  164. foreach (var config in configList)//基本走势图,和值走势图,手机版
  165. {
  166. var chartId = config.Id;
  167. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  168. if (trendChartItems.Count == 0)
  169. {
  170. Console.WriteLine("未找到该走势图的显示项信息");
  171. return;
  172. }
  173. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  174. var chartItems = new TrendChartItemHelper<FCHD15X5Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  175. var count = trendChartItems.Count;
  176. //var j = 0;
  177. TrendChartData entity = null;
  178. var ResultEntity = new TrendChartData
  179. {
  180. ChartId = chartId,
  181. Term = 0,
  182. ChartType = TrendChartType.PC,
  183. LocalMiss = new string[count],
  184. LastMiss = new string[count],
  185. AllMaxMiss = new string[count],
  186. AllAvgMiss = new string[count],
  187. AllTimes = new string[count]
  188. };
  189. foreach (var dbItem in dbItemList)
  190. {
  191. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  192. FCHD15X5Info info = null;
  193. info = twoInfoList[0];
  194. if (twoInfoList.Count == 2)
  195. {
  196. entity = ResultEntity;//变量存储上一个走势图数据
  197. //if(j==0)
  198. // entity
  199. }
  200. bool yes = true;
  201. var sb = new StringBuilder(20000);
  202. sb.Append("<tr>");
  203. for (var i = 0; i < count; i++)
  204. {
  205. chartItems[i].InitMissData(entity, i);
  206. //计算项值及遗漏计算
  207. yes = yes && chartItems[i].SetItemValue(info);
  208. if (yes)
  209. {
  210. //结果集赋值
  211. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  212. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  213. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  214. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  215. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  216. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  217. }
  218. }
  219. sb.Append("</tr>");
  220. if (null != entity)
  221. ResultEntity.RecordCount = entity.RecordCount + 1;
  222. else
  223. ResultEntity.RecordCount = 1;
  224. ResultEntity.Term = dbItem.Term;
  225. ResultEntity.HtmlData = sb.ToString();
  226. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  227. trendChartDataList.Add(new TrendChartData()
  228. {
  229. Id = ResultEntity.Id,
  230. ChartId = ResultEntity.ChartId,
  231. Term = ResultEntity.Term,
  232. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  233. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  234. RecordCount = ResultEntity.RecordCount,
  235. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  236. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  237. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  238. HtmlData = ResultEntity.HtmlData,
  239. ChartType = ResultEntity.ChartType,
  240. Addtime = ResultEntity.Addtime
  241. });
  242. }
  243. Console.WriteLine();
  244. }
  245. if (helper.SaveTrendChartList(SCCLottery.HD15X5TrendChart, trendChartDataList))
  246. Log.Info(typeof(TrendChartHelper), "------<<生成华东15选5走势图数据成功!>>------");
  247. else
  248. {
  249. Console.ForegroundColor = ConsoleColor.Red;
  250. Console.WriteLine("------<<生成华东15选5走势图数据失败!>>------");
  251. Console.ResetColor();
  252. }
  253. Console.WriteLine();
  254. Console.WriteLine();
  255. }
  256. /// <summary>
  257. /// 生成河南22选5走势图
  258. /// </summary>
  259. /// <param name="Log">日志实例</param>
  260. public static void GenerateHN22X5TrendChart(LogHelper Log)
  261. {
  262. ITrendChart helper = new TrendChartServices();
  263. IDTOpenCode service = new DTOpenCodeServices();
  264. var HeNan22X5 = ConfigHelper.GetConfigValue<int>("HeNan22X5");
  265. var configList = helper.GetTrendChartConfig(HeNan22X5);
  266. if (configList.Count == 0)
  267. {
  268. Console.WriteLine("未找到有效走势图信息");
  269. return;
  270. }
  271. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  272. foreach (var itemInfo in trendChartItemList)
  273. {
  274. itemInfo.Cid = HeNan22X5;
  275. }
  276. var dbItemList = service.GetHN22X5ListOpenCode();
  277. if (dbItemList.Count == 0)
  278. {
  279. Console.WriteLine("未找到有效开奖数据");
  280. return;
  281. }
  282. var chartCssConfigs = helper.GetChartCssConfigs();
  283. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  284. foreach (var config in configList)//基本走势图,和值走势图,手机版
  285. {
  286. var chartId = config.Id;
  287. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  288. if (trendChartItems.Count == 0)
  289. {
  290. Console.WriteLine("未找到该走势图的显示项信息");
  291. return;
  292. }
  293. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  294. var chartItems = new TrendChartItemHelper<FCHN22X5Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  295. var count = trendChartItems.Count;
  296. //var j = 0;
  297. TrendChartData entity = null;
  298. var ResultEntity = new TrendChartData
  299. {
  300. ChartId = chartId,
  301. Term = 0,
  302. ChartType = TrendChartType.PC,
  303. LocalMiss = new string[count],
  304. LastMiss = new string[count],
  305. AllMaxMiss = new string[count],
  306. AllAvgMiss = new string[count],
  307. AllTimes = new string[count]
  308. };
  309. foreach (var dbItem in dbItemList)
  310. {
  311. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  312. FCHN22X5Info info = null;
  313. info = twoInfoList[0];
  314. if (twoInfoList.Count == 2)
  315. {
  316. entity = ResultEntity;//变量存储上一个走势图数据
  317. //if(j==0)
  318. // entity
  319. }
  320. bool yes = true;
  321. var sb = new StringBuilder(20000);
  322. sb.Append("<tr>");
  323. for (var i = 0; i < count; i++)
  324. {
  325. chartItems[i].InitMissData(entity, i);
  326. //计算项值及遗漏计算
  327. yes = yes && chartItems[i].SetItemValue(info);
  328. if (yes)
  329. {
  330. //结果集赋值
  331. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  332. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  333. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  334. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  335. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  336. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  337. }
  338. }
  339. sb.Append("</tr>");
  340. if (null != entity)
  341. ResultEntity.RecordCount = entity.RecordCount + 1;
  342. else
  343. ResultEntity.RecordCount = 1;
  344. ResultEntity.Term = dbItem.Term;
  345. ResultEntity.HtmlData = sb.ToString();
  346. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  347. trendChartDataList.Add(new TrendChartData()
  348. {
  349. Id = ResultEntity.Id,
  350. ChartId = ResultEntity.ChartId,
  351. Term = ResultEntity.Term,
  352. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  353. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  354. RecordCount = ResultEntity.RecordCount,
  355. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  356. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  357. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  358. HtmlData = ResultEntity.HtmlData,
  359. ChartType = ResultEntity.ChartType,
  360. Addtime = ResultEntity.Addtime
  361. });
  362. }
  363. Console.WriteLine();
  364. }
  365. if (helper.SaveTrendChartList(SCCLottery.HeNan22X5TrendChart, trendChartDataList))
  366. Log.Info(typeof(TrendChartHelper), "------<<生成河南22选5走势图数据成功!>>------");
  367. else
  368. {
  369. Console.ForegroundColor = ConsoleColor.Red;
  370. Console.WriteLine("------<<生成河南22选5走势图数据失败!>>------");
  371. Console.ResetColor();
  372. }
  373. Console.WriteLine();
  374. Console.WriteLine();
  375. }
  376. /// <summary>
  377. /// 生成广东36选7走势图
  378. /// </summary>
  379. /// <param name="Log">日志实例</param>
  380. public static void GenerateGD36X7TrendChart(LogHelper Log)
  381. {
  382. ITrendChart helper = new TrendChartServices();
  383. IDTOpenCode service = new DTOpenCodeServices();
  384. var NY36X7 = ConfigHelper.GetConfigValue<int>("NY36X7");
  385. var configList = helper.GetTrendChartConfig(NY36X7);
  386. if (configList.Count == 0)
  387. {
  388. Console.WriteLine("未找到有效走势图信息");
  389. return;
  390. }
  391. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  392. foreach (var itemInfo in trendChartItemList)
  393. {
  394. itemInfo.Cid = NY36X7;
  395. }
  396. var dbItemList = service.GetGD36X7ListOpenCode();
  397. if (dbItemList.Count == 0)
  398. {
  399. Console.WriteLine("未找到有效开奖数据");
  400. return;
  401. }
  402. var chartCssConfigs = helper.GetChartCssConfigs();
  403. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  404. foreach (var config in configList)//基本走势图,和值走势图,手机版
  405. {
  406. var chartId = config.Id;
  407. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  408. if (trendChartItems.Count == 0)
  409. {
  410. Console.WriteLine("未找到该走势图的显示项信息");
  411. return;
  412. }
  413. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  414. var chartItems = new TrendChartItemHelper<FCNY36X7Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  415. var count = trendChartItems.Count;
  416. //var j = 0;
  417. TrendChartData entity = null;
  418. var ResultEntity = new TrendChartData
  419. {
  420. ChartId = chartId,
  421. Term = 0,
  422. ChartType = TrendChartType.PC,
  423. LocalMiss = new string[count],
  424. LastMiss = new string[count],
  425. AllMaxMiss = new string[count],
  426. AllAvgMiss = new string[count],
  427. AllTimes = new string[count]
  428. };
  429. foreach (var dbItem in dbItemList)
  430. {
  431. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  432. FCNY36X7Info info = null;
  433. info = twoInfoList[0];
  434. if (twoInfoList.Count == 2)
  435. {
  436. entity = ResultEntity;//变量存储上一个走势图数据
  437. //if(j==0)
  438. // entity
  439. }
  440. bool yes = true;
  441. var sb = new StringBuilder(20000);
  442. sb.Append("<tr>");
  443. for (var i = 0; i < count; i++)
  444. {
  445. chartItems[i].InitMissData(entity, i);
  446. //计算项值及遗漏计算
  447. yes = yes && chartItems[i].SetItemValue(info);
  448. if (yes)
  449. {
  450. //结果集赋值
  451. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  452. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  453. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  454. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  455. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  456. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  457. }
  458. }
  459. sb.Append("</tr>");
  460. if (null != entity)
  461. ResultEntity.RecordCount = entity.RecordCount + 1;
  462. else
  463. ResultEntity.RecordCount = 1;
  464. ResultEntity.Term = dbItem.Term;
  465. ResultEntity.HtmlData = sb.ToString();
  466. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  467. trendChartDataList.Add(new TrendChartData()
  468. {
  469. Id = ResultEntity.Id,
  470. ChartId = ResultEntity.ChartId,
  471. Term = ResultEntity.Term,
  472. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  473. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  474. RecordCount = ResultEntity.RecordCount,
  475. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  476. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  477. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  478. HtmlData = ResultEntity.HtmlData,
  479. ChartType = ResultEntity.ChartType,
  480. Addtime = ResultEntity.Addtime
  481. });
  482. }
  483. Console.WriteLine();
  484. }
  485. if (helper.SaveTrendChartList(SCCLottery.GD36X7TrendChart, trendChartDataList))
  486. Log.Info(typeof(TrendChartHelper), "------<<生成广东36选7走势图数据成功!>>------");
  487. else
  488. {
  489. Console.ForegroundColor = ConsoleColor.Red;
  490. Console.WriteLine("------<<生成广东36选7走势图数据失败!>>------");
  491. Console.ResetColor();
  492. }
  493. Console.WriteLine();
  494. Console.WriteLine();
  495. }
  496. /// <summary>
  497. /// 生成湖北30选5走势图
  498. /// </summary>
  499. public static void GenerateHuBei30X5TrendChart(LogHelper Log)
  500. {
  501. ITrendChart helper = new TrendChartServices();
  502. IDTOpenCode service = new DTOpenCodeServices();
  503. var HUB30X5 = ConfigHelper.GetConfigValue<int>("HUB30X5");
  504. var configList = helper.GetTrendChartConfig(HUB30X5);
  505. if (configList.Count == 0)
  506. {
  507. Console.WriteLine("未找到有效走势图信息");
  508. return;
  509. }
  510. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  511. foreach (var itemInfo in trendChartItemList)
  512. {
  513. itemInfo.Cid = HUB30X5;
  514. }
  515. var dbItemList = service.GetHuBei30X5ListOpenCode();
  516. if (dbItemList.Count == 0)
  517. {
  518. Console.WriteLine("未找到有效开奖数据");
  519. return;
  520. }
  521. var chartCssConfigs = helper.GetChartCssConfigs();
  522. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  523. foreach (var config in configList)//基本走势图,和值走势图,手机版
  524. {
  525. var chartId = config.Id;
  526. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  527. if (trendChartItems.Count == 0)
  528. {
  529. Console.WriteLine("未找到该走势图的显示项信息");
  530. return;
  531. }
  532. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  533. var chartItems = new TrendChartItemHelper<FCHB30X5Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  534. var count = trendChartItems.Count;
  535. //var j = 0;
  536. TrendChartData entity = null;
  537. var ResultEntity = new TrendChartData
  538. {
  539. ChartId = chartId,
  540. Term = 0,
  541. ChartType = TrendChartType.PC,
  542. LocalMiss = new string[count],
  543. LastMiss = new string[count],
  544. AllMaxMiss = new string[count],
  545. AllAvgMiss = new string[count],
  546. AllTimes = new string[count]
  547. };
  548. foreach (var dbItem in dbItemList)
  549. {
  550. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  551. FCHB30X5Info info = null;
  552. info = twoInfoList[0];
  553. if (twoInfoList.Count == 2)
  554. {
  555. entity = ResultEntity;//变量存储上一个走势图数据
  556. //if(j==0)
  557. // entity
  558. }
  559. bool yes = true;
  560. var sb = new StringBuilder(20000);
  561. sb.Append("<tr>");
  562. for (var i = 0; i < count; i++)
  563. {
  564. chartItems[i].InitMissData(entity, i);
  565. //计算项值及遗漏计算
  566. yes = yes && chartItems[i].SetItemValue(info);
  567. if (yes)
  568. {
  569. //结果集赋值
  570. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  571. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  572. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  573. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  574. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  575. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  576. }
  577. }
  578. sb.Append("</tr>");
  579. if (null != entity)
  580. ResultEntity.RecordCount = entity.RecordCount + 1;
  581. else
  582. ResultEntity.RecordCount = 1;
  583. ResultEntity.Term = dbItem.Term;
  584. ResultEntity.HtmlData = sb.ToString();
  585. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  586. trendChartDataList.Add(new TrendChartData()
  587. {
  588. Id = ResultEntity.Id,
  589. ChartId = ResultEntity.ChartId,
  590. Term = ResultEntity.Term,
  591. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  592. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  593. RecordCount = ResultEntity.RecordCount,
  594. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  595. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  596. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  597. HtmlData = ResultEntity.HtmlData,
  598. ChartType = ResultEntity.ChartType,
  599. Addtime = ResultEntity.Addtime
  600. });
  601. }
  602. Console.WriteLine();
  603. }
  604. if (helper.SaveTrendChartList(SCCLottery.HuBei30X5TrendChart, trendChartDataList))
  605. Log.Info(typeof(TrendChartHelper), "------<<生成湖北30选5走势图数据成功!>>------");
  606. else
  607. {
  608. Console.ForegroundColor = ConsoleColor.Red;
  609. Console.WriteLine("------<<生成湖北30选5走势图数据失败!>>------");
  610. Console.ResetColor();
  611. }
  612. Console.WriteLine();
  613. Console.WriteLine();
  614. }
  615. /// <summary>
  616. /// 生成新疆35选7走势图
  617. /// </summary>
  618. /// <param name="Log">日志实例</param>
  619. public static void GenerateXJ35X7TrendChart(LogHelper Log)
  620. {
  621. ITrendChart helper = new TrendChartServices();
  622. IDTOpenCode service = new DTOpenCodeServices();
  623. var XJ35X7 = ConfigHelper.GetConfigValue<int>("XJ35X7");
  624. var configList = helper.GetTrendChartConfig(XJ35X7);
  625. if (configList.Count == 0)
  626. {
  627. Console.WriteLine("未找到有效走势图信息");
  628. return;
  629. }
  630. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  631. foreach (var itemInfo in trendChartItemList)
  632. {
  633. itemInfo.Cid = XJ35X7;
  634. }
  635. var dbItemList = service.GetXJ35X7ListOpenCode();
  636. if (dbItemList.Count == 0)
  637. {
  638. Console.WriteLine("未找到有效开奖数据");
  639. return;
  640. }
  641. var chartCssConfigs = helper.GetChartCssConfigs();
  642. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  643. foreach (var config in configList)//基本走势图,和值走势图,手机版
  644. {
  645. var chartId = config.Id;
  646. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  647. if (trendChartItems.Count == 0)
  648. {
  649. Console.WriteLine("未找到该走势图的显示项信息");
  650. return;
  651. }
  652. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  653. var chartItems = new TrendChartItemHelper<FCXJ35X7Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  654. var count = trendChartItems.Count;
  655. //var j = 0;
  656. TrendChartData entity = null;
  657. var ResultEntity = new TrendChartData
  658. {
  659. ChartId = chartId,
  660. Term = 0,
  661. ChartType = TrendChartType.PC,
  662. LocalMiss = new string[count],
  663. LastMiss = new string[count],
  664. AllMaxMiss = new string[count],
  665. AllAvgMiss = new string[count],
  666. AllTimes = new string[count]
  667. };
  668. foreach (var dbItem in dbItemList)
  669. {
  670. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  671. FCXJ35X7Info info = null;
  672. info = twoInfoList[0];
  673. if (twoInfoList.Count == 2)
  674. {
  675. entity = ResultEntity;//变量存储上一个走势图数据
  676. //if(j==0)
  677. // entity
  678. }
  679. bool yes = true;
  680. var sb = new StringBuilder(20000);
  681. sb.Append("<tr>");
  682. for (var i = 0; i < count; i++)
  683. {
  684. chartItems[i].InitMissData(entity, i);
  685. //计算项值及遗漏计算
  686. yes = yes && chartItems[i].SetItemValue(info);
  687. if (yes)
  688. {
  689. //结果集赋值
  690. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  691. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  692. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  693. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  694. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  695. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  696. }
  697. }
  698. sb.Append("</tr>");
  699. if (null != entity)
  700. ResultEntity.RecordCount = entity.RecordCount + 1;
  701. else
  702. ResultEntity.RecordCount = 1;
  703. ResultEntity.Term = dbItem.Term;
  704. ResultEntity.HtmlData = sb.ToString();
  705. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  706. trendChartDataList.Add(new TrendChartData()
  707. {
  708. Id = ResultEntity.Id,
  709. ChartId = ResultEntity.ChartId,
  710. Term = ResultEntity.Term,
  711. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  712. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  713. RecordCount = ResultEntity.RecordCount,
  714. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  715. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  716. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  717. HtmlData = ResultEntity.HtmlData,
  718. ChartType = ResultEntity.ChartType,
  719. Addtime = ResultEntity.Addtime
  720. });
  721. }
  722. Console.WriteLine();
  723. }
  724. if (helper.SaveTrendChartList(SCCLottery.XJ35X7TrendChart, trendChartDataList))
  725. Log.Info(typeof(TrendChartHelper), "------<<生成新疆35选7走势图数据成功!>>------");
  726. else
  727. {
  728. Console.ForegroundColor = ConsoleColor.Red;
  729. Console.WriteLine("------<<生成新疆35选7走势图数据失败!>>------");
  730. Console.ResetColor();
  731. }
  732. Console.WriteLine();
  733. Console.WriteLine();
  734. }
  735. /// <summary>
  736. /// 生成江苏体彩七位数走势图
  737. /// </summary>
  738. /// <param name="Log">日志实例</param>
  739. public static void GenerateJSTC7WSTrendChart(LogHelper Log)
  740. {
  741. ITrendChart helper = new TrendChartServices();
  742. IDTOpenCode service = new DTOpenCodeServices();
  743. var JS7WS = ConfigHelper.GetConfigValue<int>("JS7WS");
  744. var configList = helper.GetTrendChartConfig(JS7WS);
  745. if (configList.Count == 0)
  746. {
  747. Console.WriteLine("未找到有效走势图信息");
  748. return;
  749. }
  750. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  751. foreach (var itemInfo in trendChartItemList)
  752. {
  753. itemInfo.Cid = JS7WS;
  754. }
  755. var dbItemList = service.GetJS7WSListOpenCode();
  756. if (dbItemList.Count == 0)
  757. {
  758. Console.WriteLine("未找到有效开奖数据");
  759. return;
  760. }
  761. var chartCssConfigs = helper.GetChartCssConfigs();
  762. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  763. foreach (var config in configList)//基本走势图,和值走势图,手机版
  764. {
  765. var chartId = config.Id;
  766. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  767. if (trendChartItems.Count == 0)
  768. {
  769. Console.WriteLine("未找到该走势图的显示项信息");
  770. return;
  771. }
  772. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  773. var chartItems = new TrendChartItemHelper<TCJS7WSInfo>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  774. var count = trendChartItems.Count;
  775. //var j = 0;
  776. TrendChartData entity = null;
  777. var ResultEntity = new TrendChartData
  778. {
  779. ChartId = chartId,
  780. Term = 0,
  781. ChartType = TrendChartType.PC,
  782. LocalMiss = new string[count],
  783. LastMiss = new string[count],
  784. AllMaxMiss = new string[count],
  785. AllAvgMiss = new string[count],
  786. AllTimes = new string[count]
  787. };
  788. foreach (var dbItem in dbItemList)
  789. {
  790. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  791. TCJS7WSInfo info = null;
  792. info = twoInfoList[0];
  793. if (twoInfoList.Count == 2)
  794. {
  795. entity = ResultEntity;//变量存储上一个走势图数据
  796. //if(j==0)
  797. // entity
  798. }
  799. bool yes = true;
  800. var sb = new StringBuilder(20000);
  801. sb.Append("<tr>");
  802. for (var i = 0; i < count; i++)
  803. {
  804. chartItems[i].InitMissData(entity, i);
  805. //计算项值及遗漏计算
  806. yes = yes && chartItems[i].SetItemValue(info);
  807. if (yes)
  808. {
  809. //结果集赋值
  810. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  811. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  812. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  813. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  814. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  815. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  816. }
  817. }
  818. sb.Append("</tr>");
  819. if (null != entity)
  820. ResultEntity.RecordCount = entity.RecordCount + 1;
  821. else
  822. ResultEntity.RecordCount = 1;
  823. ResultEntity.Term = dbItem.Term;
  824. ResultEntity.HtmlData = sb.ToString();
  825. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  826. trendChartDataList.Add(new TrendChartData()
  827. {
  828. Id = ResultEntity.Id,
  829. ChartId = ResultEntity.ChartId,
  830. Term = ResultEntity.Term,
  831. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  832. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  833. RecordCount = ResultEntity.RecordCount,
  834. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  835. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  836. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  837. HtmlData = ResultEntity.HtmlData,
  838. ChartType = ResultEntity.ChartType,
  839. Addtime = ResultEntity.Addtime
  840. });
  841. }
  842. Console.WriteLine();
  843. }
  844. if (helper.SaveTrendChartList(SCCLottery.JSTC7WSTrendChart, trendChartDataList))
  845. Log.Info(typeof(TrendChartHelper), "------<<生成江苏体彩七位数走势图数据成功!>>------");
  846. else
  847. {
  848. Console.ForegroundColor = ConsoleColor.Red;
  849. Console.WriteLine("------<<生成江苏体彩七位数走势图数据失败!>>------");
  850. Console.ResetColor();
  851. }
  852. Console.WriteLine();
  853. Console.WriteLine();
  854. }
  855. /// <summary>
  856. /// 生成浙江体彩6+1走势图
  857. /// </summary>
  858. /// <param name="Log">日志实例</param>
  859. public static void GenerateZJTC6J1TrendChart(LogHelper Log)
  860. {
  861. ITrendChart helper = new TrendChartServices();
  862. IDTOpenCode service = new DTOpenCodeServices();
  863. var ZJ6J1 = ConfigHelper.GetConfigValue<int>("ZJ6J1");
  864. var configList = helper.GetTrendChartConfig(ZJ6J1);
  865. if (configList.Count == 0)
  866. {
  867. Console.WriteLine("未找到有效走势图信息");
  868. return;
  869. }
  870. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  871. foreach (var itemInfo in trendChartItemList)
  872. {
  873. itemInfo.Cid = ZJ6J1;
  874. }
  875. var dbItemList = service.GetZJ6J1ListOpenCode();
  876. if (dbItemList.Count == 0)
  877. {
  878. Console.WriteLine("未找到有效开奖数据");
  879. return;
  880. }
  881. var chartCssConfigs = helper.GetChartCssConfigs();
  882. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  883. foreach (var config in configList)//基本走势图,和值走势图,手机版
  884. {
  885. var chartId = config.Id;
  886. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  887. if (trendChartItems.Count == 0)
  888. {
  889. Console.WriteLine("未找到该走势图的显示项信息");
  890. return;
  891. }
  892. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  893. var chartItems = new TrendChartItemHelper<TCZJ6J1Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  894. var count = trendChartItems.Count;
  895. //var j = 0;
  896. TrendChartData entity = null;
  897. var ResultEntity = new TrendChartData
  898. {
  899. ChartId = chartId,
  900. Term = 0,
  901. ChartType = TrendChartType.PC,
  902. LocalMiss = new string[count],
  903. LastMiss = new string[count],
  904. AllMaxMiss = new string[count],
  905. AllAvgMiss = new string[count],
  906. AllTimes = new string[count]
  907. };
  908. foreach (var dbItem in dbItemList)
  909. {
  910. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  911. TCZJ6J1Info info = null;
  912. info = twoInfoList[0];
  913. if (twoInfoList.Count == 2)
  914. {
  915. entity = ResultEntity;//变量存储上一个走势图数据
  916. //if(j==0)
  917. // entity
  918. }
  919. bool yes = true;
  920. var sb = new StringBuilder(20000);
  921. sb.Append("<tr>");
  922. for (var i = 0; i < count; i++)
  923. {
  924. chartItems[i].InitMissData(entity, i);
  925. //计算项值及遗漏计算
  926. yes = yes && chartItems[i].SetItemValue(info);
  927. if (yes)
  928. {
  929. //结果集赋值
  930. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  931. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  932. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  933. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  934. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  935. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  936. }
  937. }
  938. sb.Append("</tr>");
  939. if (null != entity)
  940. ResultEntity.RecordCount = entity.RecordCount + 1;
  941. else
  942. ResultEntity.RecordCount = 1;
  943. ResultEntity.Term = dbItem.Term;
  944. ResultEntity.HtmlData = sb.ToString();
  945. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  946. trendChartDataList.Add(new TrendChartData()
  947. {
  948. Id = ResultEntity.Id,
  949. ChartId = ResultEntity.ChartId,
  950. Term = ResultEntity.Term,
  951. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  952. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  953. RecordCount = ResultEntity.RecordCount,
  954. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  955. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  956. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  957. HtmlData = ResultEntity.HtmlData,
  958. ChartType = ResultEntity.ChartType,
  959. Addtime = ResultEntity.Addtime
  960. });
  961. }
  962. Console.WriteLine();
  963. }
  964. if (helper.SaveTrendChartList(SCCLottery.ZJTC6J1TrendChart, trendChartDataList))
  965. Log.Info(typeof(TrendChartHelper), "------<<生成浙江体彩6+1走势图数据成功!>>------");
  966. else
  967. {
  968. Console.ForegroundColor = ConsoleColor.Red;
  969. Console.WriteLine("------<<生成浙江体彩6+1走势图数据失败!>>------");
  970. Console.ResetColor();
  971. }
  972. Console.WriteLine();
  973. Console.WriteLine();
  974. }
  975. /// <summary>
  976. /// 生成福建36选7走势图
  977. /// </summary>
  978. /// <param name="Log">日志实例</param>
  979. public static void GenerateFJ36X7TrendChart(LogHelper Log)
  980. {
  981. ITrendChart helper = new TrendChartServices();
  982. IDTOpenCode service = new DTOpenCodeServices();
  983. var FJ36X7 = ConfigHelper.GetConfigValue<int>("FJ36X7");
  984. var configList = helper.GetTrendChartConfig(FJ36X7);
  985. if (configList.Count == 0)
  986. {
  987. Console.WriteLine("未找到有效走势图信息");
  988. return;
  989. }
  990. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  991. foreach (var itemInfo in trendChartItemList)
  992. {
  993. itemInfo.Cid = FJ36X7;
  994. }
  995. var dbItemList = service.GetFJ36X7ListOpenCode();
  996. if (dbItemList.Count == 0)
  997. {
  998. Console.WriteLine("未找到有效开奖数据");
  999. return;
  1000. }
  1001. var chartCssConfigs = helper.GetChartCssConfigs();
  1002. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  1003. foreach (var config in configList)//基本走势图,和值走势图,手机版
  1004. {
  1005. var chartId = config.Id;
  1006. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  1007. if (trendChartItems.Count == 0)
  1008. {
  1009. Console.WriteLine("未找到该走势图的显示项信息");
  1010. return;
  1011. }
  1012. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  1013. var chartItems = new TrendChartItemHelper<TCFJ36X7Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  1014. var count = trendChartItems.Count;
  1015. //var j = 0;
  1016. TrendChartData entity = null;
  1017. var ResultEntity = new TrendChartData
  1018. {
  1019. ChartId = chartId,
  1020. Term = 0,
  1021. ChartType = TrendChartType.PC,
  1022. LocalMiss = new string[count],
  1023. LastMiss = new string[count],
  1024. AllMaxMiss = new string[count],
  1025. AllAvgMiss = new string[count],
  1026. AllTimes = new string[count]
  1027. };
  1028. foreach (var dbItem in dbItemList)
  1029. {
  1030. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  1031. TCFJ36X7Info info = null;
  1032. info = twoInfoList[0];
  1033. if (twoInfoList.Count == 2)
  1034. {
  1035. entity = ResultEntity;//变量存储上一个走势图数据
  1036. //if(j==0)
  1037. // entity
  1038. }
  1039. bool yes = true;
  1040. var sb = new StringBuilder(20000);
  1041. sb.Append("<tr>");
  1042. for (var i = 0; i < count; i++)
  1043. {
  1044. chartItems[i].InitMissData(entity, i);
  1045. //计算项值及遗漏计算
  1046. yes = yes && chartItems[i].SetItemValue(info);
  1047. if (yes)
  1048. {
  1049. //结果集赋值
  1050. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  1051. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  1052. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  1053. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  1054. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  1055. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  1056. }
  1057. }
  1058. sb.Append("</tr>");
  1059. if (null != entity)
  1060. ResultEntity.RecordCount = entity.RecordCount + 1;
  1061. else
  1062. ResultEntity.RecordCount = 1;
  1063. ResultEntity.Term = dbItem.Term;
  1064. ResultEntity.HtmlData = sb.ToString();
  1065. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  1066. trendChartDataList.Add(new TrendChartData()
  1067. {
  1068. Id = ResultEntity.Id,
  1069. ChartId = ResultEntity.ChartId,
  1070. Term = ResultEntity.Term,
  1071. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  1072. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  1073. RecordCount = ResultEntity.RecordCount,
  1074. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  1075. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  1076. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  1077. HtmlData = ResultEntity.HtmlData,
  1078. ChartType = ResultEntity.ChartType,
  1079. Addtime = ResultEntity.Addtime
  1080. });
  1081. }
  1082. Console.WriteLine();
  1083. }
  1084. if (helper.SaveTrendChartList(SCCLottery.FJ36X7TrendChart, trendChartDataList))
  1085. Log.Info(typeof(TrendChartHelper), "------<<生成福建36选7走势图数据成功!>>------");
  1086. else
  1087. {
  1088. Console.ForegroundColor = ConsoleColor.Red;
  1089. Console.WriteLine("------<<生成福建36选7走势图数据失败!>>------");
  1090. Console.ResetColor();
  1091. }
  1092. Console.WriteLine();
  1093. Console.WriteLine();
  1094. }
  1095. /// <summary>
  1096. /// 生成福建31选7走势图
  1097. /// </summary>
  1098. /// <param name="Log">日志实例</param>
  1099. public static void GenerateFJ31X7TrendChart(LogHelper Log)
  1100. {
  1101. ITrendChart helper = new TrendChartServices();
  1102. IDTOpenCode service = new DTOpenCodeServices();
  1103. var FJ31X7 = ConfigHelper.GetConfigValue<int>("FJ31X7");
  1104. var configList = helper.GetTrendChartConfig(FJ31X7);
  1105. if (configList.Count == 0)
  1106. {
  1107. Console.WriteLine("未找到有效走势图信息");
  1108. return;
  1109. }
  1110. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  1111. foreach (var itemInfo in trendChartItemList)
  1112. {
  1113. itemInfo.Cid = FJ31X7;
  1114. }
  1115. var dbItemList = service.GetFJ31X7ListOpenCode();
  1116. if (dbItemList.Count == 0)
  1117. {
  1118. Console.WriteLine("未找到有效开奖数据");
  1119. return;
  1120. }
  1121. var chartCssConfigs = helper.GetChartCssConfigs();
  1122. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  1123. foreach (var config in configList)//基本走势图,和值走势图,手机版
  1124. {
  1125. var chartId = config.Id;
  1126. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  1127. if (trendChartItems.Count == 0)
  1128. {
  1129. Console.WriteLine("未找到该走势图的显示项信息");
  1130. return;
  1131. }
  1132. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  1133. var chartItems = new TrendChartItemHelper<TCFJ31X7Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  1134. var count = trendChartItems.Count;
  1135. //var j = 0;
  1136. TrendChartData entity = null;
  1137. var ResultEntity = new TrendChartData
  1138. {
  1139. ChartId = chartId,
  1140. Term = 0,
  1141. ChartType = TrendChartType.PC,
  1142. LocalMiss = new string[count],
  1143. LastMiss = new string[count],
  1144. AllMaxMiss = new string[count],
  1145. AllAvgMiss = new string[count],
  1146. AllTimes = new string[count]
  1147. };
  1148. foreach (var dbItem in dbItemList)
  1149. {
  1150. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  1151. TCFJ31X7Info info = null;
  1152. info = twoInfoList[0];
  1153. if (twoInfoList.Count == 2)
  1154. {
  1155. entity = ResultEntity;//变量存储上一个走势图数据
  1156. //if(j==0)
  1157. // entity
  1158. }
  1159. bool yes = true;
  1160. var sb = new StringBuilder(20000);
  1161. sb.Append("<tr>");
  1162. for (var i = 0; i < count; i++)
  1163. {
  1164. chartItems[i].InitMissData(entity, i);
  1165. //计算项值及遗漏计算
  1166. yes = yes && chartItems[i].SetItemValue(info);
  1167. if (yes)
  1168. {
  1169. //结果集赋值
  1170. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  1171. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  1172. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  1173. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  1174. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  1175. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  1176. }
  1177. }
  1178. sb.Append("</tr>");
  1179. if (null != entity)
  1180. ResultEntity.RecordCount = entity.RecordCount + 1;
  1181. else
  1182. ResultEntity.RecordCount = 1;
  1183. ResultEntity.Term = dbItem.Term;
  1184. ResultEntity.HtmlData = sb.ToString();
  1185. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  1186. trendChartDataList.Add(new TrendChartData()
  1187. {
  1188. Id = ResultEntity.Id,
  1189. ChartId = ResultEntity.ChartId,
  1190. Term = ResultEntity.Term,
  1191. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  1192. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  1193. RecordCount = ResultEntity.RecordCount,
  1194. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  1195. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  1196. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  1197. HtmlData = ResultEntity.HtmlData,
  1198. ChartType = ResultEntity.ChartType,
  1199. Addtime = ResultEntity.Addtime
  1200. });
  1201. }
  1202. Console.WriteLine();
  1203. }
  1204. if (helper.SaveTrendChartList(SCCLottery.FJ31X7TrendChart, trendChartDataList))
  1205. Log.Info(typeof(TrendChartHelper), "------<<生成福建31选7走势图数据成功!>>------");
  1206. else
  1207. {
  1208. Console.ForegroundColor = ConsoleColor.Red;
  1209. Console.WriteLine("------<<生成福建31选7走势图数据失败!>>------");
  1210. Console.ResetColor();
  1211. }
  1212. Console.WriteLine();
  1213. Console.WriteLine();
  1214. }
  1215. /// <summary>
  1216. /// 生成广东好彩1走势图
  1217. /// </summary>
  1218. /// <param name="Log">日志实例</param>
  1219. public static void GenerateGDHC1TrendChart(LogHelper Log)
  1220. {
  1221. ITrendChart helper = new TrendChartServices();
  1222. IDTOpenCode service = new DTOpenCodeServices();
  1223. var GDHC1 = ConfigHelper.GetConfigValue<int>("GDHC1");
  1224. var configList = helper.GetTrendChartConfig(GDHC1);
  1225. if (configList.Count == 0)
  1226. {
  1227. Console.WriteLine("未找到有效走势图信息");
  1228. return;
  1229. }
  1230. var trendChartItemList = helper.GetTrendChartItem(configList.Select(c => c.Id).ToList());
  1231. foreach (var itemInfo in trendChartItemList)
  1232. {
  1233. itemInfo.Cid = GDHC1;
  1234. }
  1235. var dbItemList = service.GetGDHC1ListOpenCode();
  1236. if (dbItemList.Count == 0)
  1237. {
  1238. Console.WriteLine("未找到有效开奖数据");
  1239. return;
  1240. }
  1241. var chartCssConfigs = helper.GetChartCssConfigs();
  1242. List<TrendChartData> trendChartDataList = new List<TrendChartData>();
  1243. foreach (var config in configList)//基本走势图,和值走势图,手机版
  1244. {
  1245. var chartId = config.Id;
  1246. var trendChartItems = trendChartItemList.Where(S => S.ChartId == chartId).OrderBy(S => S.OrderBy).ToList();
  1247. if (trendChartItems.Count == 0)
  1248. {
  1249. Console.WriteLine("未找到该走势图的显示项信息");
  1250. return;
  1251. }
  1252. Console.WriteLine(string.Format("------生成{0}------", config.Name));
  1253. var chartItems = new TrendChartItemHelper<FCGDHC1Info>().InitTrendChartItem(chartCssConfigs, trendChartItems);
  1254. var count = trendChartItems.Count;
  1255. //var j = 0;
  1256. TrendChartData entity = null;
  1257. var ResultEntity = new TrendChartData
  1258. {
  1259. ChartId = chartId,
  1260. Term = 0,
  1261. ChartType = TrendChartType.PC,
  1262. LocalMiss = new string[count],
  1263. LastMiss = new string[count],
  1264. AllMaxMiss = new string[count],
  1265. AllAvgMiss = new string[count],
  1266. AllTimes = new string[count]
  1267. };
  1268. foreach (var dbItem in dbItemList)
  1269. {
  1270. var twoInfoList = dbItemList.Where(R => R.Term <= dbItem.Term).OrderByDescending(O => O.Term).Take(2).ToList();
  1271. FCGDHC1Info info = null;
  1272. info = twoInfoList[0];
  1273. if (twoInfoList.Count == 2)
  1274. {
  1275. entity = ResultEntity;//变量存储上一个走势图数据
  1276. //if(j==0)
  1277. // entity
  1278. }
  1279. bool yes = true;
  1280. var sb = new StringBuilder(20000);
  1281. sb.Append("<tr>");
  1282. for (var i = 0; i < count; i++)
  1283. {
  1284. chartItems[i].InitMissData(entity, i);
  1285. //计算项值及遗漏计算
  1286. yes = yes && chartItems[i].SetItemValue(info);
  1287. if (yes)
  1288. {
  1289. //结果集赋值
  1290. ResultEntity.LocalMiss[i] = chartItems[i].GetMissData(MissDataType.LocalMiss);
  1291. ResultEntity.LastMiss[i] = chartItems[i].GetMissData(MissDataType.LastMiss);
  1292. ResultEntity.AllMaxMiss[i] = chartItems[i].GetMissData(MissDataType.AllMaxMiss);
  1293. ResultEntity.AllAvgMiss[i] = chartItems[i].GetMissData(MissDataType.AllAvgMiss);
  1294. ResultEntity.AllTimes[i] = chartItems[i].GetMissData(MissDataType.AllTimes);
  1295. sb.Append(chartItems[i].GetFomartString("<td {0}>{1}</td>"));
  1296. }
  1297. }
  1298. sb.Append("</tr>");
  1299. if (null != entity)
  1300. ResultEntity.RecordCount = entity.RecordCount + 1;
  1301. else
  1302. ResultEntity.RecordCount = 1;
  1303. ResultEntity.Term = dbItem.Term;
  1304. ResultEntity.HtmlData = sb.ToString();
  1305. Console.WriteLine(string.Format("为{0}期开奖数据生成{1}成功", dbItem.Term, config.Name));
  1306. trendChartDataList.Add(new TrendChartData()
  1307. {
  1308. Id = ResultEntity.Id,
  1309. ChartId = ResultEntity.ChartId,
  1310. Term = ResultEntity.Term,
  1311. AllMaxMiss = ResultEntity.AllMaxMiss.Clone() as string[],
  1312. AllTimes = ResultEntity.AllTimes.Clone() as string[],
  1313. RecordCount = ResultEntity.RecordCount,
  1314. AllAvgMiss = ResultEntity.AllAvgMiss.Clone() as string[],
  1315. LastMiss = ResultEntity.LastMiss.Clone() as string[],
  1316. LocalMiss = ResultEntity.LocalMiss.Clone() as string[],
  1317. HtmlData = ResultEntity.HtmlData,
  1318. ChartType = ResultEntity.ChartType,
  1319. Addtime = ResultEntity.Addtime
  1320. });
  1321. }
  1322. Console.WriteLine();
  1323. }
  1324. if (helper.SaveTrendChartList(SCCLottery.GDHC1TrendChart, trendChartDataList))
  1325. Log.Info(typeof(TrendChartHelper), "------<<生成广东好彩1走势图数据成功!>>------");
  1326. else
  1327. {
  1328. Console.ForegroundColor = ConsoleColor.Red;
  1329. Console.WriteLine("------<<生成广东好彩1走势图数据失败!>>------");
  1330. Console.ResetColor();
  1331. }
  1332. Console.WriteLine();
  1333. Console.WriteLine();
  1334. }
  1335. }
  1336. }