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