Fcxj18x7.cs 40 KB

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