Fcshttcx4.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using CP.Cache;
  5. using CP.Common;
  6. using CP.Model;
  7. namespace CP.Business
  8. {
  9. public class Fcshttcx4
  10. {
  11. /// <summary>
  12. /// 缓存
  13. /// </summary>
  14. static WMCache cache = WMCache.GetCacheService();
  15. /// <summary>
  16. /// cache中的所有数据.
  17. /// </summary>
  18. /// <returns></returns>
  19. public static List<Fcshttc4> GetFcshttcx4List()
  20. {
  21. string key = string.Format(CacheKeys.FCSHTTCX4_DATALIST);
  22. List<Fcshttc4> list = new List<Fcshttc4>();
  23. if (cache.IsExist(key))
  24. {
  25. list = cache.GetObject<List<Fcshttc4>>(key);
  26. }
  27. else
  28. {
  29. list = Fcshttc4Data.GetFcshttcx4List();
  30. cache.AddObject(key, list, (int)CacheTime.Data);
  31. }
  32. return list;
  33. }
  34. /// <summary>
  35. /// 最近n期数据
  36. /// </summary>
  37. /// <param name="pagesize">最近n期</param>
  38. /// <param name="year">某一年</param>
  39. /// <param name="sqi">开始期数</param>
  40. /// <param name="eqi">结束期数</param>
  41. /// <param name="week">周几</param>
  42. /// <param name="xt">形态0为豹子 3为组三 6为组六</param>
  43. /// <param name="ds">单双期数</param>
  44. /// <returns></returns>
  45. public static List<Fcshttc4> GetFcshttcx4List(ref List<Fcshttc4> datalist, int pagesize, int year, int sqi, int eqi, int week = 0, int xt = -1, int ds = 0)
  46. {
  47. List<Fcshttc4> list = new List<Fcshttc4>();
  48. list = datalist;
  49. List<Fcshttc4> rlist = new List<Fcshttc4>();
  50. int size = list.Count;
  51. if (pagesize > 0)
  52. {
  53. for (int i = (size - pagesize); i < size; i++)
  54. {
  55. rlist.Add(list[i]);
  56. }
  57. return rlist;
  58. }
  59. if (year > 0)
  60. {
  61. rlist.Clear();
  62. for (int i = 0; i < size; i++)
  63. {
  64. if (TypeConverter.StrToInt(list[i].qi.ToString().Substring(0, 4), 0) == year)
  65. rlist.Add(list[i]);
  66. }
  67. return rlist;
  68. }
  69. if (week > 0)
  70. {
  71. rlist.Clear();
  72. List<Fcshttc4> temp = new List<Fcshttc4>();
  73. for (int i = 0; i < size; i++)
  74. {
  75. if (list[i].week == week)
  76. temp.Add(list[i]);
  77. }
  78. for (int i = (temp.Count - 60); i < temp.Count; i++)
  79. {
  80. rlist.Add(temp[i]);
  81. }
  82. return rlist;
  83. }
  84. //单双期数
  85. if (ds > 0)
  86. {
  87. rlist.Clear();
  88. List<Fcshttc4> temp = new List<Fcshttc4>();
  89. for (int i = 0; i < size; i++)
  90. {
  91. if (ds == 1)
  92. {
  93. if (list[i].qi % 2 != 0)
  94. temp.Add(list[i]);
  95. }
  96. else if (ds == 2)
  97. {
  98. if (list[i].qi % 2 == 0)
  99. temp.Add(list[i]);
  100. }
  101. }
  102. for (int i = (temp.Count - 60); i < temp.Count; i++)
  103. {
  104. rlist.Add(temp[i]);
  105. }
  106. return rlist;
  107. }
  108. if (sqi > 0 && eqi > 0)
  109. {
  110. rlist.Clear();
  111. int srank = GetFcshttcx4Info(ref datalist, sqi).rank;
  112. int erank = GetFcshttcx4Info(ref datalist, eqi).rank;
  113. if (erank != 0 && srank != 0 && erank > srank)
  114. {
  115. for (int i = srank - 1; i < erank && i < size; i++)
  116. {
  117. rlist.Add(list[i]);
  118. }
  119. }
  120. return rlist;
  121. }
  122. ///无参数条件时,返回2002001到现在的所有数据..
  123. if (pagesize == 0 && year == 0 && sqi == 0 && eqi == 0 && week == 0)
  124. return list;
  125. return rlist;
  126. }
  127. /// <summary>
  128. /// 根据期数获取期一期的数据...
  129. /// </summary>
  130. /// <param name="qi"></param>
  131. /// <returns></returns>
  132. public static Fcshttc4 GetFcshttcx4Info(ref List<Fcshttc4> list, int qi)
  133. {
  134. Fcshttc4 info = new Fcshttc4();
  135. int size = list.Count;
  136. for (int i = 0; i < size; i++)
  137. {
  138. if (list[i].qi == qi)
  139. {
  140. info = list[i];
  141. break;
  142. }
  143. }
  144. return info;
  145. }
  146. /// <summary>
  147. /// 上一期的开奖信息.
  148. /// </summary>
  149. /// <returns></returns>
  150. public static Fcshttc4 GetLastFcshttcx4Info(ref List<Fcshttc4> list)
  151. {
  152. Fcshttc4 info = new Fcshttc4();
  153. if (list != null && list.Count > 0)
  154. {
  155. int size = list.Count;
  156. for (int i = (size - 1); i >= 0; i--)
  157. {
  158. if (list[i].n1 != -1)
  159. return list[i];
  160. }
  161. }
  162. return info;
  163. }
  164. /// <summary>
  165. /// 根据当前排名,查询出上一期数据.
  166. /// </summary>
  167. /// <param name="val"></param>
  168. /// <param name="rank"></param>
  169. /// <param name="type"></param>
  170. /// <returns></returns>
  171. public static Fcshttc4 GetLastFcshttcx4Info(ref List<Fcshttc4> list, int val, int rank, int type)
  172. {
  173. Fcshttc4 info = new Fcshttc4();
  174. int size = list.Count;
  175. ///升序的情况
  176. ///未实现走势图倒序的情况..
  177. for (int i = rank - 2; i >= 0; i--)
  178. {
  179. if (type == 0)
  180. {
  181. if (list[i].n1 == val)
  182. {
  183. info = list[i];
  184. return info;
  185. }
  186. }
  187. if (type == 1)
  188. {
  189. if (list[i].n2 == val)
  190. {
  191. info = list[i];
  192. return info;
  193. }
  194. }
  195. if (type == 2)
  196. {
  197. if (list[i].n3 == val)
  198. {
  199. info = list[i];
  200. return info;
  201. }
  202. }
  203. if (type == 3)
  204. {
  205. if (list[i].n4 == val)
  206. {
  207. info = list[i];
  208. return info;
  209. }
  210. }
  211. }
  212. return info;
  213. }
  214. /// <summary>
  215. /// 上一次p5和值=val的数据
  216. /// </summary>
  217. /// <param name="val"></param>
  218. /// <param name="rank"></param>
  219. /// <returns></returns>
  220. public static Fcshttc4 GetLastHzFcshttcx4Info(ref List<Fcshttc4> list, int val, int rank)
  221. {
  222. Fcshttc4 info = new Fcshttc4();
  223. int size = list.Count;
  224. for (int i = rank - 2; i >= 0; i--)
  225. {
  226. if (val < 12 && list[i].hz < 12)
  227. {
  228. info = list[i];
  229. return info;
  230. }
  231. if (val > 33 && list[i].hz > 33)
  232. {
  233. info = list[i];
  234. return info;
  235. }
  236. if (list[i].hz == val)
  237. {
  238. info = list[i];
  239. return info;
  240. }
  241. }
  242. return info;
  243. }
  244. /// <summary>
  245. /// 上一次p5和尾=val的数据
  246. /// </summary>
  247. /// <param name="val"></param>
  248. /// <param name="rank"></param>
  249. /// <returns></returns>
  250. public static Fcshttc4 GetLastHwFcshttcx4Info(ref List<Fcshttc4> list, int val, int rank)
  251. {
  252. Fcshttc4 info = new Fcshttc4();
  253. int size = list.Count;
  254. for (int i = rank - 2; i >= 0; i--)
  255. {
  256. if (ZstUtils.GetHw(list[i].hz) == val)
  257. {
  258. info = list[i];
  259. return info;
  260. }
  261. }
  262. return info;
  263. }
  264. /// <summary>
  265. /// 根据当前排名,取出上一个排名,即上一期的数据.
  266. /// </summary>
  267. /// <param name="rank"></param>
  268. /// <returns></returns>
  269. public static Fcshttc4 GetLastQiFcshttcx4Info(ref List<Fcshttc4> list, int rank)
  270. {
  271. Fcshttc4 info = new Fcshttc4();
  272. int size = list.Count;
  273. for (int i = rank - 2; i >= 0; i--)
  274. {
  275. if (list[i].rank == rank - 1)
  276. {
  277. info = list[i];
  278. return info;
  279. }
  280. }
  281. return info;
  282. }
  283. /// <summary>
  284. /// 上一次p5和值奇偶
  285. /// </summary>
  286. /// <param name="xt"></param>
  287. /// <param name="rank"></param>
  288. /// <returns></returns>
  289. public static Fcshttc4 GetLastHzJoFcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  290. {
  291. Fcshttc4 info = new Fcshttc4();
  292. int size = list.Count;
  293. for (int i = rank - 2; i >= 0; i--)
  294. {
  295. if (xt == 0)
  296. {
  297. if (list[i].hz % 2 == 0)
  298. {
  299. info = list[i];
  300. return info;
  301. }
  302. }
  303. if (xt == 1)
  304. {
  305. if (list[i].hz % 2 != 0)
  306. {
  307. info = list[i];
  308. return info;
  309. }
  310. }
  311. }
  312. return info;
  313. }
  314. /// <summary>
  315. /// 上一次p5和值大小
  316. /// </summary>
  317. /// <param name="xt"></param>
  318. /// <param name="rank"></param>
  319. /// <returns></returns>
  320. public static Fcshttc4 GetLastHzDxFcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  321. {
  322. Fcshttc4 info = new Fcshttc4();
  323. int size = list.Count;
  324. for (int i = rank - 2; i >= 0; i--)
  325. {
  326. if (xt == 0)
  327. {
  328. if (list[i].hz < 23)
  329. {
  330. info = list[i];
  331. return info;
  332. }
  333. }
  334. if (xt == 1)
  335. {
  336. if (list[i].hz > 22)
  337. {
  338. info = list[i];
  339. return info;
  340. }
  341. }
  342. }
  343. return info;
  344. }
  345. /// <summary>
  346. /// p5和值上次012情况
  347. /// </summary>
  348. /// <param name="xt"></param>
  349. /// <param name="rank"></param>
  350. /// <returns></returns>
  351. public static Fcshttc4 GetLastHz012Fcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  352. {
  353. Fcshttc4 info = new Fcshttc4();
  354. int size = list.Count;
  355. for (int i = rank - 2; i >= 0; i--)
  356. {
  357. if (xt == 0)
  358. {
  359. if (list[i].hz % 3 == 0)
  360. {
  361. info = list[i];
  362. return info;
  363. }
  364. }
  365. if (xt == 1)
  366. {
  367. if (list[i].hz % 3 == 1)
  368. {
  369. info = list[i];
  370. return info;
  371. }
  372. }
  373. if (xt == 2)
  374. {
  375. if (list[i].hz % 3 == 2)
  376. {
  377. info = list[i];
  378. return info;
  379. }
  380. }
  381. }
  382. return info;
  383. }
  384. /// <summary>
  385. /// 上一次p5 hw奇偶
  386. /// </summary>
  387. /// <param name="xt"></param>
  388. /// <param name="rank"></param>
  389. /// <returns></returns>
  390. public static Fcshttc4 GetLastHwJoFcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  391. {
  392. Fcshttc4 info = new Fcshttc4();
  393. int size = list.Count;
  394. for (int i = rank - 2; i >= 0; i--)
  395. {
  396. if (xt == 0)
  397. {
  398. if (ZstUtils.GetHw(list[i].hz) % 2 == 0)
  399. {
  400. info = list[i];
  401. return info;
  402. }
  403. }
  404. if (xt == 1)
  405. {
  406. if (ZstUtils.GetHw(list[i].hz) % 2 != 0)
  407. {
  408. info = list[i];
  409. return info;
  410. }
  411. }
  412. }
  413. return info;
  414. }
  415. /// <summary>
  416. /// 上一次P5大小
  417. /// </summary>
  418. /// <param name="xt"></param>
  419. /// <param name="rank"></param>
  420. /// <returns></returns>
  421. public static Fcshttc4 GetLastHwDxFcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  422. {
  423. Fcshttc4 info = new Fcshttc4();
  424. int size = list.Count;
  425. for (int i = rank - 2; i >= 0; i--)
  426. {
  427. if (xt == 0)
  428. {
  429. if (ZstUtils.GetHw(list[i].hz) < 5)
  430. {
  431. info = list[i];
  432. return info;
  433. }
  434. }
  435. if (xt == 1)
  436. {
  437. if (ZstUtils.GetHw(list[i].hz) > 4)
  438. {
  439. info = list[i];
  440. return info;
  441. }
  442. }
  443. }
  444. return info;
  445. }
  446. /// <summary>
  447. /// p5 上次012
  448. /// </summary>
  449. /// <param name="xt"></param>
  450. /// <param name="rank"></param>
  451. /// <returns></returns>
  452. public static Fcshttc4 GetLastHw012Fcshttcx4Info(ref List<Fcshttc4> list, int xt, int rank)
  453. {
  454. Fcshttc4 info = new Fcshttc4();
  455. int size = list.Count;
  456. for (int i = rank - 2; i >= 0; i--)
  457. {
  458. if (xt == 0)
  459. {
  460. if (ZstUtils.GetHw(list[i].hz) == 0)
  461. {
  462. info = list[i];
  463. return info;
  464. }
  465. }
  466. if (xt == 1)
  467. {
  468. if (ZstUtils.GetHw(list[i].hz) == 1)
  469. {
  470. info = list[i];
  471. return info;
  472. }
  473. }
  474. if (xt == 2)
  475. {
  476. if (ZstUtils.GetHw(list[i].hz) == 2)
  477. {
  478. info = list[i];
  479. return info;
  480. }
  481. }
  482. }
  483. return info;
  484. }
  485. }
  486. }