Fcdf61.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904
  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. /// 福彩东方+1
  13. /// </summary>
  14. public class Fcdf61
  15. {
  16. /// <summary>
  17. /// 缓存
  18. /// </summary>
  19. static WMCache cache = WMCache.GetCacheService();
  20. /// <summary>
  21. /// cache中的东方6+1所有数据
  22. /// </summary>
  23. /// <returns></returns>
  24. public static List<Fcdf61Info> GetFcdf61List()
  25. {
  26. string key = CacheKeys.FCDF61_DATALIST;
  27. List<Fcdf61Info> list = cache.GetObject<List<Fcdf61Info>>(key) as List<Fcdf61Info>;
  28. if (list == null)
  29. {
  30. list = Fcdf61Data.GetFcdf61List();
  31. cache.AddObject(key, list, (int)CacheTime.Data);
  32. }
  33. return list;
  34. }
  35. /// <summary>
  36. /// 取出开奖数据中最后一期的开奖数据
  37. /// </summary>
  38. /// <returns></returns>
  39. public static Fcdf61Info GetEndFcdf61Info(ref List<Fcdf61Info> list)
  40. {
  41. Fcdf61Info info = new Fcdf61Info();
  42. if (list != null && list.Count > 0)
  43. return list[list.Count - 1];
  44. return info;
  45. }
  46. /// <summary>
  47. /// 取某一期的数据
  48. /// 根据期数值
  49. /// </summary>
  50. /// <param name="qi"></param>
  51. /// <returns></returns>
  52. public static Fcdf61Info GetFcdf61Info(ref List<Fcdf61Info> list,int qi)
  53. {
  54. Fcdf61Info info = new Fcdf61Info();
  55. int size = list.Count;
  56. for (int i = 0; i < size; i++)
  57. {
  58. if (list[i].qi == qi)
  59. {
  60. info = list[i];
  61. break;
  62. }
  63. }
  64. return info;
  65. }
  66. /// <summary>
  67. /// 东方6+1星期x的所有数据列表
  68. /// </summary>
  69. /// <param name="week"></param>
  70. /// <returns></returns>
  71. public static List<Fcdf61Info> GetFcdf61WeekList(ref List<Fcdf61Info> list, int week)
  72. {
  73. List<Fcdf61Info> rlist = new List<Fcdf61Info>();
  74. if (list != null && list.Count > 0)
  75. {
  76. int size = list.Count;
  77. for (int i = 0; i < size; i++)
  78. {
  79. if (list[i].week == week)
  80. rlist.Add(list[i]);
  81. }
  82. }
  83. return rlist;
  84. }
  85. /// <summary>
  86. /// 走势图上的最近xx期数据.
  87. /// </summary>
  88. /// <param name="pagesize">最近n条</param>
  89. /// <param name="year">按年份</param>
  90. /// <param name="sqi">开始期</param>
  91. /// <param name="eqi">结束期</param>
  92. /// <param name="week">星期x</param>
  93. /// <returns></returns>
  94. public static List<Fcdf61Info> GetFcdf61List(ref List<Fcdf61Info> datalist,int pagesize, int year, int sqi, int eqi, int week = 0)
  95. {
  96. List<Fcdf61Info> list = new List<Fcdf61Info>();
  97. ///星期x的条件时
  98. ///数据来源不一样.
  99. if (week > 0)
  100. list = GetFcdf61WeekList(ref datalist,week);
  101. else
  102. {
  103. list = datalist;
  104. }
  105. List<Fcdf61Info> rlist = new List<Fcdf61Info>();
  106. if (list != null && list.Count > 0)
  107. {
  108. int size = list.Count;
  109. if (pagesize > 0)
  110. {
  111. for (int i = (size - pagesize); i < size; i++)
  112. {
  113. rlist.Add(list[i]);
  114. }
  115. return rlist;
  116. }
  117. if (year > 0)
  118. {
  119. rlist.Clear();
  120. for (int i = 0; i < size; i++)
  121. {
  122. if (TypeConverter.StrToInt(list[i].qi.ToString().Substring(0, 4), 0) == year)
  123. rlist.Add(list[i]);
  124. }
  125. return rlist;
  126. }
  127. if (sqi > 0 && eqi > 0)
  128. {
  129. rlist.Clear();
  130. int srank = GetFcdf61Info(ref list,sqi).rank;
  131. int erank = GetFcdf61Info(ref list,eqi).rank;
  132. if (erank != 0 && srank != 0 && erank > srank)
  133. {
  134. for (int i = srank - 1; i < erank && i < size; i++)
  135. {
  136. rlist.Add(list[i]);
  137. }
  138. }
  139. return rlist;
  140. }
  141. if (pagesize == 0 && year == 0 && eqi == 0 && sqi == 0 && week == 0)
  142. return list;
  143. }
  144. return rlist;
  145. }
  146. /// <summary>
  147. /// 上一次和值val的数据
  148. /// </summary>
  149. /// <param name="val"></param>
  150. /// <param name="rank"></param>
  151. /// <returns></returns>
  152. public static Fcdf61Info GetLastHzFcdf61Info(ref List<Fcdf61Info> list, int shz, int ehz, int rank)
  153. {
  154. Fcdf61Info info = new Fcdf61Info();
  155. if (list != null && list.Count > 0)
  156. {
  157. for (int i = rank - 2; i >= 0; i--)
  158. {
  159. if (list[i].hz >= shz && list[i].hz <= ehz)
  160. {
  161. info = list[i];
  162. return info;
  163. }
  164. }
  165. }
  166. return info;
  167. }
  168. /// <summary>
  169. /// 上一次和值奇偶形态的数据
  170. /// </summary>
  171. /// <param name="xt"></param>
  172. /// <param name="rank"></param>
  173. /// <returns></returns>
  174. public static Fcdf61Info GetLastHzJoFcdf61Info(ref List<Fcdf61Info> list,int xt, int rank)
  175. {
  176. Fcdf61Info info = new Fcdf61Info();
  177. if (list != null && list.Count > 0)
  178. {
  179. for (int i = rank - 2; i >= 0; i--)
  180. {
  181. if (xt == 0)
  182. {
  183. if (list[i].hz % 2 != 0)
  184. {
  185. info = list[i];
  186. return info;
  187. }
  188. }
  189. if (xt == 1)
  190. {
  191. if (list[i].hz % 2 == 0)
  192. {
  193. info = list[i];
  194. return info;
  195. }
  196. }
  197. }
  198. }
  199. return info;
  200. }
  201. #region 奇偶形态的上一次数据
  202. /// <summary>
  203. /// 开奖号某位上的上一次奇偶数据..
  204. /// </summary>
  205. /// <param name="val"></param>
  206. /// <param name="rank"></param>
  207. /// <param name="site"></param>
  208. /// <returns></returns>
  209. public static Fcdf61Info GetLastNjoInfo(ref List<Fcdf61Info> list,int jo, int rank, int site)
  210. {
  211. Fcdf61Info info = new Fcdf61Info();
  212. int size = list.Count;
  213. for (int i = rank - 2; i >= 0; i--)
  214. {
  215. if (site == 1)
  216. {
  217. if (ZstUtils.GetJo(list[i].n1) == jo)
  218. {
  219. info = list[i];
  220. return info;
  221. }
  222. }
  223. if (site == 2)
  224. {
  225. if (ZstUtils.GetJo(list[i].n2) == jo)
  226. {
  227. info = list[i];
  228. return info;
  229. }
  230. }
  231. if (site == 3)
  232. {
  233. if (ZstUtils.GetJo(list[i].n3) == jo)
  234. {
  235. info = list[i];
  236. return info;
  237. }
  238. }
  239. if (site == 4)
  240. {
  241. if (ZstUtils.GetJo(list[i].n4) == jo)
  242. {
  243. info = list[i];
  244. return info;
  245. }
  246. }
  247. if (site == 5)
  248. {
  249. if (ZstUtils.GetJo(list[i].n5) == jo)
  250. {
  251. info = list[i];
  252. return info;
  253. }
  254. }
  255. if (site == 6)
  256. {
  257. if (ZstUtils.GetJo(list[i].n6) == jo)
  258. {
  259. info = list[i];
  260. return info;
  261. }
  262. }
  263. }
  264. return info;
  265. }
  266. /// <summary>
  267. /// 上一次奇偶比的情况
  268. /// </summary>
  269. /// <param name="bz"></param>
  270. /// <param name="rank"></param>
  271. /// <returns></returns>
  272. public static Fcdf61Info GetLastJobInfo(ref List<Fcdf61Info> list,string bz, int rank)
  273. {
  274. Fcdf61Info info = new Fcdf61Info();
  275. int size = list.Count;
  276. for (int i = rank - 2; i >= 0; i--)
  277. {
  278. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6 };
  279. if (ZstUtils.GetJob(kjh).Equals(bz))
  280. {
  281. info = list[i];
  282. return info;
  283. }
  284. }
  285. return info;
  286. }
  287. #endregion
  288. #region 上一次最大最小奇数偶数值情况
  289. /// <summary>
  290. /// 上一次最大奇数值=val的数据
  291. /// </summary>
  292. /// <param name="val"></param>
  293. /// <param name="rank"></param>
  294. /// <returns></returns>
  295. public static Fcdf61Info GetLastMaxJsInfo(ref List<Fcdf61Info> list,int val, int rank)
  296. {
  297. Fcdf61Info info = new Fcdf61Info();
  298. int size = list.Count;
  299. for (int i = rank - 2; i >= 0; i--)
  300. {
  301. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6 };
  302. if (ZstUtils.GetMaxJs(kjh) == val)
  303. {
  304. info = list[i];
  305. return info;
  306. }
  307. }
  308. return info;
  309. }
  310. /// <summary>
  311. /// 上一次最小奇数值=val的数据
  312. /// </summary>
  313. /// <param name="val"></param>
  314. /// <param name="rank"></param>
  315. /// <returns></returns>
  316. public static Fcdf61Info GetLastMinJsInfo(ref List<Fcdf61Info> list, int val, int rank)
  317. {
  318. Fcdf61Info info = new Fcdf61Info();
  319. int size = list.Count;
  320. for (int i = rank - 2; i >= 0; i--)
  321. {
  322. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5,list[i].n6 };
  323. if (ZstUtils.GetMinJs(kjh) == val)
  324. {
  325. info = list[i];
  326. return info;
  327. }
  328. }
  329. return info;
  330. }
  331. /// <summary>
  332. /// 上一次最大偶数值=val的p5数据
  333. /// </summary>
  334. /// <param name="val"></param>
  335. /// <param name="rank"></param>
  336. /// <returns></returns>
  337. public static Fcdf61Info GetLastMaxOsInfo(ref List<Fcdf61Info> list, int val, int rank)
  338. {
  339. Fcdf61Info info = new Fcdf61Info();
  340. int size = list.Count;
  341. for (int i = rank - 2; i >= 0; i--)
  342. {
  343. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6 };
  344. if (ZstUtils.GetMaxOs(kjh) == val)
  345. {
  346. info = list[i];
  347. return info;
  348. }
  349. }
  350. return info;
  351. }
  352. /// <summary>
  353. /// 上一次最小奇数值=val的p5数据
  354. /// </summary>
  355. /// <param name="val"></param>
  356. /// <param name="rank"></param>
  357. /// <returns></returns>
  358. public static Fcdf61Info GetLastMinOsInfo(ref List<Fcdf61Info> list, int val, int rank)
  359. {
  360. Fcdf61Info info = new Fcdf61Info();
  361. int size = list.Count;
  362. for (int i = rank - 2; i >= 0; i--)
  363. {
  364. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6 };
  365. if (ZstUtils.GetMinOs(kjh) == val)
  366. {
  367. info = list[i];
  368. return info;
  369. }
  370. }
  371. return info;
  372. }
  373. #endregion
  374. /// <summary>
  375. /// 上一次和值大小形态的数据
  376. /// </summary>
  377. /// <param name="xt"></param>
  378. /// <param name="rank"></param>
  379. /// <returns></returns>
  380. public static Fcdf61Info GetLastHzDxFcdf61Info(ref List<Fcdf61Info> list, int xt, int rank)
  381. {
  382. Fcdf61Info info = new Fcdf61Info();
  383. if (list != null && list.Count > 0)
  384. {
  385. for (int i = rank - 2; i >= 0; i--)
  386. {
  387. if (xt == 0)
  388. {
  389. if (list[i].hz>=27)
  390. {
  391. info = list[i];
  392. return info;
  393. }
  394. }
  395. if (xt == 1)
  396. {
  397. if (list[i].hz <27)
  398. {
  399. info = list[i];
  400. return info;
  401. }
  402. }
  403. }
  404. }
  405. return info;
  406. }
  407. /// <summary>
  408. /// 上一次和值012形态的数据
  409. /// </summary>
  410. /// <param name="xt"></param>
  411. /// <param name="rank"></param>
  412. /// <returns></returns>
  413. public static Fcdf61Info GetLastHz012Fcdf61Info(ref List<Fcdf61Info> list, int xt, int rank)
  414. {
  415. Fcdf61Info info = new Fcdf61Info();
  416. if (list != null && list.Count > 0)
  417. {
  418. for (int i = rank - 2; i >= 0; i--)
  419. {
  420. if (xt == 0)
  421. {
  422. if (list[i].hz % 3 == 0)
  423. {
  424. info = list[i];
  425. return info;
  426. }
  427. }
  428. if (xt == 1)
  429. {
  430. if (list[i].hz % 3 == 1)
  431. {
  432. info = list[i];
  433. return info;
  434. }
  435. }
  436. if (xt == 2)
  437. {
  438. if (list[i].hz % 3 == 2)
  439. {
  440. info = list[i];
  441. return info;
  442. }
  443. }
  444. }
  445. }
  446. return info;
  447. }
  448. /// <summary>
  449. /// 上一次出号大小形态的数据
  450. /// </summary>
  451. /// <param name="xt"></param>
  452. /// <param name="rank"></param>
  453. /// <returns></returns>
  454. public static Fcdf61Info GetLastNumDxFcdf61Info(ref List<Fcdf61Info> list, int n,int xt, int rank)
  455. {
  456. Fcdf61Info info = new Fcdf61Info();
  457. if (list != null && list.Count > 0)
  458. {
  459. for (int i = rank - 2; i >= 0; i--)
  460. {
  461. //第一位
  462. if (n == 1)
  463. {
  464. if (xt == 0)
  465. {
  466. if (list[i].n1 >= 5)
  467. {
  468. info = list[i];
  469. return info;
  470. }
  471. }
  472. if (xt == 1)
  473. {
  474. if (list[i].n1 < 5)
  475. {
  476. info = list[i];
  477. return info;
  478. }
  479. }
  480. }
  481. //第二位
  482. if (n == 2)
  483. {
  484. if (xt == 0)
  485. {
  486. if (list[i].n2 >= 5)
  487. {
  488. info = list[i];
  489. return info;
  490. }
  491. }
  492. if (xt == 1)
  493. {
  494. if (list[i].n2 < 5)
  495. {
  496. info = list[i];
  497. return info;
  498. }
  499. }
  500. }
  501. //第三位
  502. if (n == 3)
  503. {
  504. if (xt == 0)
  505. {
  506. if (list[i].n3 >= 5)
  507. {
  508. info = list[i];
  509. return info;
  510. }
  511. }
  512. if (xt == 1)
  513. {
  514. if (list[i].n3 < 5)
  515. {
  516. info = list[i];
  517. return info;
  518. }
  519. }
  520. }
  521. //第四位
  522. if (n == 4)
  523. {
  524. if (xt == 0)
  525. {
  526. if (list[i].n4 >= 5)
  527. {
  528. info = list[i];
  529. return info;
  530. }
  531. }
  532. if (xt == 1)
  533. {
  534. if (list[i].n4 < 5)
  535. {
  536. info = list[i];
  537. return info;
  538. }
  539. }
  540. }
  541. //第五位
  542. if (n == 5)
  543. {
  544. if (xt == 0)
  545. {
  546. if (list[i].n5 >= 5)
  547. {
  548. info = list[i];
  549. return info;
  550. }
  551. }
  552. if (xt == 1)
  553. {
  554. if (list[i].n5 < 5)
  555. {
  556. info = list[i];
  557. return info;
  558. }
  559. }
  560. }
  561. //第六位
  562. if (n == 6)
  563. {
  564. if (xt == 0)
  565. {
  566. if (list[i].n6 >= 5)
  567. {
  568. info = list[i];
  569. return info;
  570. }
  571. }
  572. if (xt == 1)
  573. {
  574. if (list[i].n6 < 5)
  575. {
  576. info = list[i];
  577. return info;
  578. }
  579. }
  580. }
  581. }
  582. }
  583. return info;
  584. }
  585. /// <summary>
  586. /// 开奖号码大小比的上一次数据
  587. /// </summary>
  588. /// <param name="bz"></param>
  589. /// <param name="rank"></param>
  590. /// <returns></returns>
  591. public static Fcdf61Info GetLastDxbDf61Info(ref List<Fcdf61Info> list, string bz, int rank)
  592. {
  593. Fcdf61Info info = new Fcdf61Info();
  594. int size = list.Count;
  595. for (int i = rank - 2; i >= 0; i--)
  596. {
  597. List<int> kjh = new List<int> { list[i].n1, list[i].n2, list[i].n3, list[i].n4, list[i].n5, list[i].n6 };
  598. if (ZstUtils.GetDf61Dxb(kjh).Equals(bz))
  599. {
  600. info = list[i];
  601. return info;
  602. }
  603. }
  604. return info;
  605. }
  606. /// <summary>
  607. /// 上一次跨度val的数据
  608. /// </summary>
  609. /// <param name="val"></param>
  610. /// <param name="rank"></param>
  611. /// <returns></returns>
  612. public static Fcdf61Info GetLastkdFcdf61Info(ref List<Fcdf61Info> list, int val, int rank)
  613. {
  614. Fcdf61Info info = new Fcdf61Info();
  615. if (list != null && list.Count > 0)
  616. {
  617. for (int i = rank - 2; i >= 0; i--)
  618. {
  619. if (list[i].kd == val)
  620. {
  621. info = list[i];
  622. return info;
  623. }
  624. }
  625. }
  626. return info;
  627. }
  628. /// <summary>
  629. /// 上一其和尾val的数据
  630. /// </summary>
  631. /// <param name="val"></param>
  632. /// <param name="rank"></param>
  633. /// <returns></returns>
  634. public static Fcdf61Info GetLastHwFcdf61Info(ref List<Fcdf61Info> list, int val, int rank)
  635. {
  636. Fcdf61Info info = new Fcdf61Info();
  637. if (list != null && list.Count > 0)
  638. {
  639. for (int i = rank - 2; i >= 0; i--)
  640. {
  641. if (ZstUtils.GetHw(list[i].hz) == val)
  642. {
  643. info = list[i];
  644. return info;
  645. }
  646. }
  647. }
  648. return info;
  649. }
  650. /// <summary>
  651. /// 返回同号个数
  652. /// </summary>
  653. /// <param name="kjh"></param>
  654. /// <param name="n"></param>
  655. /// <returns></returns>
  656. public static int GetDf61KjhThNum(List<int> kjh,int n)
  657. {
  658. int g = 0;
  659. for (int i = 0; i < kjh.Count; i++)
  660. {
  661. if (kjh[i] == n)
  662. g++;
  663. }
  664. return g;
  665. }
  666. #region 上一次数据
  667. /// <summary>
  668. /// 根据当前出号和排名,查询出上一次出此号时的数据
  669. /// 主要用在算遗漏时
  670. /// </summary>
  671. /// <param name="val">值</param>
  672. /// <param name="rank">当前排名</param>
  673. /// <param name="type">类型 1=第1位;2=第2位;3=第3位;4=第4位;5=第5位;6=第6位; 0=组选</param>
  674. /// <returns></returns>
  675. public static Fcdf61Info GetLastFcdf61Info(ref List<Fcdf61Info> list, int val, int rank, int type)
  676. {
  677. Fcdf61Info info = new Fcdf61Info();
  678. int size = list.Count;
  679. ///升序的情况
  680. ///未实现走势图倒序的情况..
  681. for (int i = rank - 2; i >= 0; i--)
  682. {
  683. if (type == 1)
  684. {
  685. if (list[i].n1 == val)
  686. {
  687. info = list[i];
  688. return info;
  689. }
  690. }
  691. if (type == 2)
  692. {
  693. if (list[i].n2 == val)
  694. {
  695. info = list[i];
  696. return info;
  697. }
  698. }
  699. if (type == 3)
  700. {
  701. if (list[i].n3 == val)
  702. {
  703. info = list[i];
  704. return info;
  705. }
  706. }
  707. if (type == 4)
  708. {
  709. if (list[i].n4 == val)
  710. {
  711. info = list[i];
  712. return info;
  713. }
  714. }
  715. if (type == 5)
  716. {
  717. if (list[i].n5 == val)
  718. {
  719. info = list[i];
  720. return info;
  721. }
  722. }
  723. if (type == 6)
  724. {
  725. if (list[i].n6 == val)
  726. {
  727. info = list[i];
  728. return info;
  729. }
  730. }
  731. //组选
  732. if (type == 0)
  733. {
  734. if (list[i].n1 == val || list[i].n2 == val || list[i].n3 == val || list[i].n4 == val || list[i].n5 == val || list[i].n6 == val)
  735. {
  736. info = list[i];
  737. return info;
  738. }
  739. }
  740. }
  741. return info;
  742. }
  743. /// <summary>
  744. /// 取出个排名的上一次数据
  745. /// </summary>
  746. /// <param name="rank"></param>
  747. /// <returns></returns>
  748. public static Fcdf61Info GetLastFcdf61Info(ref List<Fcdf61Info> list, int rank)
  749. {
  750. Fcdf61Info info = new Fcdf61Info();
  751. if (list != null && list.Count > 0)
  752. {
  753. for (int i = rank - 2; i >= 0; i--)
  754. {
  755. if (list[i].rank == rank - 1)
  756. {
  757. info = list[i];
  758. return info;
  759. }
  760. }
  761. }
  762. return info;
  763. }
  764. /// <summary>
  765. /// 取出个排名的下一次数据, 用于开奖公告
  766. /// </summary>
  767. /// <param name="rank"></param>
  768. /// <returns></returns>
  769. public static Fcdf61Info GetNextFcdf61Info(ref List<Fcdf61Info> list, int rank)
  770. {
  771. Fcdf61Info info = new Fcdf61Info();
  772. if (list != null && list.Count > 0)
  773. {
  774. for (int i = rank - 1; i<list.Count; i++)
  775. {
  776. if (list[i].rank == rank + 1)
  777. {
  778. info = list[i];
  779. return info;
  780. }
  781. }
  782. }
  783. return info;
  784. }
  785. #endregion
  786. #region 开奖公告相关方法
  787. /// <summary>
  788. /// 最近30期开奖数据,完整开奖信息,有缓存
  789. /// </summary>
  790. /// <returns></returns>
  791. public static List<Fcdf61LongInfo> GetFcdf61ListTop30()
  792. {
  793. string key = string.Format(CacheKeys.FCDF61_KJH_DATA);
  794. List<Fcdf61LongInfo> list = cache.GetObject<List<Fcdf61LongInfo>>(key) as List<Fcdf61LongInfo>;
  795. if (list == null)
  796. {
  797. list = Fcdf61Data.GetFcdf61Top30();
  798. cache.AddObject(key, list, (int)CacheTime.Kjh);
  799. }
  800. return list;
  801. }
  802. /// <summary>
  803. /// 获取最新一期开奖信息,完整开奖信息,有缓存
  804. /// </summary>
  805. /// <returns></returns>
  806. public static Fcdf61LongInfo GetFcdf61InfoTop1(ref List<Fcdf61LongInfo> list)
  807. {
  808. Fcdf61LongInfo info = new Fcdf61LongInfo();
  809. if (list.Count > 0)
  810. {
  811. info = list[0];
  812. }
  813. return info;
  814. }
  815. /// <summary>
  816. /// 根据期数返回某期完整开奖信息,无缓存
  817. /// </summary>
  818. /// <param name="qi"></param>
  819. /// <returns></returns>
  820. public static Fcdf61LongInfo GetFcdf61InfoByqi(int qi)
  821. {
  822. return Fcdf61Data.GetFcdf61InfoByQi(qi);
  823. }
  824. /// <summary>
  825. /// 返回某年对应的期数列表,有缓存
  826. /// </summary>
  827. /// <param name="year"></param>
  828. /// <returns></returns>
  829. public static List<int> GetFcdf61QiListByYear(int year)
  830. {
  831. string key = string.Format(CacheKeys.FCDF61_KJH_DATA + "/qilistbyyear/{0}", year);
  832. List<int> list = cache.GetObject<List<int>>(key) as List<int>;
  833. if (list == null)
  834. {
  835. list = Fcdf61Data.GetFcdf61QiListByYear(year);
  836. cache.AddObject(key, list, (int)CacheTime.System);
  837. }
  838. return list;
  839. }
  840. #endregion
  841. }
  842. }