Fchebeihyc2.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. using CP.Common;
  2. using MC.ORM;
  3. using MySql.Data.MySqlClient;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace CP.Model
  10. {
  11. #region 福彩河北好运彩2
  12. [TableName("fchebeihyc2"), PrimaryKey("id")]
  13. public class Fchebeihyc2Info
  14. {
  15. /// <summary>
  16. /// 期数
  17. /// </summary>
  18. public int qi { get; set; }
  19. /// <summary>
  20. /// 第一个号码
  21. /// </summary>
  22. public int n1 { get; set; }
  23. /// <summary>
  24. /// 第二个号码
  25. /// </summary>
  26. public int n2 { get; set; }
  27. /// <summary>
  28. /// 和值
  29. /// </summary>
  30. public int hz { get; set; }
  31. /// <summary>
  32. /// 跨度
  33. /// </summary>
  34. public int kd { get; set; }
  35. /// <summary>
  36. /// AC值
  37. /// </summary>
  38. public int ac { get; set; }
  39. /// <summary>
  40. /// 星期几
  41. /// </summary>
  42. public int week { get; set; }
  43. /// <summary>
  44. /// 开奖日期
  45. /// </summary>
  46. public DateTime date { get; set; }
  47. /// <summary>
  48. /// 在列表中的排名..
  49. /// 用于遗漏计算.
  50. /// </summary>
  51. [Ignore]
  52. public int rank { get; set; }
  53. }
  54. #endregion
  55. #region 福彩河北好运彩2完整模型
  56. /// <summary>
  57. /// 福彩河北好运彩2完整模型
  58. /// </summary>
  59. [TableName("fchebeihyc2"), PrimaryKey("id")]
  60. public class Fchebeihyc2LongInfo : Fchebeihyc2Info
  61. {
  62. /// <summary>
  63. /// 自动编号
  64. /// </summary>
  65. public int id { get; set; }
  66. /// <summary>
  67. /// 一等奖注数
  68. /// </summary>
  69. public string zj1 { get; set; }
  70. /// <summary>
  71. /// 一等奖金额
  72. /// </summary>
  73. public string jo1 { get; set; }
  74. /// <summary>
  75. /// 开奖详情json
  76. /// </summary>
  77. public string winbonus { set; get; }
  78. /// <summary>
  79. /// 添加时间
  80. /// </summary>
  81. public DateTime addtime { get; set; }
  82. /// <summary>
  83. /// 下期奖池
  84. /// </summary>
  85. public string nextmoney { get; set; }
  86. /// <summary>
  87. /// 当期投注金额
  88. /// </summary>
  89. public string tzmoney { get; set; }
  90. /// <summary>
  91. /// 是否复查开奖号
  92. /// </summary>
  93. public int ischeck { get; set; }
  94. /// <summary>
  95. /// 号码
  96. /// </summary>
  97. public string opencode { get; set; }
  98. /// <summary>
  99. /// 第1步(开奖号)状态 -1:未添加 2:完成 3:复查完成
  100. /// </summary>
  101. public int step1state { set; get; }
  102. /// <summary>
  103. /// 第2步(开奖详情)状态 -1:未添加 1:完成一半 2:完成 3:复查完成
  104. /// </summary>
  105. public int step2state { set; get; }
  106. [Ignore]
  107. public string isComplete
  108. {
  109. get
  110. {
  111. if (step2state == 3)
  112. return "<span style='color:green;'>是</span>";
  113. return "<span style='color:red;'>否</span>";
  114. }
  115. }
  116. }
  117. #endregion
  118. #region 福彩河北好运彩2遗漏模型
  119. /// <summary>
  120. /// 福彩河北好运彩2出号走势图上的遗漏模型
  121. /// </summary>
  122. public class Fchebeihyc2MissInfo
  123. {
  124. /// <summary>
  125. /// 名称
  126. /// </summary>
  127. public string name { get; set; }
  128. /// <summary>
  129. /// 号码遗漏
  130. /// </summary>
  131. public int[] ch { get; set; }
  132. }
  133. /// <summary>
  134. /// 和值遗漏模型
  135. /// </summary>
  136. public class Fchebeihyc2HzMissInfo
  137. {
  138. public string name { get; set; }
  139. public int[] hz { get; set; }
  140. public int[] hzjo { get; set; }
  141. public int[] hw { get; set; }
  142. public int[] hwdx { get; set; }
  143. public int[] hwjo { get; set; }
  144. }
  145. /// <summary>
  146. /// 跨度值遗漏模型
  147. /// </summary>
  148. public class Fchebeihyc2KdMissInfo
  149. {
  150. /// <summary>
  151. /// 名称
  152. /// </summary>
  153. public string name { get; set; }
  154. /// <summary>
  155. /// 跨度
  156. /// </summary>
  157. public int[] kd { get; set; }
  158. /// <summary>
  159. ///跨度奇偶
  160. /// </summary>
  161. public int[] jo { get; set; }
  162. /// <summary>
  163. /// 跨度大小
  164. /// </summary>
  165. public int[] dx { get; set; }
  166. /// <summary>
  167. /// 跨度质合
  168. /// </summary>
  169. public int[] zh { get; set; }
  170. }
  171. #endregion
  172. /// <summary>
  173. /// 福彩河北好运彩2的数据库操作.
  174. /// </summary>
  175. public class Fchebeihyc2Data : DataConnect
  176. {
  177. /// <summary>
  178. /// 数据库中取出所有
  179. /// </summary>
  180. /// <returns></returns>
  181. public static List<Fchebeihyc2Info> GetFchebeihyc2List()
  182. {
  183. List<Fchebeihyc2Info> list = new List<Fchebeihyc2Info>();
  184. string sql = string.Format("order by qi asc");
  185. DataConnect dc = new DataConnect();
  186. list = dc.db.Fetch<Fchebeihyc2Info>(sql);
  187. if (list != null && list.Count > 0)
  188. {
  189. for (int i = 0; i < list.Count; i++)
  190. {
  191. list[i].rank = i + 1;
  192. }
  193. }
  194. return list;
  195. }
  196. #region 开奖公告相关方法
  197. /// <summary>
  198. /// 获取开奖列表
  199. /// </summary>
  200. /// <param name="n">条数</param>
  201. /// <param name="type">默认0只有开奖号数据 1 带有开机号 2 带有试机号</param>
  202. /// <returns></returns>
  203. public static List<Fchebeihyc2LongInfo> GetList(int n = 30, bool isall = false)
  204. {
  205. string sql = $"where n1 > -1 order by qi desc limit {n}";
  206. if (isall)
  207. {
  208. sql = $"where n1 > -1 order by qi desc";
  209. }
  210. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  211. {
  212. return db.Fetch<Fchebeihyc2LongInfo>(sql);
  213. }
  214. }
  215. /// <summary>
  216. /// 获取最新30条开奖信息
  217. /// </summary>
  218. /// <returns></returns>
  219. public static Fchebeihyc2LongInfo GetFcln35X7NewInfo()
  220. {
  221. string sql = string.Format("where n1>-1 order by qi desc limit 1 ");
  222. DataConnect dc = new DataConnect();
  223. return dc.db.SingleOrDefault<Fchebeihyc2LongInfo>(sql);
  224. }
  225. /// <summary>
  226. /// 获取最新30条开奖信息
  227. /// </summary>
  228. /// <returns></returns>
  229. public static List<Fchebeihyc2LongInfo> GetFchebeihyc2Top30(int n = 30)
  230. {
  231. string sql = string.Format($"order by qi desc limit {n}");
  232. DataConnect dc = new DataConnect();
  233. return dc.db.Fetch<Fchebeihyc2LongInfo>(sql);
  234. }
  235. #region 根据期数获取某期开奖信息
  236. public static Fchebeihyc2LongInfo GetFchebeihyc2InfoByQi(int qi)
  237. {
  238. string sql = string.Empty;
  239. if (qi == 0)
  240. sql = string.Format("order by qi desc limit 1");
  241. else
  242. sql = string.Format("where qi={0} limit 1", qi);
  243. DataConnect dc = new DataConnect();
  244. Fchebeihyc2LongInfo info = dc.db.SingleOrDefault<Fchebeihyc2LongInfo>(sql);
  245. return info;
  246. }
  247. #endregion
  248. #region 根据年份取出当年所有期数
  249. /// <summary>
  250. /// 根据年份取出当年所有期数
  251. /// </summary>
  252. /// <param name="year"></param>
  253. /// <returns></returns>
  254. public static List<int> GetFchebeihyc2QiListByYear(int year)
  255. {
  256. List<int> rlist = new List<int>();
  257. string sql = string.Format("where qi like '{0}%' order by qi desc", year);
  258. DataConnect dc = new DataConnect();
  259. var list = dc.db.Fetch<Fchebeihyc2Info>(sql);
  260. if (list != null && list.Count > 0)
  261. {
  262. for (int i = 0; i < list.Count; i++)
  263. {
  264. rlist.Add(list[i].qi);
  265. }
  266. }
  267. return rlist;
  268. }
  269. #endregion
  270. #endregion
  271. #region 开奖号抓取相关数据层方法
  272. private static readonly object _lock = new object();
  273. public static void Add(Fchebeihyc2LongInfo info)
  274. {
  275. if (info == null)
  276. return;
  277. if (info.qi <= 0)
  278. return;
  279. info.opencode = $"{info.n1:00},{info.n2:00}";
  280. //和值
  281. info.hz = info.n1 + info.n2;
  282. //星期
  283. info.week = Utils.GetIntWeek(info.date.DayOfWeek.ToString());
  284. List<int> kjh = new List<int> { info.n1, info.n2 };
  285. kjh.Sort();
  286. info.n1 = kjh[0];
  287. info.n2 = kjh[1];
  288. //AC值
  289. string[] kjhstr = { info.n1.ToString(), info.n2.ToString() };
  290. //检查开奖号是否有重复值
  291. info.ac = ToolUtils.GetAC(kjhstr);
  292. info.kd = kjh.Max() - kjh.Min();
  293. lock (_lock)
  294. {
  295. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  296. {
  297. if (db.Exists<Fchebeihyc2LongInfo>($"where qi={info.qi}"))
  298. return;
  299. db.Insert(info);
  300. try
  301. {
  302. //更新api
  303. DoHttpHelp.UpdateWebApi(DFEnum.fchebeihyc2.ToString());
  304. }
  305. catch (Exception) { }
  306. }
  307. }
  308. }
  309. public static void Update(Fchebeihyc2LongInfo model)
  310. {
  311. if (model == null)
  312. return;
  313. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  314. {
  315. var entity = db.SingleOrDefault<Fchebeihyc2LongInfo>(model.id);
  316. db.Update(entity);
  317. }
  318. }
  319. public static Fchebeihyc2LongInfo GetLastOne()
  320. {
  321. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  322. {
  323. var entity = db.SingleOrDefault<Fchebeihyc2LongInfo>($"order by qi desc limit 1");
  324. return entity ?? new Fchebeihyc2LongInfo();
  325. }
  326. }
  327. #endregion
  328. }
  329. }