Fchlj22x5.cs 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. using System;
  2. using System.Collections.Generic;
  3. using CP.Cache;
  4. using CP.Common;
  5. using CP.Model;
  6. namespace CP.Business
  7. {
  8. /// <summary>
  9. /// 黑龙江22x5
  10. /// </summary>
  11. public class Fchlj22x5
  12. {
  13. /// <summary>
  14. /// 缓存
  15. /// </summary>
  16. static WMCache cache = WMCache.GetCacheService();
  17. #region 所有黑龙江22选5数据
  18. /// <summary>
  19. /// 所有黑龙江22选5数据 即中原风采22选5
  20. /// </summary>
  21. /// <returns></returns>
  22. public static List<Fchlj22x5Info> GetFchlj22x5List()
  23. {
  24. string key = string.Format(CacheKeys.FCHLJ22X5_DATALIST);
  25. List<Fchlj22x5Info> list = cache.GetObject<List<Fchlj22x5Info>>(key) as List<Fchlj22x5Info>;
  26. if (list == null)
  27. {
  28. list = Fchlj22x5Data.GetFchlj22x5List();
  29. cache.AddObject(key, list, (int)CacheTime.Data);
  30. }
  31. return list;
  32. }
  33. /// <summary>
  34. /// 数据筛选
  35. /// </summary>
  36. /// <param name="pagesize">最近n条</param>
  37. /// <param name="year">某年</param>
  38. /// <param name="sqi">开始期</param>
  39. /// <param name="eqi">结束期</param>
  40. /// <param name="week">星期n(最近120期)</param>
  41. /// <param name="ds">单双期.1=单;2=双(最近120期)</param>
  42. /// <returns></returns>
  43. public static List<Fchlj22x5Info> GetFchlj22x5List(ref List<Fchlj22x5Info> list, int pagesize, int year, int sqi, int eqi, int week = 0, int ds = 0)
  44. {
  45. List<Fchlj22x5Info> rlist = new List<Fchlj22x5Info>();
  46. if (list == null || list.Count == 0)
  47. return rlist;
  48. int size = list.Count;
  49. if (pagesize > 0)
  50. {
  51. for (int i = (size - pagesize); i < size; i++)
  52. {
  53. rlist.Add(list[i]);
  54. }
  55. return rlist;
  56. }
  57. if (year > 0)
  58. {
  59. rlist.Clear();
  60. for (int i = 0; i < size; i++)
  61. {
  62. if (TypeConverter.StrToInt(list[i].qi.ToString().Substring(0, 4), 0) == year)
  63. rlist.Add(list[i]);
  64. }
  65. return rlist;
  66. }
  67. if (week > 0)
  68. {
  69. rlist.Clear();
  70. List<Fchlj22x5Info> temp = new List<Fchlj22x5Info>();
  71. for (int i = 0; i < size; i++)
  72. {
  73. if (list[i].week == week)
  74. temp.Add(list[i]);
  75. }
  76. for (int i = (temp.Count - 120); i < temp.Count; i++)
  77. {
  78. rlist.Add(temp[i]);
  79. }
  80. return rlist;
  81. }
  82. if (ds > 0)
  83. {
  84. rlist.Clear();
  85. List<Fchlj22x5Info> temp = new List<Fchlj22x5Info>();
  86. for (int i = 0; i < size; i++)
  87. {
  88. if (ds == 1)
  89. {
  90. if (list[i].qi % 2 != 0)
  91. temp.Add(list[i]);
  92. }
  93. else if (ds == 2)
  94. {
  95. if (list[i].qi % 2 == 0)
  96. temp.Add(list[i]);
  97. }
  98. }
  99. for (int i = (temp.Count - 120); i < temp.Count; i++)
  100. {
  101. rlist.Add(temp[i]);
  102. }
  103. return rlist;
  104. }
  105. if (sqi > 0 && eqi > 0)
  106. {
  107. rlist.Clear();
  108. int srank = GetFchlj22x5Info(ref list, sqi).rank;
  109. int erank = GetFchlj22x5Info(ref list, eqi).rank;
  110. if (erank != 0 && srank != 0 && erank > srank)
  111. {
  112. for (int i = srank - 1; i < erank && i < size; i++)
  113. {
  114. rlist.Add(list[i]);
  115. }
  116. }
  117. return rlist;
  118. }
  119. ///无参数条件时,返回所有数据
  120. if (pagesize == 0 && year == 0 && sqi == 0 && eqi == 0 && week == 0)
  121. return list;
  122. return rlist;
  123. }
  124. /// <summary>
  125. /// 根据期数获取期一期的数据...
  126. /// </summary>
  127. /// <param name="qi"></param>
  128. /// <returns></returns>
  129. public static Fchlj22x5Info GetFchlj22x5Info(ref List<Fchlj22x5Info> list, int qi)
  130. {
  131. Fchlj22x5Info info = new Fchlj22x5Info();
  132. int size = list.Count;
  133. for (int i = 0; i < size; i++)
  134. {
  135. if (list[i].qi == qi)
  136. {
  137. info = list[i];
  138. break;
  139. }
  140. }
  141. return info;
  142. }
  143. #endregion
  144. #region 某个排名的上一次数据
  145. /// <summary>
  146. /// 某个排列的上一排名数据
  147. /// </summary>
  148. /// <param name="rank"></param>
  149. /// <returns></returns>
  150. public static Fchlj22x5Info GetLastFchlj22x5Info(ref List<Fchlj22x5Info> list, int rank)
  151. {
  152. Fchlj22x5Info info = new Fchlj22x5Info();
  153. if (list != null && list.Count > 0)
  154. {
  155. for (int i = rank - 2; i >= 0; i--)
  156. {
  157. if (list[i].rank == rank - 1)
  158. {
  159. info = list[i];
  160. return info;
  161. }
  162. }
  163. }
  164. return info;
  165. }
  166. #endregion
  167. #region 某个排名的下一次数据
  168. /// <summary>
  169. /// 某个排列的上一排名数据
  170. /// </summary>
  171. /// <param name="rank"></param>
  172. /// <returns></returns>
  173. public static Fchlj22x5Info GetNextFchlj22x5Info(ref List<Fchlj22x5Info> list, int rank)
  174. {
  175. Fchlj22x5Info info = new Fchlj22x5Info();
  176. if (list != null && list.Count > 0)
  177. {
  178. for (int i = rank - 1; i < list.Count; i++)
  179. {
  180. if (list[i].rank == rank + 1)
  181. {
  182. info = list[i];
  183. return info;
  184. }
  185. }
  186. }
  187. return info;
  188. }
  189. #endregion
  190. #region 某个数据/形态上一次出现的数据
  191. /// <summary>
  192. /// 黑龙江22选5某号码上一次出现时的数据
  193. /// </summary>
  194. /// <param name="val"></param>
  195. /// <param name="rank"></param>
  196. /// <returns></returns>
  197. public static Fchlj22x5Info GetLastNumFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  198. {
  199. Fchlj22x5Info info = new Fchlj22x5Info();
  200. if (list != null && list.Count > 0)
  201. {
  202. int size = list.Count;
  203. for (int i = rank - 2; i >= 0; i--)
  204. {
  205. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  206. if (kjh.Contains(val))
  207. {
  208. info = list[i];
  209. return info;
  210. }
  211. }
  212. }
  213. return info;
  214. }
  215. /// <summary>
  216. /// AC值大小的上一次数据
  217. /// </summary>
  218. /// <param name="val"></param>
  219. /// <param name="rank"></param>
  220. /// <returns></returns>
  221. public static Fchlj22x5Info GetLastAcDxFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  222. {
  223. Fchlj22x5Info info = new Fchlj22x5Info();
  224. if (list != null && list.Count > 0)
  225. {
  226. int size = list.Count;
  227. for (int i = rank - 2; i >= 0; i--)
  228. {
  229. if (ZstUtils.GetDxBymiddle(list[i].ac, 4) == val)
  230. {
  231. return list[i];
  232. }
  233. }
  234. }
  235. return info;
  236. }
  237. /// <summary>
  238. /// AC值奇偶的上一次数据
  239. /// </summary>
  240. /// <param name="val"></param>
  241. /// <param name="rank"></param>
  242. /// <returns></returns>
  243. public static Fchlj22x5Info GetLastAcJoFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  244. {
  245. Fchlj22x5Info info = new Fchlj22x5Info();
  246. if (list != null && list.Count > 0)
  247. {
  248. int size = list.Count;
  249. for (int i = rank - 2; i >= 0; i--)
  250. {
  251. if (ZstUtils.GetJo(list[i].ac) == val)
  252. {
  253. return list[i];
  254. }
  255. }
  256. }
  257. return info;
  258. }
  259. /// <summary>
  260. /// AC值质合
  261. /// </summary>
  262. /// <param name="val"></param>
  263. /// <param name="rank"></param>
  264. /// <returns></returns>
  265. public static Fchlj22x5Info GetLastAcZhFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  266. {
  267. Fchlj22x5Info info = new Fchlj22x5Info();
  268. if (list != null && list.Count > 0)
  269. {
  270. int size = list.Count;
  271. for (int i = rank - 2; i >= 0; i--)
  272. {
  273. if (ZstUtils.GetZh(list[i].ac) == val)
  274. {
  275. return list[i];
  276. }
  277. }
  278. }
  279. return info;
  280. }
  281. /// <summary>
  282. /// AC值012路的上一次数据
  283. /// </summary>
  284. /// <param name="val"></param>
  285. /// <param name="rank"></param>
  286. /// <returns></returns>
  287. public static Fchlj22x5Info GetLastAc012Fchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  288. {
  289. Fchlj22x5Info info = new Fchlj22x5Info();
  290. if (list != null && list.Count > 0)
  291. {
  292. int size = list.Count;
  293. for (int i = rank - 2; i >= 0; i--)
  294. {
  295. if (ZstUtils.Get012(list[i].ac) == val)
  296. {
  297. return list[i];
  298. }
  299. }
  300. }
  301. return info;
  302. }
  303. /// <summary>
  304. /// AC值=val的上一次情况
  305. /// </summary>
  306. /// <param name="val"></param>
  307. /// <param name="rank"></param>
  308. /// <returns></returns>
  309. public static Fchlj22x5Info GetLastAcFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  310. {
  311. Fchlj22x5Info info = new Fchlj22x5Info();
  312. if (list != null && list.Count > 0)
  313. {
  314. for (int i = rank - 2; i >= 0; i--)
  315. {
  316. if (list[i].ac == val)
  317. {
  318. return list[i];
  319. }
  320. }
  321. }
  322. return info;
  323. }
  324. /// <summary>
  325. /// 上一次AC值振幅的情况
  326. /// </summary>
  327. /// <param name="val"></param>
  328. /// <param name="rank"></param>
  329. /// <returns></returns>
  330. public static Fchlj22x5Info GetLastAczfFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  331. {
  332. Fchlj22x5Info info = new Fchlj22x5Info();
  333. if (list != null && list.Count > 0)
  334. {
  335. for (int i = rank - 2; i >= 0; i--)
  336. {
  337. if (i > 0)
  338. {
  339. if (Math.Abs(list[i].ac - list[i - 1].ac) == val)
  340. {
  341. info = list[i];
  342. return info;
  343. }
  344. }
  345. }
  346. }
  347. return info;
  348. }
  349. /// <summary>
  350. /// 跨度=val的上一次情况
  351. /// </summary>
  352. /// <param name="val"></param>
  353. /// <param name="rank"></param>
  354. /// <returns></returns>
  355. public static Fchlj22x5Info GetLastKdFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  356. {
  357. Fchlj22x5Info info = new Fchlj22x5Info();
  358. if (list != null && list.Count > 0)
  359. {
  360. for (int i = rank - 2; i >= 0; i--)
  361. {
  362. if (list[i].kd == val)
  363. {
  364. return list[i];
  365. }
  366. }
  367. }
  368. return info;
  369. }
  370. /// <summary>
  371. /// 跨度大小的上一次数据
  372. /// </summary>
  373. /// <param name="val"></param>
  374. /// <param name="rank"></param>
  375. /// <returns></returns>
  376. public static Fchlj22x5Info GetLastKdDxFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  377. {
  378. Fchlj22x5Info info = new Fchlj22x5Info();
  379. if (list != null && list.Count > 0)
  380. {
  381. int size = list.Count;
  382. for (int i = rank - 2; i >= 0; i--)
  383. {
  384. if (ZstUtils.GetDxBymiddle(list[i].kd, 13) == val)
  385. {
  386. return list[i];
  387. }
  388. }
  389. }
  390. return info;
  391. }
  392. /// <summary>
  393. /// 跨度奇偶的上一次数据
  394. /// </summary>
  395. /// <param name="val"></param>
  396. /// <param name="rank"></param>
  397. /// <returns></returns>
  398. public static Fchlj22x5Info GetLastKdJoFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  399. {
  400. Fchlj22x5Info info = new Fchlj22x5Info();
  401. if (list != null && list.Count > 0)
  402. {
  403. int size = list.Count;
  404. for (int i = rank - 2; i >= 0; i--)
  405. {
  406. if (ZstUtils.GetJo(list[i].kd) == val)
  407. {
  408. return list[i];
  409. }
  410. }
  411. }
  412. return info;
  413. }
  414. /// <summary>
  415. /// 跨度质合
  416. /// </summary>
  417. /// <param name="val"></param>
  418. /// <param name="rank"></param>
  419. /// <returns></returns>
  420. public static Fchlj22x5Info GetLastKdZhFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  421. {
  422. Fchlj22x5Info info = new Fchlj22x5Info();
  423. if (list != null && list.Count > 0)
  424. {
  425. int size = list.Count;
  426. for (int i = rank - 2; i >= 0; i--)
  427. {
  428. if (ZstUtils.GetZh(list[i].kd) == val)
  429. {
  430. return list[i];
  431. }
  432. }
  433. }
  434. return info;
  435. }
  436. /// <summary>
  437. /// 跨度012路的上一次数据
  438. /// </summary>
  439. /// <param name="val"></param>
  440. /// <param name="rank"></param>
  441. /// <returns></returns>
  442. public static Fchlj22x5Info GetLastKd012Fchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  443. {
  444. Fchlj22x5Info info = new Fchlj22x5Info();
  445. if (list != null && list.Count > 0)
  446. {
  447. int size = list.Count;
  448. for (int i = rank - 2; i >= 0; i--)
  449. {
  450. if (ZstUtils.Get012(list[i].ac) == val)
  451. {
  452. return list[i];
  453. }
  454. }
  455. }
  456. return info;
  457. }
  458. /// <summary>
  459. /// 22x5每位号的奇偶情况的上一次数据
  460. /// </summary>
  461. /// <param name="val"></param>
  462. /// <param name="site"></param>
  463. /// <param name="rank"></param>
  464. /// <returns></returns>
  465. public static Fchlj22x5Info GetLastNumJoFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int site, int rank)
  466. {
  467. Fchlj22x5Info info = new Fchlj22x5Info();
  468. if (list != null && list.Count > 0)
  469. {
  470. for (int i = rank - 2; i >= 0; i--)
  471. {
  472. if (site == 1)
  473. {
  474. if (ZstUtils.GetJo(list[i].n1) == val)
  475. {
  476. return list[i];
  477. }
  478. }
  479. if (site == 2)
  480. {
  481. if (ZstUtils.GetJo(list[i].n2) == val)
  482. {
  483. return list[i];
  484. }
  485. }
  486. if (site == 3)
  487. {
  488. if (ZstUtils.GetJo(list[i].n3) == val)
  489. {
  490. return list[i];
  491. }
  492. }
  493. if (site == 4)
  494. {
  495. if (ZstUtils.GetJo(list[i].n4) == val)
  496. {
  497. return list[i];
  498. }
  499. }
  500. if (site == 5)
  501. {
  502. if (ZstUtils.GetJo(list[i].n5) == val)
  503. {
  504. return list[i];
  505. }
  506. }
  507. }
  508. }
  509. return info;
  510. }
  511. /// <summary>
  512. /// 上一次奇偶比=val的数据
  513. /// </summary>
  514. /// <param name="val"></param>
  515. /// <param name="rank"></param>
  516. /// <returns></returns>
  517. public static Fchlj22x5Info GetLastJobFchlj22x5Info(ref List<Fchlj22x5Info> list, string val, int rank)
  518. {
  519. Fchlj22x5Info info = new Fchlj22x5Info();
  520. if (list != null && list.Count > 0)
  521. {
  522. for (int i = rank - 2; i >= 0; i--)
  523. {
  524. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  525. if (ZstUtils.GetJob(kjh).Equals(val))
  526. {
  527. return list[i];
  528. }
  529. }
  530. }
  531. return info;
  532. }
  533. /// <summary>
  534. /// 一次奇偶数=val的数据
  535. /// </summary>
  536. /// <param name="val"></param>
  537. /// <param name="rank"></param>
  538. /// <returns></returns>
  539. public static Fchlj22x5Info GetLastJogsFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank, int type)
  540. {
  541. Fchlj22x5Info info = new Fchlj22x5Info();
  542. if (list != null && list.Count > 0)
  543. {
  544. for (int i = rank - 2; i >= 0; i--)
  545. {
  546. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  547. string dxb = ZstUtils.GetJob(kjh);
  548. string[] dxs = dxb.Split(':');
  549. int d = 0;
  550. int x = 0;
  551. if (dxs != null && dxs.Length > 0)
  552. {
  553. d = TypeConverter.ObjectToInt(dxs[0], 0);
  554. x = TypeConverter.ObjectToInt(dxs[1], 0);
  555. }
  556. if (type == 1)
  557. {
  558. if (d == val)
  559. return list[i];
  560. }
  561. if (type == 2)
  562. {
  563. if (x == val)
  564. return list[i];
  565. }
  566. }
  567. }
  568. return info;
  569. }
  570. /// <summary>
  571. /// 一次大个数=val的数据
  572. /// </summary>
  573. /// <param name="val"></param>
  574. /// <param name="rank"></param>
  575. /// <returns></returns>
  576. public static Fchlj22x5Info GetLastDxgsFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank, int type)
  577. {
  578. Fchlj22x5Info info = new Fchlj22x5Info();
  579. if (list != null && list.Count > 0)
  580. {
  581. for (int i = rank - 2; i >= 0; i--)
  582. {
  583. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  584. string dxb = ZstUtils.Get22x5Dxb(kjh);
  585. string[] dxs = dxb.Split(':');
  586. int d = 0;
  587. int x = 0;
  588. if (dxs != null && dxs.Length > 0)
  589. {
  590. d = TypeConverter.ObjectToInt(dxs[0], 0);
  591. x = TypeConverter.ObjectToInt(dxs[1], 0);
  592. }
  593. if (type == 1)
  594. {
  595. if (d == val)
  596. return list[i];
  597. }
  598. if (type == 2)
  599. {
  600. if (x == val)
  601. return list[i];
  602. }
  603. }
  604. }
  605. return info;
  606. }
  607. /// <summary>
  608. /// 黑龙江22x5每一位上一次012路情况的数据
  609. /// </summary>
  610. /// <param name="val"></param>
  611. /// <param name="site"></param>
  612. /// <param name="rank"></param>
  613. /// <returns></returns>
  614. public static Fchlj22x5Info GetLastNum012Fchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int site, int rank)
  615. {
  616. Fchlj22x5Info info = new Fchlj22x5Info();
  617. if (list != null && list.Count > 0)
  618. {
  619. for (int i = rank - 2; i >= 0; i--)
  620. {
  621. if (site == 1)
  622. {
  623. if (ZstUtils.Get012(list[i].n1) == val)
  624. {
  625. return list[i];
  626. }
  627. }
  628. if (site == 2)
  629. {
  630. if (ZstUtils.Get012(list[i].n2) == val)
  631. {
  632. return list[i];
  633. }
  634. }
  635. if (site == 3)
  636. {
  637. if (ZstUtils.Get012(list[i].n3) == val)
  638. {
  639. return list[i];
  640. }
  641. }
  642. if (site == 4)
  643. {
  644. if (ZstUtils.Get012(list[i].n4) == val)
  645. {
  646. return list[i];
  647. }
  648. }
  649. if (site == 5)
  650. {
  651. if (ZstUtils.Get012(list[i].n5) == val)
  652. {
  653. return list[i];
  654. }
  655. }
  656. }
  657. }
  658. return info;
  659. }
  660. /// <summary>
  661. /// 012个数
  662. /// </summary>
  663. /// <param name="val"></param>
  664. /// <param name="rank"></param>
  665. /// <returns></returns>
  666. public static Fchlj22x5Info GetLast012gsFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank, int type)
  667. {
  668. Fchlj22x5Info info = new Fchlj22x5Info();
  669. if (list != null && list.Count > 0)
  670. {
  671. for (int i = rank - 2; i >= 0; i--)
  672. {
  673. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  674. int c1 = ZstUtils.Get012Count(0, kjh);
  675. int c2 = ZstUtils.Get012Count(1, kjh);
  676. int c3 = ZstUtils.Get012Count(2, kjh);
  677. if (type == 0)
  678. {
  679. if (c1 == val)
  680. return list[i];
  681. }
  682. if (type == 1)
  683. {
  684. if (c2 == val)
  685. return list[i];
  686. }
  687. if (type == 2)
  688. {
  689. if (c3 == val)
  690. return list[i];
  691. }
  692. }
  693. }
  694. return info;
  695. }
  696. /// <summary>
  697. /// 黑龙江22选5和值范围上一次的情况
  698. /// </summary>
  699. /// <param name="shz"></param>
  700. /// <param name="ehz"></param>
  701. /// <param name="rank"></param>
  702. /// <returns></returns>
  703. public static Fchlj22x5Info GetLastHzFchlj22x5Info(ref List<Fchlj22x5Info> list, int shz, int ehz, int rank)
  704. {
  705. Fchlj22x5Info info = new Fchlj22x5Info();
  706. if (list != null && list.Count > 0)
  707. {
  708. for (int i = rank - 2; i >= 0; i--)
  709. {
  710. if (list[i].hz >= shz && list[i].hz <= ehz)
  711. {
  712. return list[i];
  713. }
  714. }
  715. }
  716. return info;
  717. }
  718. /// <summary>
  719. /// 和值上一次奇偶的情况
  720. /// </summary>
  721. /// <param name="val"></param>
  722. /// <param name="rank"></param>
  723. /// <returns></returns>
  724. public static Fchlj22x5Info GetLastHzJoFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  725. {
  726. Fchlj22x5Info info = new Fchlj22x5Info();
  727. if (list != null && list.Count > 0)
  728. {
  729. for (int i = rank - 2; i >= 0; i--)
  730. {
  731. if (ZstUtils.GetJo(list[i].hz) == val)
  732. {
  733. return list[i];
  734. }
  735. }
  736. }
  737. return info;
  738. }
  739. /// <summary>
  740. /// 上一次和尾的数据
  741. /// </summary>
  742. /// <param name="val"></param>
  743. /// <param name="rank"></param>
  744. /// <returns></returns>
  745. public static Fchlj22x5Info GetLastHwFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  746. {
  747. Fchlj22x5Info info = new Fchlj22x5Info();
  748. if (list != null && list.Count > 0)
  749. {
  750. for (int i = rank - 2; i >= 0; i--)
  751. {
  752. if (ZstUtils.GetHw(list[i].hz) == val)
  753. {
  754. return list[i];
  755. }
  756. }
  757. }
  758. return info;
  759. }
  760. /// <summary>
  761. /// 上一次和尾大小的数据
  762. /// </summary>
  763. /// <param name="val"></param>
  764. /// <param name="rank"></param>
  765. /// <returns></returns>
  766. public static Fchlj22x5Info GetLastHwDxFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  767. {
  768. Fchlj22x5Info info = new Fchlj22x5Info();
  769. if (list != null && list.Count > 0)
  770. {
  771. for (int i = rank - 2; i >= 0; i--)
  772. {
  773. if (ZstUtils.GetDx(ZstUtils.GetHw(list[i].hz)) == val)
  774. {
  775. return list[i];
  776. }
  777. }
  778. }
  779. return info;
  780. }
  781. /// <summary>
  782. /// 上一次和尾奇偶的情况
  783. /// </summary>
  784. /// <param name="val"></param>
  785. /// <param name="rank"></param>
  786. /// <returns></returns>
  787. public static Fchlj22x5Info GetLastHwJoFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank)
  788. {
  789. Fchlj22x5Info info = new Fchlj22x5Info();
  790. if (list != null && list.Count > 0)
  791. {
  792. for (int i = rank - 2; i >= 0; i--)
  793. {
  794. if (ZstUtils.GetJo(ZstUtils.GetHw(list[i].hz)) == val)
  795. {
  796. return list[i];
  797. }
  798. }
  799. }
  800. return info;
  801. }
  802. /// <summary>
  803. /// 黑龙江22x5每位号的大小情况的上一次数据
  804. /// </summary>
  805. /// <param name="val"></param>
  806. /// <param name="site"></param>
  807. /// <param name="rank"></param>
  808. /// <returns></returns>
  809. public static Fchlj22x5Info GetLastNumDxFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int site, int rank)
  810. {
  811. Fchlj22x5Info info = new Fchlj22x5Info();
  812. if (list != null && list.Count > 0)
  813. {
  814. for (int i = rank - 2; i >= 0; i--)
  815. {
  816. if (site == 1)
  817. {
  818. if (ZstUtils.GetDxBymiddle(list[i].n1, 12) == val)
  819. {
  820. return list[i];
  821. }
  822. }
  823. if (site == 2)
  824. {
  825. if (ZstUtils.GetDxBymiddle(list[i].n2, 12) == val)
  826. {
  827. return list[i];
  828. }
  829. }
  830. if (site == 3)
  831. {
  832. if (ZstUtils.GetDxBymiddle(list[i].n3, 12) == val)
  833. {
  834. return list[i];
  835. }
  836. }
  837. if (site == 4)
  838. {
  839. if (ZstUtils.GetDxBymiddle(list[i].n4, 12) == val)
  840. {
  841. return list[i];
  842. }
  843. }
  844. if (site == 5)
  845. {
  846. if (ZstUtils.GetDxBymiddle(list[i].n5, 12) == val)
  847. {
  848. return list[i];
  849. }
  850. }
  851. }
  852. }
  853. return info;
  854. }
  855. /// <summary>
  856. /// 上一次大小比=val的数据
  857. /// </summary>
  858. /// <param name="val"></param>
  859. /// <param name="rank"></param>
  860. /// <returns></returns>
  861. public static Fchlj22x5Info GetLastDxbFchlj22x5Info(ref List<Fchlj22x5Info> list, string val, int rank)
  862. {
  863. Fchlj22x5Info info = new Fchlj22x5Info();
  864. if (list != null && list.Count > 0)
  865. {
  866. for (int i = rank - 2; i >= 0; i--)
  867. {
  868. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  869. if (ZstUtils.Get22x5Dxb(kjh).Equals(val))
  870. {
  871. return list[i];
  872. }
  873. }
  874. }
  875. return info;
  876. }
  877. /// <summary>
  878. /// 22x5每位号质合的情况
  879. /// </summary>
  880. /// <param name="val"></param>
  881. /// <param name="site"></param>
  882. /// <param name="rank"></param>
  883. /// <returns></returns>
  884. public static Fchlj22x5Info GetLastNumZhFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int site, int rank)
  885. {
  886. Fchlj22x5Info info = new Fchlj22x5Info();
  887. if (list != null && list.Count > 0)
  888. {
  889. for (int i = rank - 2; i >= 0; i--)
  890. {
  891. if (site == 1)
  892. {
  893. if (ZstUtils.GetZh(list[i].n1) == val)
  894. {
  895. return list[i];
  896. }
  897. }
  898. if (site == 2)
  899. {
  900. if (ZstUtils.GetZh(list[i].n2) == val)
  901. {
  902. return list[i];
  903. }
  904. }
  905. if (site == 3)
  906. {
  907. if (ZstUtils.GetZh(list[i].n3) == val)
  908. {
  909. return list[i];
  910. }
  911. }
  912. if (site == 4)
  913. {
  914. if (ZstUtils.GetZh(list[i].n4) == val)
  915. {
  916. return list[i];
  917. }
  918. }
  919. if (site == 5)
  920. {
  921. if (ZstUtils.GetZh(list[i].n5) == val)
  922. {
  923. return list[i];
  924. }
  925. }
  926. }
  927. }
  928. return info;
  929. }
  930. /// <summary>
  931. /// 上一次质合比=val的数据
  932. /// </summary>
  933. /// <param name="val"></param>
  934. /// <param name="rank"></param>
  935. /// <returns></returns>
  936. public static Fchlj22x5Info GetLastZhbFchlj22x5Info(ref List<Fchlj22x5Info> list, string val, int rank)
  937. {
  938. Fchlj22x5Info info = new Fchlj22x5Info();
  939. if (list != null && list.Count > 0)
  940. {
  941. for (int i = rank - 2; i >= 0; i--)
  942. {
  943. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  944. if (ZstUtils.GetZhb(kjh).Equals(val))
  945. {
  946. return list[i];
  947. }
  948. }
  949. }
  950. return info;
  951. }
  952. /// <summary>
  953. /// 上一次质合数=val的数据
  954. /// </summary>
  955. /// <param name="val"></param>
  956. /// <param name="rank"></param>
  957. /// <returns></returns>
  958. public static Fchlj22x5Info GetLastZhgsFchlj22x5Info(ref List<Fchlj22x5Info> list, int val, int rank, int type)
  959. {
  960. Fchlj22x5Info info = new Fchlj22x5Info();
  961. if (list != null && list.Count > 0)
  962. {
  963. for (int i = rank - 2; i >= 0; i--)
  964. {
  965. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5 };
  966. string dxb = ZstUtils.GetZhb(kjh);
  967. string[] dxs = dxb.Split(':');
  968. int d = 0;
  969. int x = 0;
  970. if (dxs != null && dxs.Length > 0)
  971. {
  972. d = TypeConverter.ObjectToInt(dxs[0], 0);
  973. x = TypeConverter.ObjectToInt(dxs[1], 0);
  974. }
  975. if (type == 1)
  976. {
  977. if (d == val)
  978. return list[i];
  979. }
  980. if (type == 2)
  981. {
  982. if (x == val)
  983. return list[i];
  984. }
  985. }
  986. }
  987. return info;
  988. }
  989. #endregion
  990. #region 开奖公告相关方法
  991. /// <summary>
  992. /// 最近30期开奖数据,完整开奖信息,有缓存
  993. /// </summary>
  994. /// <returns></returns>
  995. public static List<Fchlj22x5LongInfo> GetFchlj22x5ListTop30()
  996. {
  997. string key = string.Format(CacheKeys.FCHLJ22X5_KJH_DATA);
  998. List<Fchlj22x5LongInfo> list = cache.GetObject<List<Fchlj22x5LongInfo>>(key) as List<Fchlj22x5LongInfo>;
  999. if (list == null)
  1000. {
  1001. list = Fchlj22x5Data.GetFchlj22x5Top30();
  1002. cache.AddObject(key, list, (int)CacheTime.Kjh);
  1003. }
  1004. return list;
  1005. }
  1006. /// <summary>
  1007. /// 获取最新一期开奖信息,完整开奖信息,有缓存
  1008. /// </summary>
  1009. /// <returns></returns>
  1010. public static Fchlj22x5LongInfo GetFchlj22x5InfoTop1(ref List<Fchlj22x5LongInfo> list)
  1011. {
  1012. Fchlj22x5LongInfo info = new Fchlj22x5LongInfo();
  1013. if (list.Count > 0)
  1014. {
  1015. info = list[0];
  1016. }
  1017. return info;
  1018. }
  1019. /// <summary>
  1020. /// 根据期数返回某期完整开奖信息,无缓存
  1021. /// </summary>
  1022. /// <param name="qi"></param>
  1023. /// <returns></returns>
  1024. public static Fchlj22x5LongInfo GetFchlj22x5InfoByqi(int qi)
  1025. {
  1026. return Fchlj22x5Data.GetFchlj22x5InfoByQi(qi);
  1027. }
  1028. /// <summary>
  1029. /// 返回某年对应的期数列表,有缓存
  1030. /// </summary>
  1031. /// <param name="year"></param>
  1032. /// <returns></returns>
  1033. public static List<int> GetFchlj22x5QiListByYear(int year)
  1034. {
  1035. string key = string.Format(CacheKeys.FCHLJ22X5_KJH_DATA + "/qilistbyyear/{0}", year);
  1036. List<int> list = cache.GetObject<List<int>>(key) as List<int>;
  1037. if (list == null)
  1038. {
  1039. list = Fchlj22x5Data.GetFchlj22x5QiListByYear(year);
  1040. cache.AddObject(key, list, (int)CacheTime.System);
  1041. }
  1042. return list;
  1043. }
  1044. #endregion
  1045. }
  1046. }