Tcjs7ws.cs 34 KB

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