Fchljp62.cs 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495
  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 Fchljp62
  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<Fchljp62Info> GetFchljp62List()
  22. {
  23. string key = string.Format(CacheKeys.FCHLJP62_DATALIST);
  24. List<Fchljp62Info> list = cache.GetObject<List<Fchljp62Info>>(key) as List<Fchljp62Info>;
  25. if (list == null)
  26. {
  27. list = Fchljp62Data.GetFchljp62List();
  28. cache.AddObject(key, list, (int)CacheTime.Data);
  29. }
  30. return list;
  31. }
  32. /// <summary>
  33. /// 取出开奖数据中最后一期的开奖数据
  34. /// </summary>
  35. /// <returns></returns>
  36. public static Fchljp62Info GetEndFchljp62Info(ref List<Fchljp62Info> list)
  37. {
  38. Fchljp62Info info = new Fchljp62Info();
  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<Fchljp62Info> GetFchljp62List(ref List<Fchljp62Info> list, int pagesize, int year, int sqi, int eqi, int week = 0, int ds = 0)
  54. {
  55. List<Fchljp62Info> rlist = new List<Fchljp62Info>();
  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<Fchljp62Info> temp = new List<Fchljp62Info>();
  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<Fchljp62Info> temp = new List<Fchljp62Info>();
  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 = GetFchljp62Info(ref list,sqi).rank;
  117. int erank = GetFchljp62Info(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<Fchljp62Info> GetMissFchljp62List(ref List<Fchljp62Info> list, int eqi)
  137. {
  138. List<Fchljp62Info> rlist = new List<Fchljp62Info>();
  139. if (eqi > 0)
  140. {
  141. int size = list.Count;
  142. int erank = GetFchljp62Info(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 Fchljp62Info GetFchljp62Info(ref List<Fchljp62Info> list, int qi)
  170. {
  171. Fchljp62Info info = new Fchljp62Info();
  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 Fchljp62Info GetLastQiFchljp62Info(ref List<Fchljp62Info> list, int rank)
  189. {
  190. Fchljp62Info info = new Fchljp62Info();
  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 Fchljp62Info GetNextQiFchljp62Info(ref List<Fchljp62Info> list, int rank)
  208. {
  209. Fchljp62Info info = new Fchljp62Info();
  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 Fchljp62Info GetLastFchljp62Info(ref List<Fchljp62Info> list, int val, int rank, int type)
  230. {
  231. Fchljp62Info info = new Fchljp62Info();
  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 Fchljp62Info GetLastHzJoFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  289. {
  290. Fchljp62Info info = new Fchljp62Info();
  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 Fchljp62Info GetLastHzDxFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  316. {
  317. Fchljp62Info info = new Fchljp62Info();
  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="val"></param>
  330. /// <param name="rank"></param>
  331. /// <returns></returns>
  332. public static Fchljp62Info GetLastHwFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  333. {
  334. Fchljp62Info info = new Fchljp62Info();
  335. int size = list.Count;
  336. for (int i = rank - 2; i >= 0; i--)
  337. {
  338. if (ZstUtils.GetHw(list[i].hz) == val)
  339. {
  340. info = list[i];
  341. return info;
  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 Fchljp62Info GetLastHwDxFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  353. {
  354. Fchljp62Info info = new Fchljp62Info();
  355. int size = list.Count;
  356. for (int i = rank - 2; i >= 0; i--)
  357. {
  358. int hw = ZstUtils.GetHw(list[i].hz);
  359. if (ZstUtils.GetDx(hw) == val)
  360. {
  361. info = list[i];
  362. return info;
  363. }
  364. }
  365. return info;
  366. }
  367. /// <summary>
  368. /// 和尾奇偶
  369. /// </summary>
  370. /// <param name="val"></param>
  371. /// <param name="rank"></param>
  372. /// <returns></returns>
  373. public static Fchljp62Info GetLastHwJoFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  374. {
  375. Fchljp62Info info = new Fchljp62Info();
  376. int size = list.Count;
  377. for (int i = rank - 2; i >= 0; i--)
  378. {
  379. int hw = ZstUtils.GetHw(list[i].hz);
  380. if (ZstUtils.GetJo(hw) == val)
  381. {
  382. info = list[i];
  383. return info;
  384. }
  385. }
  386. return info;
  387. }
  388. /// <summary>
  389. /// 和尾质合
  390. /// </summary>
  391. /// <param name="val"></param>
  392. /// <param name="rank"></param>
  393. /// <returns></returns>
  394. public static Fchljp62Info GetLastHwZhFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  395. {
  396. Fchljp62Info info = new Fchljp62Info();
  397. int size = list.Count;
  398. for (int i = rank - 2; i >= 0; i--)
  399. {
  400. int hw = ZstUtils.GetHw(list[i].hz);
  401. if (ZstUtils.GetZh(hw) == val)
  402. {
  403. info = list[i];
  404. return info;
  405. }
  406. }
  407. return info;
  408. }
  409. /// <summary>
  410. /// 和值质合
  411. /// </summary>
  412. /// <param name="val"></param>
  413. /// <param name="rank"></param>
  414. /// <returns></returns>
  415. public static Fchljp62Info GetLastHzZhFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  416. {
  417. Fchljp62Info info = new Fchljp62Info();
  418. int size = list.Count;
  419. for (int i = rank - 2; i >= 0; i--)
  420. {
  421. if (ZstUtils.GetZh(list[i].hz) == val)
  422. {
  423. info = list[i];
  424. return info;
  425. }
  426. }
  427. return info;
  428. }
  429. /// <summary>
  430. /// 上一次和尾012路的情况
  431. /// </summary>
  432. /// <param name="val"></param>
  433. /// <param name="rank"></param>
  434. /// <returns></returns>
  435. public static Fchljp62Info GetLastHw012Fchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  436. {
  437. Fchljp62Info info = new Fchljp62Info();
  438. int size = list.Count;
  439. for (int i = rank - 2; i >= 0; i--)
  440. {
  441. int hw = ZstUtils.GetHw(list[i].hz);
  442. if (ZstUtils.Get012(hw) == val)
  443. {
  444. info = list[i];
  445. return info;
  446. }
  447. }
  448. return info;
  449. }
  450. /// <summary>
  451. /// 上一次和值012路的情况
  452. /// </summary>
  453. /// <param name="val"></param>
  454. /// <param name="rank"></param>
  455. /// <returns></returns>
  456. public static Fchljp62Info GetLastHz012Fchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  457. {
  458. Fchljp62Info info = new Fchljp62Info();
  459. int size = list.Count;
  460. for (int i = rank - 2; i >= 0; i--)
  461. {
  462. if (ZstUtils.Get012(list[i].hz) == val)
  463. {
  464. info = list[i];
  465. return info;
  466. }
  467. }
  468. return info;
  469. }
  470. /// <summary>
  471. /// 上一次跨度=n的数据
  472. /// </summary>
  473. /// <param name="val"></param>
  474. /// <param name="rank"></param>
  475. /// <returns></returns>
  476. public static Fchljp62Info GetLastKdFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  477. {
  478. Fchljp62Info info = new Fchljp62Info();
  479. int size = list.Count;
  480. for (int i = rank - 2; i >= 0; i--)
  481. {
  482. if (list[i].kd == val)
  483. {
  484. info = list[i];
  485. return info;
  486. }
  487. }
  488. return info;
  489. }
  490. /// <summary>
  491. /// 跨度大小
  492. /// </summary>
  493. /// <param name="val"></param>
  494. /// <param name="rank"></param>
  495. /// <returns></returns>
  496. public static Fchljp62Info GetLastKdDxFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  497. {
  498. Fchljp62Info info = new Fchljp62Info();
  499. int size = list.Count;
  500. for (int i = rank - 2; i >= 0; i--)
  501. {
  502. if (ZstUtils.GetDx(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 Fchljp62Info GetLastKdJoFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  517. {
  518. Fchljp62Info info = new Fchljp62Info();
  519. int size = list.Count;
  520. for (int i = rank - 2; i >= 0; i--)
  521. {
  522. if (ZstUtils.GetJo(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 Fchljp62Info GetLastKdZhFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  537. {
  538. Fchljp62Info info = new Fchljp62Info();
  539. int size = list.Count;
  540. for (int i = rank - 2; i >= 0; i--)
  541. {
  542. if (ZstUtils.GetZh(list[i].kd) == val)
  543. {
  544. info = list[i];
  545. return info;
  546. }
  547. }
  548. return info;
  549. }
  550. /// <summary>
  551. /// 上一次跨度012路的情况
  552. /// </summary>
  553. /// <param name="val"></param>
  554. /// <param name="rank"></param>
  555. /// <returns></returns>
  556. public static Fchljp62Info GetLastKd012Fchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  557. {
  558. Fchljp62Info info = new Fchljp62Info();
  559. int size = list.Count;
  560. for (int i = rank - 2; i >= 0; i--)
  561. {
  562. if (ZstUtils.Get012(list[i].kd) == val)
  563. {
  564. info = list[i];
  565. return info;
  566. }
  567. }
  568. return info;
  569. }
  570. /// <summary>
  571. /// 上一次跨度振幅的数据
  572. /// </summary>
  573. /// <param name="val"></param>
  574. /// <param name="rank"></param>
  575. /// <returns></returns>
  576. public static Fchljp62Info GetLastKdZfFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  577. {
  578. Fchljp62Info info = new Fchljp62Info();
  579. int size = list.Count;
  580. for (int i = rank - 2; i >= 0; i--)
  581. {
  582. if (i > 0)
  583. {
  584. if (Math.Abs(list[i].kd - list[i - 1].kd) == val)
  585. {
  586. info = list[i];
  587. return info;
  588. }
  589. }
  590. }
  591. return info;
  592. }
  593. /// <summary>
  594. /// 上一次和值的数据
  595. /// </summary>
  596. /// <param name="val"></param>
  597. /// <param name="rank"></param>
  598. /// <returns></returns>
  599. public static Fchljp62Info GetLastHzFchljp62Info(ref List<Fchljp62Info> list, int val, int rank)
  600. {
  601. Fchljp62Info info = new Fchljp62Info();
  602. int size = list.Count;
  603. for (int i = rank - 2; i >= 0; i--)
  604. {
  605. if (val < 21 && list[i].hz < 21)
  606. {
  607. info = list[i];
  608. return info;
  609. }
  610. if (val > 38 && list[i].hz > 38)
  611. {
  612. info = list[i];
  613. return info;
  614. }
  615. if (list[i].hz == val)
  616. {
  617. info = list[i];
  618. return info;
  619. }
  620. }
  621. return info;
  622. }
  623. /// <summary>
  624. /// 上一次某位号码重号的数据
  625. /// </summary>
  626. /// <returns></returns>
  627. public static Fchljp62Info GetLastNChFchljp62Info(ref List<Fchljp62Info> list, int rank, int type)
  628. {
  629. Fchljp62Info info = new Fchljp62Info();
  630. int size = list.Count;
  631. for (int i = rank - 2; i >= 0; i--)
  632. {
  633. if (type == 0)
  634. {
  635. if (i > 0)
  636. {
  637. if ((list[i].n1 - list[i - 1].n1) == 0)
  638. return list[i];
  639. }
  640. }
  641. if (type == 1)
  642. {
  643. if (i > 0)
  644. {
  645. if ((list[i].n2 - list[i - 1].n2) == 0)
  646. return list[i];
  647. }
  648. }
  649. if (type == 2)
  650. {
  651. if (i > 0)
  652. {
  653. if ((list[i].n3 - list[i - 1].n3) == 0)
  654. return list[i];
  655. }
  656. }
  657. if (type == 3)
  658. {
  659. if (i > 0)
  660. {
  661. if ((list[i].n4 - list[i - 1].n4) == 0)
  662. return list[i];
  663. }
  664. }
  665. if (type == 4)
  666. {
  667. if (i > 0)
  668. {
  669. if ((list[i].n5 - list[i - 1].n5) == 0)
  670. return list[i];
  671. }
  672. }
  673. if (type == 5)
  674. {
  675. if (i > 0)
  676. {
  677. if ((list[i].n6 - list[i - 1].n6) == 0)
  678. return list[i];
  679. }
  680. }
  681. if (type == 6)
  682. {
  683. if (i > 0)
  684. {
  685. if ((list[i].n7 - list[i - 1].n7) == 0)
  686. return list[i];
  687. }
  688. }
  689. }
  690. return info;
  691. }
  692. /// <summary>
  693. /// 非重号的数据
  694. /// </summary>
  695. /// <param name="rank"></param>
  696. /// <param name="type"></param>
  697. /// <returns></returns>
  698. public static Fchljp62Info GetLastNNotChFchljp62Info(ref List<Fchljp62Info> list, int rank, int type)
  699. {
  700. Fchljp62Info info = new Fchljp62Info();
  701. int size = list.Count;
  702. for (int i = rank - 2; i >= 0; i--)
  703. {
  704. if (type == 0)
  705. {
  706. if (i > 0)
  707. {
  708. if ((list[i].n1 - list[i - 1].n1) != 0)
  709. return list[i];
  710. }
  711. }
  712. if (type == 1)
  713. {
  714. if (i > 0)
  715. {
  716. if ((list[i].n2 - list[i - 1].n2) != 0)
  717. return list[i];
  718. }
  719. }
  720. if (type == 2)
  721. {
  722. if (i > 0)
  723. {
  724. if ((list[i].n3 - list[i - 1].n3) != 0)
  725. return list[i];
  726. }
  727. }
  728. if (type == 3)
  729. {
  730. if (i > 0)
  731. {
  732. if ((list[i].n4 - list[i - 1].n4) != 0)
  733. return list[i];
  734. }
  735. }
  736. if (type == 4)
  737. {
  738. if (i > 0)
  739. {
  740. if ((list[i].n5 - list[i - 1].n5) != 0)
  741. return list[i];
  742. }
  743. }
  744. if (type == 5)
  745. {
  746. if (i > 0)
  747. {
  748. if ((list[i].n6 - list[i - 1].n6) != 0)
  749. return list[i];
  750. }
  751. }
  752. if (type == 6)
  753. {
  754. if (i > 0)
  755. {
  756. if ((list[i].n7 - list[i - 1].n7) != 0)
  757. return list[i];
  758. }
  759. }
  760. }
  761. return info;
  762. }
  763. #region 上一次某个号码的大小情况
  764. /// <summary>
  765. /// 上一次某个号码大小的情况
  766. /// </summary>
  767. /// <param name="dx"></param>
  768. /// <param name="rank"></param>
  769. /// <param name="site"></param>
  770. /// <returns></returns>
  771. public static Fchljp62Info GetLastNdxInfo(ref List<Fchljp62Info> list, int dx, int rank, int site)
  772. {
  773. Fchljp62Info info = new Fchljp62Info();
  774. int size = list.Count;
  775. for (int i = rank - 2; i >= 0; i--)
  776. {
  777. if (site == 0)
  778. {
  779. if (ZstUtils.GetDx(list[i].n1) == dx)
  780. {
  781. info = list[i];
  782. return info;
  783. }
  784. }
  785. if (site == 1)
  786. {
  787. if (ZstUtils.GetDx(list[i].n2) == dx)
  788. {
  789. info = list[i];
  790. return info;
  791. }
  792. }
  793. if (site == 2)
  794. {
  795. if (ZstUtils.GetDx(list[i].n3) == dx)
  796. {
  797. info = list[i];
  798. return info;
  799. }
  800. }
  801. if (site == 3)
  802. {
  803. if (ZstUtils.GetDx(list[i].n4) == dx)
  804. {
  805. info = list[i];
  806. return info;
  807. }
  808. }
  809. if (site == 5)
  810. {
  811. if (ZstUtils.GetDx(list[i].n6) == dx)
  812. {
  813. info = list[i];
  814. return info;
  815. }
  816. }
  817. if (site == 6)
  818. {
  819. if (ZstUtils.GetDx(list[i].n7) == dx)
  820. {
  821. info = list[i];
  822. return info;
  823. }
  824. }
  825. }
  826. return info;
  827. }
  828. #endregion
  829. #region 奇偶形态的上一次数据
  830. /// <summary>
  831. /// 开奖号某位上的上一次奇偶数据..
  832. /// </summary>
  833. /// <param name="val"></param>
  834. /// <param name="rank"></param>
  835. /// <param name="site"></param>
  836. /// <returns></returns>
  837. public static Fchljp62Info GetLastNjoInfo(ref List<Fchljp62Info> list, int jo, int rank, int site)
  838. {
  839. Fchljp62Info info = new Fchljp62Info();
  840. int size = list.Count;
  841. for (int i = rank - 2; i >= 0; i--)
  842. {
  843. if (site == 0)
  844. {
  845. if (ZstUtils.GetJo(list[i].n1) == jo)
  846. {
  847. info = list[i];
  848. return info;
  849. }
  850. }
  851. if (site == 1)
  852. {
  853. if (ZstUtils.GetJo(list[i].n2) == jo)
  854. {
  855. info = list[i];
  856. return info;
  857. }
  858. }
  859. if (site == 2)
  860. {
  861. if (ZstUtils.GetJo(list[i].n3) == jo)
  862. {
  863. info = list[i];
  864. return info;
  865. }
  866. }
  867. if (site == 3)
  868. {
  869. if (ZstUtils.GetJo(list[i].n4) == jo)
  870. {
  871. info = list[i];
  872. return info;
  873. }
  874. }
  875. if (site == 4)
  876. {
  877. if (ZstUtils.GetJo(list[i].n5) == jo)
  878. {
  879. info = list[i];
  880. return info;
  881. }
  882. }
  883. if (site == 5)
  884. {
  885. if (ZstUtils.GetJo(list[i].n6) == jo)
  886. {
  887. info = list[i];
  888. return info;
  889. }
  890. }
  891. if (site == 6)
  892. {
  893. if (ZstUtils.GetJo(list[i].n7) == jo)
  894. {
  895. info = list[i];
  896. return info;
  897. }
  898. }
  899. }
  900. return info;
  901. }
  902. #endregion
  903. #region 质号形态的上一次数据
  904. /// <summary>
  905. /// 开奖号某位上的上一次质合数据..
  906. /// </summary>
  907. /// <param name="val"></param>
  908. /// <param name="rank"></param>
  909. /// <param name="site"></param>
  910. /// <returns></returns>
  911. public static Fchljp62Info GetLastNzhInfo(ref List<Fchljp62Info> list, int jo, int rank, int site)
  912. {
  913. Fchljp62Info info = new Fchljp62Info();
  914. int size = list.Count;
  915. for (int i = rank - 2; i >= 0; i--)
  916. {
  917. if (site == 0)
  918. {
  919. if (ZstUtils.GetZh(list[i].n1) == jo)
  920. {
  921. info = list[i];
  922. return info;
  923. }
  924. }
  925. if (site == 1)
  926. {
  927. if (ZstUtils.GetZh(list[i].n2) == jo)
  928. {
  929. info = list[i];
  930. return info;
  931. }
  932. }
  933. if (site == 2)
  934. {
  935. if (ZstUtils.GetZh(list[i].n3) == jo)
  936. {
  937. info = list[i];
  938. return info;
  939. }
  940. }
  941. if (site == 3)
  942. {
  943. if (ZstUtils.GetZh(list[i].n4) == jo)
  944. {
  945. info = list[i];
  946. return info;
  947. }
  948. }
  949. if (site == 4)
  950. {
  951. if (ZstUtils.GetZh(list[i].n5) == jo)
  952. {
  953. info = list[i];
  954. return info;
  955. }
  956. }
  957. if (site == 5)
  958. {
  959. if (ZstUtils.GetZh(list[i].n6) == jo)
  960. {
  961. info = list[i];
  962. return info;
  963. }
  964. }
  965. if (site == 6)
  966. {
  967. if (ZstUtils.GetZh(list[i].n7) == jo)
  968. {
  969. info = list[i];
  970. return info;
  971. }
  972. }
  973. }
  974. return info;
  975. }
  976. #endregion
  977. #region 012路形态的上一次数据
  978. /// <summary>
  979. /// 开奖号某位上的上一次012路数据..
  980. /// </summary>
  981. /// <param name="val"></param>
  982. /// <param name="rank"></param>
  983. /// <param name="site"></param>
  984. /// <returns></returns>
  985. public static Fchljp62Info GetLastN012Info(ref List<Fchljp62Info> list, int jo, int rank, int site)
  986. {
  987. Fchljp62Info info = new Fchljp62Info();
  988. int size = list.Count;
  989. for (int i = rank - 2; i >= 0; i--)
  990. {
  991. if (site == 0)
  992. {
  993. if (ZstUtils.Get012(list[i].n1) == jo)
  994. {
  995. info = list[i];
  996. return info;
  997. }
  998. }
  999. if (site == 1)
  1000. {
  1001. if (ZstUtils.Get012(list[i].n2) == jo)
  1002. {
  1003. info = list[i];
  1004. return info;
  1005. }
  1006. }
  1007. if (site == 2)
  1008. {
  1009. if (ZstUtils.Get012(list[i].n3) == jo)
  1010. {
  1011. info = list[i];
  1012. return info;
  1013. }
  1014. }
  1015. if (site == 3)
  1016. {
  1017. if (ZstUtils.Get012(list[i].n4) == jo)
  1018. {
  1019. info = list[i];
  1020. return info;
  1021. }
  1022. }
  1023. if (site == 4)
  1024. {
  1025. if (ZstUtils.Get012(list[i].n5) == jo)
  1026. {
  1027. info = list[i];
  1028. return info;
  1029. }
  1030. }
  1031. if (site == 5)
  1032. {
  1033. if (ZstUtils.Get012(list[i].n6) == jo)
  1034. {
  1035. info = list[i];
  1036. return info;
  1037. }
  1038. }
  1039. if (site == 6)
  1040. {
  1041. if (ZstUtils.Get012(list[i].n7) == jo)
  1042. {
  1043. info = list[i];
  1044. return info;
  1045. }
  1046. }
  1047. }
  1048. return info;
  1049. }
  1050. #endregion
  1051. #region 上一次某个号码振幅的数据
  1052. /// <summary>
  1053. /// 上一次某个号码振幅的数据
  1054. /// </summary>
  1055. /// <param name="zf"></param>
  1056. /// <param name="rank"></param>
  1057. /// <param name="type"></param>
  1058. /// <returns></returns>
  1059. public static Fchljp62Info GetLastNZfInfo(ref List<Fchljp62Info> list, int zf, int rank, int type)
  1060. {
  1061. Fchljp62Info info = new Fchljp62Info();
  1062. int size = list.Count;
  1063. for (int i = rank - 2; i >= 0; i--)
  1064. {
  1065. if (i > 0)
  1066. {
  1067. if (type == 0)
  1068. {
  1069. if (Math.Abs(list[i].n1 - list[i - 1].n1) == zf)
  1070. {
  1071. info = list[i];
  1072. return info;
  1073. }
  1074. }
  1075. if (type == 1)
  1076. {
  1077. if (Math.Abs(list[i].n2 - list[i - 1].n2) == zf)
  1078. {
  1079. info = list[i];
  1080. return info;
  1081. }
  1082. }
  1083. if (type == 2)
  1084. {
  1085. if (Math.Abs(list[i].n3 - list[i - 1].n3) == zf)
  1086. {
  1087. info = list[i];
  1088. return info;
  1089. }
  1090. }
  1091. if (type == 3)
  1092. {
  1093. if (Math.Abs(list[i].n4 - list[i - 1].n4) == zf)
  1094. {
  1095. info = list[i];
  1096. return info;
  1097. }
  1098. }
  1099. if (type == 4)
  1100. {
  1101. if (Math.Abs(list[i].n5 - list[i - 1].n5) == zf)
  1102. {
  1103. info = list[i];
  1104. return info;
  1105. }
  1106. }
  1107. if (type == 5)
  1108. {
  1109. if (Math.Abs(list[i].n6 - list[i - 1].n6) == zf)
  1110. {
  1111. info = list[i];
  1112. return info;
  1113. }
  1114. }
  1115. if (type == 6)
  1116. {
  1117. if (Math.Abs(list[i].n7 - list[i - 1].n7) == zf)
  1118. {
  1119. info = list[i];
  1120. return info;
  1121. }
  1122. }
  1123. }
  1124. }
  1125. return info;
  1126. }
  1127. #endregion
  1128. #endregion
  1129. #region 冷热号
  1130. /// <summary>
  1131. /// 百十个位上的某个号码最近size期是否有出现过.
  1132. /// 出现过为热,否则为冷号
  1133. /// </summary>
  1134. /// <param name="val"></param>
  1135. /// <param name="site"></param>
  1136. /// <param name="size"></param>
  1137. /// <returns></returns>
  1138. public static bool GetFchljp62HmLrInfo(ref List<Fchljp62Info> list, int val, int type, int size, int rank)
  1139. {
  1140. Fchljp62Info info = new Fchljp62Info();
  1141. info = GetLastFchljp62Info(ref list,val, rank, type);
  1142. if ((rank - info.rank) <= size)
  1143. return true;
  1144. return false;
  1145. }
  1146. /// <summary>
  1147. /// 上一次某位号码是冷/热号的情况..
  1148. /// </summary>
  1149. /// <param name="type"></param>
  1150. /// <param name="rank"></param>
  1151. /// <returns></returns>
  1152. public static Fchljp62Info GetFchljp62LastHmHrInfo(ref List<Fchljp62Info> list, int type, int size, int rank, bool iscool)
  1153. {
  1154. Fchljp62Info info = new Fchljp62Info();
  1155. if (list != null && list.Count > 0)
  1156. {
  1157. for (int i = rank - 2; i >= 0; i--)
  1158. {
  1159. if (iscool)
  1160. {
  1161. if (type == 0)
  1162. {
  1163. if (!GetFchljp62HmLrInfo(ref list,list[i].n1, type, size, list[i].rank))
  1164. return list[i];
  1165. }
  1166. if (type == 1)
  1167. {
  1168. if (!GetFchljp62HmLrInfo(ref list,list[i].n2, type, size, list[i].rank))
  1169. return list[i];
  1170. }
  1171. if (type == 2)
  1172. {
  1173. if (!GetFchljp62HmLrInfo(ref list,list[i].n3, type, size, list[i].rank))
  1174. return list[i];
  1175. }
  1176. if (type == 3)
  1177. {
  1178. if (!GetFchljp62HmLrInfo(ref list,list[i].n4, type, size, list[i].rank))
  1179. return list[i];
  1180. }
  1181. if (type == 4)
  1182. {
  1183. if (!GetFchljp62HmLrInfo(ref list,list[i].n5, type, size, list[i].rank))
  1184. return list[i];
  1185. }
  1186. if (type == 5)
  1187. {
  1188. if (!GetFchljp62HmLrInfo(ref list,list[i].n6, type, size, list[i].rank))
  1189. return list[i];
  1190. }
  1191. if (type == 6)
  1192. {
  1193. if (!GetFchljp62HmLrInfo(ref list,list[i].n7, type, size, list[i].rank))
  1194. return list[i];
  1195. }
  1196. }
  1197. if (!iscool)
  1198. {
  1199. if (type == 0)
  1200. {
  1201. if (GetFchljp62HmLrInfo(ref list,list[i].n1, type, size, list[i].rank))
  1202. return list[i];
  1203. }
  1204. if (type == 1)
  1205. {
  1206. if (GetFchljp62HmLrInfo(ref list,list[i].n2, type, size, list[i].rank))
  1207. return list[i];
  1208. }
  1209. if (type == 2)
  1210. {
  1211. if (GetFchljp62HmLrInfo(ref list,list[i].n3, type, size, list[i].rank))
  1212. return list[i];
  1213. }
  1214. if (type == 3)
  1215. {
  1216. if (GetFchljp62HmLrInfo(ref list,list[i].n4, type, size, list[i].rank))
  1217. return list[i];
  1218. }
  1219. if (type == 4)
  1220. {
  1221. if (GetFchljp62HmLrInfo(ref list,list[i].n5, type, size, list[i].rank))
  1222. return list[i];
  1223. }
  1224. if (type == 5)
  1225. {
  1226. if (GetFchljp62HmLrInfo(ref list,list[i].n6, type, size, list[i].rank))
  1227. return list[i];
  1228. }
  1229. if (type == 6)
  1230. {
  1231. if (GetFchljp62HmLrInfo(ref list,list[i].n7, type, size, list[i].rank))
  1232. return list[i];
  1233. }
  1234. }
  1235. }
  1236. }
  1237. return info;
  1238. }
  1239. #endregion
  1240. #region 最近n期形态=x的数据列表
  1241. /// <summary>
  1242. /// 和尾
  1243. /// </summary>
  1244. /// <returns></returns>
  1245. public static List<Fchljp62Info> GetFcQlcListByHw(ref List<Fchljp62Info> list, int val)
  1246. {
  1247. List<Fchljp62Info> rlist = new List<Fchljp62Info>();
  1248. if (list != null && list.Count > 0)
  1249. {
  1250. int size = list.Count;
  1251. for (int i = 0; i < size; i++)
  1252. {
  1253. if (ZstUtils.GetHw(list[i].hz) == val)
  1254. rlist.Add(list[i]);
  1255. }
  1256. }
  1257. return rlist;
  1258. }
  1259. /// <summary>
  1260. /// 所有跨度..
  1261. /// </summary>
  1262. /// <param name="val"></param>
  1263. /// <returns></returns>
  1264. public static List<Fchljp62Info> GetFcQlcListByKd(ref List<Fchljp62Info> list, int val)
  1265. {
  1266. List<Fchljp62Info> rlist = new List<Fchljp62Info>();
  1267. if (list != null && list.Count > 0)
  1268. {
  1269. int size = list.Count;
  1270. for (int i = 0; i < size; i++)
  1271. {
  1272. if (list[i].kd == val)
  1273. rlist.Add(list[i]);
  1274. }
  1275. }
  1276. return rlist;
  1277. }
  1278. /// <summary>
  1279. /// 所有基本号中包括val的数据
  1280. /// </summary>
  1281. /// <param name="red"></param>
  1282. /// <returns></returns>
  1283. public static List<Fchljp62Info> GetFcQlcListByRed(ref List<Fchljp62Info> list, int red)
  1284. {
  1285. List<Fchljp62Info> rlist = new List<Fchljp62Info>();
  1286. if (list != null && list.Count > 0)
  1287. {
  1288. int size = list.Count;
  1289. for (int i = 0; i < size; i++)
  1290. {
  1291. 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 };
  1292. if (kjh.Contains(red))
  1293. rlist.Add(list[i]);
  1294. }
  1295. }
  1296. return rlist;
  1297. }
  1298. #endregion
  1299. #region 开奖公告相关方法
  1300. /// <summary>
  1301. /// 大乐透最近30期开奖数据,完整开奖信息,有缓存
  1302. /// </summary>
  1303. /// <returns></returns>
  1304. public static List<Fchljp62LongInfo> GetFchljp62ListTop30()
  1305. {
  1306. string key = string.Format(CacheKeys.FCHLJP62_KJH_DATA);
  1307. List<Fchljp62LongInfo> list = cache.GetObject<List<Fchljp62LongInfo>>(key) as List<Fchljp62LongInfo>;
  1308. if (list == null)
  1309. {
  1310. list = Fchljp62Data.GetFchljp62Top30();
  1311. cache.AddObject(key, list, (int)CacheTime.Kjh);
  1312. }
  1313. return list;
  1314. }
  1315. /// <summary>
  1316. /// 获取最新一期开奖信息,完整开奖信息,有缓存
  1317. /// </summary>
  1318. /// <returns></returns>
  1319. public static Fchljp62LongInfo GetFchljp62InfoTop1(ref List<Fchljp62LongInfo> list)
  1320. {
  1321. Fchljp62LongInfo info = new Fchljp62LongInfo();
  1322. if (list.Count > 0)
  1323. {
  1324. info = list[0];
  1325. }
  1326. return info;
  1327. }
  1328. /// <summary>
  1329. /// 根据期数返回某期完整开奖信息,无缓存
  1330. /// </summary>
  1331. /// <param name="qi"></param>
  1332. /// <returns></returns>
  1333. public static Fchljp62LongInfo GetFchljp62InfoByqi(int qi)
  1334. {
  1335. return Fchljp62Data.GetFchljp62InfoByQi(qi);
  1336. }
  1337. /// <summary>
  1338. /// 返回某年对应的期数列表,有缓存
  1339. /// </summary>
  1340. /// <param name="year"></param>
  1341. /// <returns></returns>
  1342. public static List<int> GetFchljp62QiListByYear(int year)
  1343. {
  1344. string key = string.Format(CacheKeys.FCHLJP62_KJH_DATA + "/qilistbyyear/{0}", year);
  1345. List<int> list = cache.GetObject<List<int>>(key) as List<int>;
  1346. if (list == null)
  1347. {
  1348. list = Fchljp62Data.GetFchljp62QiListByYear(year);
  1349. cache.AddObject(key, list, (int)CacheTime.System);
  1350. }
  1351. return list;
  1352. }
  1353. #endregion
  1354. /// <summary>
  1355. /// 上一次和值val的数据
  1356. /// </summary>
  1357. /// <param name="val"></param>
  1358. /// <param name="rank"></param>
  1359. /// <returns></returns>
  1360. public static Fchljp62Info GetLastHzFchljp62Info(ref List<Fchljp62Info> list, int shz, int ehz, int rank)
  1361. {
  1362. Fchljp62Info info = new Fchljp62Info();
  1363. if (list != null && list.Count > 0)
  1364. {
  1365. for (int i = rank - 2; i >= 0; i--)
  1366. {
  1367. if (list[i].hz >= shz && list[i].hz <= ehz)
  1368. {
  1369. info = list[i];
  1370. return info;
  1371. }
  1372. }
  1373. }
  1374. return info;
  1375. }
  1376. }
  1377. }