Tchlj61.cs 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Web;
  6. using CP.Cache;
  7. using CP.Common;
  8. using CP.Model;
  9. namespace CP.Business
  10. {
  11. public class Tchlj61
  12. {
  13. /// <summary>
  14. /// 缓存
  15. /// </summary>
  16. static WMCache cache = WMCache.GetCacheService();
  17. /// <summary>
  18. /// cache中所有的61开奖信息
  19. /// </summary>
  20. /// <returns></returns>
  21. public static List<Tchlj61Info> GetTchlj61List()
  22. {
  23. string key = string.Format(CacheKeys.TCHLJ61_DATALIST);
  24. List<Tchlj61Info> list = cache.GetObject<List<Tchlj61Info>>(key) as List<Tchlj61Info>;
  25. if (list == null)
  26. {
  27. list = Tchlj61Data.GetTchlj61List();
  28. cache.AddObject(key, list, (int)CacheTime.Data);
  29. }
  30. return list;
  31. }
  32. /// <summary>
  33. /// 取出开奖数据中最后一期的开奖数据
  34. /// </summary>
  35. /// <returns></returns>
  36. public static Tchlj61Info GetEndTchlj61Info(ref List<Tchlj61Info> list)
  37. {
  38. Tchlj61Info info = new Tchlj61Info();
  39. if (list != null && list.Count > 0)
  40. return list[list.Count - 1];
  41. return info;
  42. }
  43. /// <summary>
  44. /// 数据筛选
  45. /// </summary>
  46. /// <param name="pagesize"></param>
  47. /// <param name="year"></param>
  48. /// <param name="sqi"></param>
  49. /// <param name="eqi"></param>
  50. /// <param name="week"></param>
  51. /// <param name="ds"></param>
  52. /// <returns></returns>
  53. public static List<Tchlj61Info> GetTchlj61List(ref List<Tchlj61Info> list,int pagesize, int year, int sqi, int eqi, int week = 0, int ds = 0)
  54. {
  55. List<Tchlj61Info> rlist = new List<Tchlj61Info>();
  56. int size = list.Count;
  57. if (pagesize > 0)
  58. {
  59. for (int i = (size - pagesize); i < size; i++)
  60. {
  61. rlist.Add(list[i]);
  62. }
  63. return rlist;
  64. }
  65. if (year > 0)
  66. {
  67. rlist.Clear();
  68. for (int i = 0; i < size; i++)
  69. {
  70. if (TypeConverter.StrToInt(list[i].qi.ToString().Substring(0, 4), 0) == year)
  71. rlist.Add(list[i]);
  72. }
  73. return rlist;
  74. }
  75. if (week > 0)
  76. {
  77. rlist.Clear();
  78. List<Tchlj61Info> temp = new List<Tchlj61Info>();
  79. for (int i = 0; i < size; i++)
  80. {
  81. if (list[i].week == week)
  82. temp.Add(list[i]);
  83. }
  84. for (int i = (temp.Count - 120); i < temp.Count; i++)
  85. {
  86. rlist.Add(temp[i]);
  87. }
  88. return rlist;
  89. }
  90. if (ds > 0)
  91. {
  92. rlist.Clear();
  93. List<Tchlj61Info> temp = new List<Tchlj61Info>();
  94. for (int i = 0; i < size; i++)
  95. {
  96. if (ds == 1)
  97. {
  98. if (list[i].qi % 2 != 0)
  99. temp.Add(list[i]);
  100. }
  101. else if (ds == 2)
  102. {
  103. if (list[i].qi % 2 == 0)
  104. temp.Add(list[i]);
  105. }
  106. }
  107. for (int i = (temp.Count - 120); i < temp.Count; i++)
  108. {
  109. rlist.Add(temp[i]);
  110. }
  111. return rlist;
  112. }
  113. if (sqi > 0 && eqi > 0)
  114. {
  115. rlist.Clear();
  116. int srank = GetTchlj61Info(ref list,sqi).rank;
  117. int erank = GetTchlj61Info(ref list,eqi).rank;
  118. if (erank != 0 && srank != 0 && erank > srank)
  119. {
  120. for (int i = srank - 1; i < erank && i < size; i++)
  121. {
  122. rlist.Add(list[i]);
  123. }
  124. }
  125. return rlist;
  126. }
  127. if (pagesize == 0 && year == 0 && sqi == 0 && eqi == 0 && week == 0 && ds == 0)
  128. return list;
  129. return rlist;
  130. }
  131. /// <summary>
  132. /// 遗漏上用到的黑龙江6+1数据..
  133. /// </summary>
  134. /// <param name="eqi"></param>
  135. /// <returns></returns>
  136. public static List<Tchlj61Info> GetMissTchlj61List(ref List<Tchlj61Info> list, int eqi)
  137. {
  138. List<Tchlj61Info> rlist = new List<Tchlj61Info>();
  139. if (eqi > 0)
  140. {
  141. int size = list.Count;
  142. int erank = GetTchlj61Info(ref list,eqi).rank;
  143. if (erank > 0)
  144. {
  145. for (int i = 0; i < erank && i < size; i++)
  146. {
  147. rlist.Add(list[i]);
  148. }
  149. }
  150. else
  151. {
  152. for (int i = 0; i < size; i++)
  153. {
  154. rlist.Add(list[i]);
  155. }
  156. }
  157. }
  158. else
  159. {
  160. rlist = list;
  161. }
  162. return rlist;
  163. }
  164. /// <summary>
  165. /// 根据期数获取上一期的数据...
  166. /// </summary>
  167. /// <param name="qi"></param>
  168. /// <returns></returns>
  169. public static Tchlj61Info GetTchlj61Info(ref List<Tchlj61Info> list, int qi)
  170. {
  171. Tchlj61Info info = new Tchlj61Info();
  172. int size = list.Count;
  173. for (int i = 0; i < size; i++)
  174. {
  175. if (list[i].qi == qi)
  176. {
  177. info = list[i];
  178. break;
  179. }
  180. }
  181. return info;
  182. }
  183. /// <summary>
  184. /// 根据排名取上一期的数据
  185. /// </summary>
  186. /// <param name="rank"></param>
  187. /// <returns></returns>
  188. public static Tchlj61Info GetLastQiTchlj61Info(ref List<Tchlj61Info> list, int rank)
  189. {
  190. Tchlj61Info info = new Tchlj61Info();
  191. int size = list.Count;
  192. for (int i = rank - 2; i >= 0; i--)
  193. {
  194. if (list[i].rank == rank - 1)
  195. {
  196. info = list[i];
  197. return info;
  198. }
  199. }
  200. return info;
  201. }
  202. /// <summary>
  203. /// 根据排名取下一期的数据
  204. /// </summary>
  205. /// <param name="rank"></param>
  206. /// <returns></returns>
  207. public static Tchlj61Info GetNextQiTchlj61Info(ref List<Tchlj61Info> list, int rank)
  208. {
  209. Tchlj61Info info = new Tchlj61Info();
  210. int size = list.Count;
  211. for (int i = rank - 1; i < list.Count; i++)
  212. {
  213. if (list[i].rank == rank + 1)
  214. {
  215. info = list[i];
  216. return info;
  217. }
  218. }
  219. return info;
  220. }
  221. #region 条件查询上一次出来时的数据
  222. /// <summary>
  223. /// 某个位号码上一次的数据..
  224. /// </summary>
  225. /// <param name="val"></param>
  226. /// <param name="rank"></param>
  227. /// <param name="type"></param>
  228. /// <returns></returns>
  229. public static Tchlj61Info GetLastTchlj61Info(ref List<Tchlj61Info> list, int val, int rank, int type)
  230. {
  231. Tchlj61Info info = new Tchlj61Info();
  232. int size = list.Count;
  233. for (int i = rank - 2; i >= 0; i--)
  234. {
  235. if (type == 0 && list[i].n1 == val)
  236. {
  237. info = list[i];
  238. return info;
  239. }
  240. if (type == 1 && list[i].n2 == val)
  241. {
  242. info = list[i];
  243. return info;
  244. }
  245. if (type == 2 && list[i].n3 == val)
  246. {
  247. info = list[i];
  248. return info;
  249. }
  250. if (type == 3 && list[i].n4 == val)
  251. {
  252. info = list[i];
  253. return info;
  254. }
  255. if (type == 4 && list[i].n5 == val)
  256. {
  257. info = list[i];
  258. return info;
  259. }
  260. if (type == 5 && list[i].n6 == val)
  261. {
  262. info = list[i];
  263. return info;
  264. }
  265. if (type == 6 && list[i].n7 == val)
  266. {
  267. info = list[i];
  268. return info;
  269. }
  270. List<int> kjh = new List<int>() { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6, list[i].n7 };
  271. //组选分布时
  272. if (type == 7 && kjh.Contains(val))
  273. {
  274. info = list[i];
  275. return info;
  276. }
  277. }
  278. return info;
  279. }
  280. /// <summary>
  281. /// 上一次和值奇偶形态的数据
  282. /// val==0偶
  283. /// val=1奇
  284. /// </summary>
  285. /// <param name="val"></param>
  286. /// <param name="rank"></param>
  287. /// <returns></returns>
  288. public static Tchlj61Info GetLastHzJoTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  289. {
  290. Tchlj61Info info = new Tchlj61Info();
  291. int size = list.Count;
  292. for (int i = rank - 2; i >= 0; i--)
  293. {
  294. //偶
  295. if (val == 0 && list[i].hz % 2 == 0)
  296. {
  297. info = list[i];
  298. return info;
  299. }
  300. //奇
  301. if (val == 1 && list[i].hz % 2 != 0)
  302. {
  303. info = list[i];
  304. return info;
  305. }
  306. }
  307. return info;
  308. }
  309. /// <summary>
  310. /// 上一次和值大小的数据
  311. /// </summary>
  312. /// <param name="val"></param>
  313. /// <param name="rank"></param>
  314. /// <returns></returns>
  315. public static Tchlj61Info GetLastHzDxTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  316. {
  317. Tchlj61Info info = new Tchlj61Info();
  318. int size = list.Count;
  319. for (int i = rank - 2; i >= 0; i--)
  320. {
  321. if (ZstUtils.GetQxcHzDx(list[i].hz) == val)
  322. return list[i];
  323. }
  324. return info;
  325. }
  326. /// <summary>
  327. /// 上一次和值的情况
  328. /// </summary>
  329. /// <param name="shz"></param>
  330. /// <param name="ehz"></param>
  331. /// <param name="rank"></param>
  332. /// <returns></returns>
  333. public static Tchlj61Info GetlastTchlj61HzInfo(ref List<Tchlj61Info> list, int shz, int ehz, int rank)
  334. {
  335. Tchlj61Info info = new Tchlj61Info();
  336. int size = list.Count;
  337. for (int i = rank - 2; i >= 0; i--)
  338. {
  339. if (list[i].hz >= shz && list[i].hz <= ehz)
  340. {
  341. return list[i];
  342. }
  343. }
  344. return info;
  345. }
  346. /// <summary>
  347. /// 上一次和尾的数据
  348. /// </summary>
  349. /// <param name="val"></param>
  350. /// <param name="rank"></param>
  351. /// <returns></returns>
  352. public static Tchlj61Info GetLastHwTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  353. {
  354. Tchlj61Info info = new Tchlj61Info();
  355. int size = list.Count;
  356. for (int i = rank - 2; i >= 0; i--)
  357. {
  358. if (ZstUtils.GetHw(list[i].hz) == val)
  359. {
  360. info = list[i];
  361. return info;
  362. }
  363. }
  364. return info;
  365. }
  366. /// <summary>
  367. /// 和尾大小
  368. /// </summary>
  369. /// <param name="val"></param>
  370. /// <param name="rank"></param>
  371. /// <returns></returns>
  372. public static Tchlj61Info GetLastHwDxTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  373. {
  374. Tchlj61Info info = new Tchlj61Info();
  375. int size = list.Count;
  376. for (int i = rank - 2; i >= 0; i--)
  377. {
  378. int hw = ZstUtils.GetHw(list[i].hz);
  379. if (ZstUtils.GetDx(hw) == val)
  380. {
  381. info = list[i];
  382. return info;
  383. }
  384. }
  385. return info;
  386. }
  387. /// <summary>
  388. /// 和尾奇偶
  389. /// </summary>
  390. /// <param name="val"></param>
  391. /// <param name="rank"></param>
  392. /// <returns></returns>
  393. public static Tchlj61Info GetLastHwJoTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  394. {
  395. Tchlj61Info info = new Tchlj61Info();
  396. int size = list.Count;
  397. for (int i = rank - 2; i >= 0; i--)
  398. {
  399. int hw = ZstUtils.GetHw(list[i].hz);
  400. if (ZstUtils.GetJo(hw) == val)
  401. {
  402. info = list[i];
  403. return info;
  404. }
  405. }
  406. return info;
  407. }
  408. /// <summary>
  409. /// 和尾质合
  410. /// </summary>
  411. /// <param name="val"></param>
  412. /// <param name="rank"></param>
  413. /// <returns></returns>
  414. public static Tchlj61Info GetLastHwZhTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  415. {
  416. Tchlj61Info info = new Tchlj61Info();
  417. int size = list.Count;
  418. for (int i = rank - 2; i >= 0; i--)
  419. {
  420. int hw = ZstUtils.GetHw(list[i].hz);
  421. if (ZstUtils.GetZh(hw) == val)
  422. {
  423. info = list[i];
  424. return info;
  425. }
  426. }
  427. return info;
  428. }
  429. /// <summary>
  430. /// 和值质合
  431. /// </summary>
  432. /// <param name="val"></param>
  433. /// <param name="rank"></param>
  434. /// <returns></returns>
  435. public static Tchlj61Info GetLastHzZhTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  436. {
  437. Tchlj61Info info = new Tchlj61Info();
  438. int size = list.Count;
  439. for (int i = rank - 2; i >= 0; i--)
  440. {
  441. if (ZstUtils.GetZh(list[i].hz) == val)
  442. {
  443. info = list[i];
  444. return info;
  445. }
  446. }
  447. return info;
  448. }
  449. /// <summary>
  450. /// 上一次和尾012路的情况
  451. /// </summary>
  452. /// <param name="val"></param>
  453. /// <param name="rank"></param>
  454. /// <returns></returns>
  455. public static Tchlj61Info GetLastHw012Tchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  456. {
  457. Tchlj61Info info = new Tchlj61Info();
  458. int size = list.Count;
  459. for (int i = rank - 2; i >= 0; i--)
  460. {
  461. int hw = ZstUtils.GetHw(list[i].hz);
  462. if (ZstUtils.Get012(hw) == val)
  463. {
  464. info = list[i];
  465. return info;
  466. }
  467. }
  468. return info;
  469. }
  470. /// <summary>
  471. /// 上一次和值012路的情况
  472. /// </summary>
  473. /// <param name="val"></param>
  474. /// <param name="rank"></param>
  475. /// <returns></returns>
  476. public static Tchlj61Info GetLastHz012Tchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  477. {
  478. Tchlj61Info info = new Tchlj61Info();
  479. int size = list.Count;
  480. for (int i = rank - 2; i >= 0; i--)
  481. {
  482. if (ZstUtils.Get012(list[i].hz) == val)
  483. {
  484. info = list[i];
  485. return info;
  486. }
  487. }
  488. return info;
  489. }
  490. /// <summary>
  491. /// 上一次跨度=n的数据
  492. /// </summary>
  493. /// <param name="val"></param>
  494. /// <param name="rank"></param>
  495. /// <returns></returns>
  496. public static Tchlj61Info GetLastKdTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  497. {
  498. Tchlj61Info info = new Tchlj61Info();
  499. int size = list.Count;
  500. for (int i = rank - 2; i >= 0; i--)
  501. {
  502. if (list[i].kd == val)
  503. {
  504. info = list[i];
  505. return info;
  506. }
  507. }
  508. return info;
  509. }
  510. /// <summary>
  511. /// 跨度大小
  512. /// </summary>
  513. /// <param name="val"></param>
  514. /// <param name="rank"></param>
  515. /// <returns></returns>
  516. public static Tchlj61Info GetLastKdDxTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  517. {
  518. Tchlj61Info info = new Tchlj61Info();
  519. int size = list.Count;
  520. for (int i = rank - 2; i >= 0; i--)
  521. {
  522. if (ZstUtils.GetDx(list[i].kd) == val)
  523. {
  524. info = list[i];
  525. return info;
  526. }
  527. }
  528. return info;
  529. }
  530. /// <summary>
  531. /// 跨度奇偶
  532. /// </summary>
  533. /// <param name="val"></param>
  534. /// <param name="rank"></param>
  535. /// <returns></returns>
  536. public static Tchlj61Info GetLastKdJoTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  537. {
  538. Tchlj61Info info = new Tchlj61Info();
  539. int size = list.Count;
  540. for (int i = rank - 2; i >= 0; i--)
  541. {
  542. if (ZstUtils.GetJo(list[i].kd) == val)
  543. {
  544. info = list[i];
  545. return info;
  546. }
  547. }
  548. return info;
  549. }
  550. /// <summary>
  551. /// 跨度质合
  552. /// </summary>
  553. /// <param name="val"></param>
  554. /// <param name="rank"></param>
  555. /// <returns></returns>
  556. public static Tchlj61Info GetLastKdZhTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  557. {
  558. Tchlj61Info info = new Tchlj61Info();
  559. int size = list.Count;
  560. for (int i = rank - 2; i >= 0; i--)
  561. {
  562. if (ZstUtils.GetZh(list[i].kd) == val)
  563. {
  564. info = list[i];
  565. return info;
  566. }
  567. }
  568. return info;
  569. }
  570. /// <summary>
  571. /// 上一次跨度012路的情况
  572. /// </summary>
  573. /// <param name="val"></param>
  574. /// <param name="rank"></param>
  575. /// <returns></returns>
  576. public static Tchlj61Info GetLastKd012Tchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  577. {
  578. Tchlj61Info info = new Tchlj61Info();
  579. int size = list.Count;
  580. for (int i = rank - 2; i >= 0; i--)
  581. {
  582. if (ZstUtils.Get012(list[i].kd) == val)
  583. {
  584. info = list[i];
  585. return info;
  586. }
  587. }
  588. return info;
  589. }
  590. /// <summary>
  591. /// 上一次跨度振幅的数据
  592. /// </summary>
  593. /// <param name="val"></param>
  594. /// <param name="rank"></param>
  595. /// <returns></returns>
  596. public static Tchlj61Info GetLastKdZfTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  597. {
  598. Tchlj61Info info = new Tchlj61Info();
  599. int size = list.Count;
  600. for (int i = rank - 2; i >= 0; i--)
  601. {
  602. if (i > 0)
  603. {
  604. if (Math.Abs(list[i].kd - list[i - 1].kd) == val)
  605. {
  606. info = list[i];
  607. return info;
  608. }
  609. }
  610. }
  611. return info;
  612. }
  613. /// <summary>
  614. /// 上一次和值的数据
  615. /// </summary>
  616. /// <param name="val"></param>
  617. /// <param name="rank"></param>
  618. /// <returns></returns>
  619. public static Tchlj61Info GetLastHzTchlj61Info(ref List<Tchlj61Info> list, int val, int rank)
  620. {
  621. Tchlj61Info info = new Tchlj61Info();
  622. int size = list.Count;
  623. for (int i = rank - 2; i >= 0; i--)
  624. {
  625. if (val < 21 && list[i].hz < 21)
  626. {
  627. info = list[i];
  628. return info;
  629. }
  630. if (val > 38 && list[i].hz > 38)
  631. {
  632. info = list[i];
  633. return info;
  634. }
  635. if (list[i].hz == val)
  636. {
  637. info = list[i];
  638. return info;
  639. }
  640. }
  641. return info;
  642. }
  643. /// <summary>
  644. /// 上一次某位号码重号的数据
  645. /// </summary>
  646. /// <returns></returns>
  647. public static Tchlj61Info GetLastNChTchlj61Info(ref List<Tchlj61Info> list, int rank, int type)
  648. {
  649. Tchlj61Info info = new Tchlj61Info();
  650. int size = list.Count;
  651. for (int i = rank - 2; i >= 0; i--)
  652. {
  653. if (type == 0)
  654. {
  655. if (i > 0)
  656. {
  657. if ((list[i].n1 - list[i - 1].n1) == 0)
  658. return list[i];
  659. }
  660. }
  661. if (type == 1)
  662. {
  663. if (i > 0)
  664. {
  665. if ((list[i].n2 - list[i - 1].n2) == 0)
  666. return list[i];
  667. }
  668. }
  669. if (type == 2)
  670. {
  671. if (i > 0)
  672. {
  673. if ((list[i].n3 - list[i - 1].n3) == 0)
  674. return list[i];
  675. }
  676. }
  677. if (type == 3)
  678. {
  679. if (i > 0)
  680. {
  681. if ((list[i].n4 - list[i - 1].n4) == 0)
  682. return list[i];
  683. }
  684. }
  685. if (type == 4)
  686. {
  687. if (i > 0)
  688. {
  689. if ((list[i].n5 - list[i - 1].n5) == 0)
  690. return list[i];
  691. }
  692. }
  693. if (type == 5)
  694. {
  695. if (i > 0)
  696. {
  697. if ((list[i].n6 - list[i - 1].n6) == 0)
  698. return list[i];
  699. }
  700. }
  701. if (type == 6)
  702. {
  703. if (i > 0)
  704. {
  705. if ((list[i].n7 - list[i - 1].n7) == 0)
  706. return list[i];
  707. }
  708. }
  709. }
  710. return info;
  711. }
  712. /// <summary>
  713. /// 非重号的数据
  714. /// </summary>
  715. /// <param name="rank"></param>
  716. /// <param name="type"></param>
  717. /// <returns></returns>
  718. public static Tchlj61Info GetLastNNotChTchlj61Info(ref List<Tchlj61Info> list, int rank, int type)
  719. {
  720. Tchlj61Info info = new Tchlj61Info();
  721. int size = list.Count;
  722. for (int i = rank - 2; i >= 0; i--)
  723. {
  724. if (type == 0)
  725. {
  726. if (i > 0)
  727. {
  728. if ((list[i].n1 - list[i - 1].n1) != 0)
  729. return list[i];
  730. }
  731. }
  732. if (type == 1)
  733. {
  734. if (i > 0)
  735. {
  736. if ((list[i].n2 - list[i - 1].n2) != 0)
  737. return list[i];
  738. }
  739. }
  740. if (type == 2)
  741. {
  742. if (i > 0)
  743. {
  744. if ((list[i].n3 - list[i - 1].n3) != 0)
  745. return list[i];
  746. }
  747. }
  748. if (type == 3)
  749. {
  750. if (i > 0)
  751. {
  752. if ((list[i].n4 - list[i - 1].n4) != 0)
  753. return list[i];
  754. }
  755. }
  756. if (type == 4)
  757. {
  758. if (i > 0)
  759. {
  760. if ((list[i].n5 - list[i - 1].n5) != 0)
  761. return list[i];
  762. }
  763. }
  764. if (type == 5)
  765. {
  766. if (i > 0)
  767. {
  768. if ((list[i].n6 - list[i - 1].n6) != 0)
  769. return list[i];
  770. }
  771. }
  772. if (type == 6)
  773. {
  774. if (i > 0)
  775. {
  776. if ((list[i].n7 - list[i - 1].n7) != 0)
  777. return list[i];
  778. }
  779. }
  780. }
  781. return info;
  782. }
  783. #region 上一次某个号码的大小情况
  784. /// <summary>
  785. /// 上一次某个号码大小的情况
  786. /// </summary>
  787. /// <param name="dx"></param>
  788. /// <param name="rank"></param>
  789. /// <param name="site"></param>
  790. /// <returns></returns>
  791. public static Tchlj61Info GetLastNdxInfo(ref List<Tchlj61Info> list, int dx, int rank, int site)
  792. {
  793. Tchlj61Info info = new Tchlj61Info();
  794. int size = list.Count;
  795. for (int i = rank - 2; i >= 0; i--)
  796. {
  797. if (site == 0)
  798. {
  799. if (ZstUtils.GetDx(list[i].n1) == dx)
  800. {
  801. info = list[i];
  802. return info;
  803. }
  804. }
  805. if (site == 1)
  806. {
  807. if (ZstUtils.GetDx(list[i].n2) == dx)
  808. {
  809. info = list[i];
  810. return info;
  811. }
  812. }
  813. if (site == 2)
  814. {
  815. if (ZstUtils.GetDx(list[i].n3) == dx)
  816. {
  817. info = list[i];
  818. return info;
  819. }
  820. }
  821. if (site == 3)
  822. {
  823. if (ZstUtils.GetDx(list[i].n4) == dx)
  824. {
  825. info = list[i];
  826. return info;
  827. }
  828. }
  829. if (site == 5)
  830. {
  831. if (ZstUtils.GetDx(list[i].n6) == dx)
  832. {
  833. info = list[i];
  834. return info;
  835. }
  836. }
  837. if (site == 6)
  838. {
  839. if (ZstUtils.GetDx(list[i].n7) == dx)
  840. {
  841. info = list[i];
  842. return info;
  843. }
  844. }
  845. }
  846. return info;
  847. }
  848. #endregion
  849. #region 奇偶形态的上一次数据
  850. /// <summary>
  851. /// 开奖号某位上的上一次奇偶数据..
  852. /// </summary>
  853. /// <param name="val"></param>
  854. /// <param name="rank"></param>
  855. /// <param name="site"></param>
  856. /// <returns></returns>
  857. public static Tchlj61Info GetLastNjoInfo(ref List<Tchlj61Info> list, int jo, int rank, int site)
  858. {
  859. Tchlj61Info info = new Tchlj61Info();
  860. int size = list.Count;
  861. for (int i = rank - 2; i >= 0; i--)
  862. {
  863. if (site == 0)
  864. {
  865. if (ZstUtils.GetJo(list[i].n1) == jo)
  866. {
  867. info = list[i];
  868. return info;
  869. }
  870. }
  871. if (site == 1)
  872. {
  873. if (ZstUtils.GetJo(list[i].n2) == jo)
  874. {
  875. info = list[i];
  876. return info;
  877. }
  878. }
  879. if (site == 2)
  880. {
  881. if (ZstUtils.GetJo(list[i].n3) == jo)
  882. {
  883. info = list[i];
  884. return info;
  885. }
  886. }
  887. if (site == 3)
  888. {
  889. if (ZstUtils.GetJo(list[i].n4) == jo)
  890. {
  891. info = list[i];
  892. return info;
  893. }
  894. }
  895. if (site == 4)
  896. {
  897. if (ZstUtils.GetJo(list[i].n5) == jo)
  898. {
  899. info = list[i];
  900. return info;
  901. }
  902. }
  903. if (site == 5)
  904. {
  905. if (ZstUtils.GetJo(list[i].n6) == jo)
  906. {
  907. info = list[i];
  908. return info;
  909. }
  910. }
  911. if (site == 6)
  912. {
  913. if (ZstUtils.GetJo(list[i].n7) == jo)
  914. {
  915. info = list[i];
  916. return info;
  917. }
  918. }
  919. }
  920. return info;
  921. }
  922. #endregion
  923. #region 质号形态的上一次数据
  924. /// <summary>
  925. /// 开奖号某位上的上一次质合数据..
  926. /// </summary>
  927. /// <param name="val"></param>
  928. /// <param name="rank"></param>
  929. /// <param name="site"></param>
  930. /// <returns></returns>
  931. public static Tchlj61Info GetLastNzhInfo(ref List<Tchlj61Info> list, int jo, int rank, int site)
  932. {
  933. Tchlj61Info info = new Tchlj61Info();
  934. int size = list.Count;
  935. for (int i = rank - 2; i >= 0; i--)
  936. {
  937. if (site == 0)
  938. {
  939. if (ZstUtils.GetZh(list[i].n1) == jo)
  940. {
  941. info = list[i];
  942. return info;
  943. }
  944. }
  945. if (site == 1)
  946. {
  947. if (ZstUtils.GetZh(list[i].n2) == jo)
  948. {
  949. info = list[i];
  950. return info;
  951. }
  952. }
  953. if (site == 2)
  954. {
  955. if (ZstUtils.GetZh(list[i].n3) == jo)
  956. {
  957. info = list[i];
  958. return info;
  959. }
  960. }
  961. if (site == 3)
  962. {
  963. if (ZstUtils.GetZh(list[i].n4) == jo)
  964. {
  965. info = list[i];
  966. return info;
  967. }
  968. }
  969. if (site == 4)
  970. {
  971. if (ZstUtils.GetZh(list[i].n5) == jo)
  972. {
  973. info = list[i];
  974. return info;
  975. }
  976. }
  977. if (site == 5)
  978. {
  979. if (ZstUtils.GetZh(list[i].n6) == jo)
  980. {
  981. info = list[i];
  982. return info;
  983. }
  984. }
  985. if (site == 6)
  986. {
  987. if (ZstUtils.GetZh(list[i].n7) == jo)
  988. {
  989. info = list[i];
  990. return info;
  991. }
  992. }
  993. }
  994. return info;
  995. }
  996. #endregion
  997. #region 012路形态的上一次数据
  998. /// <summary>
  999. /// 开奖号某位上的上一次012路数据..
  1000. /// </summary>
  1001. /// <param name="val"></param>
  1002. /// <param name="rank"></param>
  1003. /// <param name="site"></param>
  1004. /// <returns></returns>
  1005. public static Tchlj61Info GetLastN012Info(ref List<Tchlj61Info> list, int jo, int rank, int site)
  1006. {
  1007. Tchlj61Info info = new Tchlj61Info();
  1008. int size = list.Count;
  1009. for (int i = rank - 2; i >= 0; i--)
  1010. {
  1011. if (site == 0)
  1012. {
  1013. if (ZstUtils.Get012(list[i].n1) == jo)
  1014. {
  1015. info = list[i];
  1016. return info;
  1017. }
  1018. }
  1019. if (site == 1)
  1020. {
  1021. if (ZstUtils.Get012(list[i].n2) == jo)
  1022. {
  1023. info = list[i];
  1024. return info;
  1025. }
  1026. }
  1027. if (site == 2)
  1028. {
  1029. if (ZstUtils.Get012(list[i].n3) == jo)
  1030. {
  1031. info = list[i];
  1032. return info;
  1033. }
  1034. }
  1035. if (site == 3)
  1036. {
  1037. if (ZstUtils.Get012(list[i].n4) == jo)
  1038. {
  1039. info = list[i];
  1040. return info;
  1041. }
  1042. }
  1043. if (site == 4)
  1044. {
  1045. if (ZstUtils.Get012(list[i].n5) == jo)
  1046. {
  1047. info = list[i];
  1048. return info;
  1049. }
  1050. }
  1051. if (site == 5)
  1052. {
  1053. if (ZstUtils.Get012(list[i].n6) == jo)
  1054. {
  1055. info = list[i];
  1056. return info;
  1057. }
  1058. }
  1059. if (site == 6)
  1060. {
  1061. if (ZstUtils.Get012(list[i].n7) == jo)
  1062. {
  1063. info = list[i];
  1064. return info;
  1065. }
  1066. }
  1067. }
  1068. return info;
  1069. }
  1070. #endregion
  1071. #region 上一次某个号码振幅的数据
  1072. /// <summary>
  1073. /// 上一次某个号码振幅的数据
  1074. /// </summary>
  1075. /// <param name="zf"></param>
  1076. /// <param name="rank"></param>
  1077. /// <param name="type"></param>
  1078. /// <returns></returns>
  1079. public static Tchlj61Info GetLastNZfInfo(ref List<Tchlj61Info> list, int zf, int rank, int type)
  1080. {
  1081. Tchlj61Info info = new Tchlj61Info();
  1082. int size = list.Count;
  1083. for (int i = rank - 2; i >= 0; i--)
  1084. {
  1085. if (i > 0)
  1086. {
  1087. if (type == 0)
  1088. {
  1089. if (Math.Abs(list[i].n1 - list[i - 1].n1) == zf)
  1090. {
  1091. info = list[i];
  1092. return info;
  1093. }
  1094. }
  1095. if (type == 1)
  1096. {
  1097. if (Math.Abs(list[i].n2 - list[i - 1].n2) == zf)
  1098. {
  1099. info = list[i];
  1100. return info;
  1101. }
  1102. }
  1103. if (type == 2)
  1104. {
  1105. if (Math.Abs(list[i].n3 - list[i - 1].n3) == zf)
  1106. {
  1107. info = list[i];
  1108. return info;
  1109. }
  1110. }
  1111. if (type == 3)
  1112. {
  1113. if (Math.Abs(list[i].n4 - list[i - 1].n4) == zf)
  1114. {
  1115. info = list[i];
  1116. return info;
  1117. }
  1118. }
  1119. if (type == 4)
  1120. {
  1121. if (Math.Abs(list[i].n5 - list[i - 1].n5) == zf)
  1122. {
  1123. info = list[i];
  1124. return info;
  1125. }
  1126. }
  1127. if (type == 5)
  1128. {
  1129. if (Math.Abs(list[i].n6 - list[i - 1].n6) == zf)
  1130. {
  1131. info = list[i];
  1132. return info;
  1133. }
  1134. }
  1135. if (type == 6)
  1136. {
  1137. if (Math.Abs(list[i].n7 - list[i - 1].n7) == zf)
  1138. {
  1139. info = list[i];
  1140. return info;
  1141. }
  1142. }
  1143. }
  1144. }
  1145. return info;
  1146. }
  1147. #endregion
  1148. #endregion
  1149. #region 冷热号
  1150. /// <summary>
  1151. /// 百十个位上的某个号码最近size期是否有出现过.
  1152. /// 出现过为热,否则为冷号
  1153. /// </summary>
  1154. /// <param name="val"></param>
  1155. /// <param name="site"></param>
  1156. /// <param name="size"></param>
  1157. /// <returns></returns>
  1158. public static bool GetTchlj61HmLrInfo(ref List<Tchlj61Info> list, int val, int type, int size, int rank)
  1159. {
  1160. Tchlj61Info info = new Tchlj61Info();
  1161. info = GetLastTchlj61Info(ref list,val, rank, type);
  1162. if ((rank - info.rank) <= size)
  1163. return true;
  1164. return false;
  1165. }
  1166. /// <summary>
  1167. /// 上一次某位号码是冷/热号的情况..
  1168. /// </summary>
  1169. /// <param name="type"></param>
  1170. /// <param name="rank"></param>
  1171. /// <returns></returns>
  1172. public static Tchlj61Info GetTchlj61LastHmHrInfo(ref List<Tchlj61Info> list, int type, int size, int rank, bool iscool)
  1173. {
  1174. Tchlj61Info info = new Tchlj61Info();
  1175. if (list != null && list.Count > 0)
  1176. {
  1177. for (int i = rank - 2; i >= 0; i--)
  1178. {
  1179. if (iscool)
  1180. {
  1181. if (type == 0)
  1182. {
  1183. if (!GetTchlj61HmLrInfo(ref list,list[i].n1, type, size, list[i].rank))
  1184. return list[i];
  1185. }
  1186. if (type == 1)
  1187. {
  1188. if (!GetTchlj61HmLrInfo(ref list,list[i].n2, type, size, list[i].rank))
  1189. return list[i];
  1190. }
  1191. if (type == 2)
  1192. {
  1193. if (!GetTchlj61HmLrInfo(ref list,list[i].n3, type, size, list[i].rank))
  1194. return list[i];
  1195. }
  1196. if (type == 3)
  1197. {
  1198. if (!GetTchlj61HmLrInfo(ref list,list[i].n4, type, size, list[i].rank))
  1199. return list[i];
  1200. }
  1201. if (type == 4)
  1202. {
  1203. if (!GetTchlj61HmLrInfo(ref list,list[i].n5, type, size, list[i].rank))
  1204. return list[i];
  1205. }
  1206. if (type == 5)
  1207. {
  1208. if (!GetTchlj61HmLrInfo(ref list,list[i].n6, type, size, list[i].rank))
  1209. return list[i];
  1210. }
  1211. if (type == 6)
  1212. {
  1213. if (!GetTchlj61HmLrInfo(ref list,list[i].n7, type, size, list[i].rank))
  1214. return list[i];
  1215. }
  1216. }
  1217. if (!iscool)
  1218. {
  1219. if (type == 0)
  1220. {
  1221. if (GetTchlj61HmLrInfo(ref list,list[i].n1, type, size, list[i].rank))
  1222. return list[i];
  1223. }
  1224. if (type == 1)
  1225. {
  1226. if (GetTchlj61HmLrInfo(ref list,list[i].n2, type, size, list[i].rank))
  1227. return list[i];
  1228. }
  1229. if (type == 2)
  1230. {
  1231. if (GetTchlj61HmLrInfo(ref list,list[i].n3, type, size, list[i].rank))
  1232. return list[i];
  1233. }
  1234. if (type == 3)
  1235. {
  1236. if (GetTchlj61HmLrInfo(ref list,list[i].n4, type, size, list[i].rank))
  1237. return list[i];
  1238. }
  1239. if (type == 4)
  1240. {
  1241. if (GetTchlj61HmLrInfo(ref list,list[i].n5, type, size, list[i].rank))
  1242. return list[i];
  1243. }
  1244. if (type == 5)
  1245. {
  1246. if (GetTchlj61HmLrInfo(ref list,list[i].n6, type, size, list[i].rank))
  1247. return list[i];
  1248. }
  1249. if (type == 6)
  1250. {
  1251. if (GetTchlj61HmLrInfo(ref list,list[i].n7, type, size, list[i].rank))
  1252. return list[i];
  1253. }
  1254. }
  1255. }
  1256. }
  1257. return info;
  1258. }
  1259. #endregion
  1260. #region 最近n期形态=x的数据列表
  1261. /// <summary>
  1262. /// 和尾
  1263. /// </summary>
  1264. /// <returns></returns>
  1265. public static List<Tchlj61Info> GetFcQlcListByHw(ref List<Tchlj61Info> list, int val)
  1266. {
  1267. List<Tchlj61Info> rlist = new List<Tchlj61Info>();
  1268. if (list != null && list.Count > 0)
  1269. {
  1270. int size = list.Count;
  1271. for (int i = 0; i < size; i++)
  1272. {
  1273. if (ZstUtils.GetHw(list[i].hz) == val)
  1274. rlist.Add(list[i]);
  1275. }
  1276. }
  1277. return rlist;
  1278. }
  1279. /// <summary>
  1280. /// 所有跨度..
  1281. /// </summary>
  1282. /// <param name="val"></param>
  1283. /// <returns></returns>
  1284. public static List<Tchlj61Info> GetFcQlcListByKd(ref List<Tchlj61Info> list, int val)
  1285. {
  1286. List<Tchlj61Info> rlist = new List<Tchlj61Info>();
  1287. if (list != null && list.Count > 0)
  1288. {
  1289. int size = list.Count;
  1290. for (int i = 0; i < size; i++)
  1291. {
  1292. if (list[i].kd == val)
  1293. rlist.Add(list[i]);
  1294. }
  1295. }
  1296. return rlist;
  1297. }
  1298. /// <summary>
  1299. /// 所有基本号中包括val的数据
  1300. /// </summary>
  1301. /// <param name="red"></param>
  1302. /// <returns></returns>
  1303. public static List<Tchlj61Info> GetFcQlcListByRed(ref List<Tchlj61Info> list, int red)
  1304. {
  1305. List<Tchlj61Info> rlist = new List<Tchlj61Info>();
  1306. if (list != null && list.Count > 0)
  1307. {
  1308. int size = list.Count;
  1309. for (int i = 0; i < size; i++)
  1310. {
  1311. List<int> kjh = new List<int>() { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6, list[i].n7 };
  1312. if (kjh.Contains(red))
  1313. rlist.Add(list[i]);
  1314. }
  1315. }
  1316. return rlist;
  1317. }
  1318. #endregion
  1319. #region 开奖公告相关方法
  1320. /// <summary>
  1321. /// 大乐透最近30期开奖数据,完整开奖信息,有缓存
  1322. /// </summary>
  1323. /// <returns></returns>
  1324. public static List<Tchlj61LongInfo> GetTchlj61ListTop30()
  1325. {
  1326. string key = string.Format(CacheKeys.TCHLJ61_KJH_DATA);
  1327. List<Tchlj61LongInfo> list = cache.GetObject<List<Tchlj61LongInfo>>(key) as List<Tchlj61LongInfo>;
  1328. if (list == null)
  1329. {
  1330. list = Tchlj61Data.GetTchlj61Top30();
  1331. cache.AddObject(key, list, (int)CacheTime.Kjh);
  1332. }
  1333. return list;
  1334. }
  1335. /// <summary>
  1336. /// 获取最新一期开奖信息,完整开奖信息,有缓存
  1337. /// </summary>
  1338. /// <returns></returns>
  1339. public static Tchlj61LongInfo GetTchlj61InfoTop1(ref List<Tchlj61LongInfo> list)
  1340. {
  1341. Tchlj61LongInfo info = new Tchlj61LongInfo();
  1342. if (list.Count > 0)
  1343. {
  1344. info = list[0];
  1345. }
  1346. return info;
  1347. }
  1348. /// <summary>
  1349. /// 根据期数返回某期完整开奖信息,无缓存
  1350. /// </summary>
  1351. /// <param name="qi"></param>
  1352. /// <returns></returns>
  1353. public static Tchlj61LongInfo GetTchlj61InfoByqi(int qi)
  1354. {
  1355. return Tchlj61Data.GetTchlj61InfoByQi(qi);
  1356. }
  1357. /// <summary>
  1358. /// 返回某年对应的期数列表,有缓存
  1359. /// </summary>
  1360. /// <param name="year"></param>
  1361. /// <returns></returns>
  1362. public static List<int> GetTchlj61QiListByYear(int year)
  1363. {
  1364. string key = string.Format(CacheKeys.TCHLJ61_KJH_DATA + "/qilistbyyear/{0}", year);
  1365. List<int> list = cache.GetObject<List<int>>(key) as List<int>;
  1366. if (list == null)
  1367. {
  1368. list = Tchlj61Data.GetTchlj61QiListByYear(year);
  1369. cache.AddObject(key, list, (int)CacheTime.System);
  1370. }
  1371. return list;
  1372. }
  1373. #endregion
  1374. }
  1375. }