Fchebei20x5.cs 40 KB

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