Fcshanxkl10f.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using MC.ORM;
  6. using CP.Common;
  7. using MySql.Data.MySqlClient;
  8. namespace CP.Model
  9. {
  10. #region model
  11. /// <summary>
  12. /// 陕西快乐10分
  13. /// </summary>
  14. [TableName("fcshanxkl10f"), PrimaryKey("id")]
  15. public class Fcshanxkl10fInfo : Basekl10fInfo
  16. {
  17. }
  18. #endregion
  19. #region 数据库操作
  20. /// <summary>
  21. /// 陕西快乐10分
  22. /// </summary>
  23. public class Fcshanxkl10fData : DataConnect
  24. {
  25. private static readonly object _lock = new object();
  26. /// <summary>
  27. /// 添加数据
  28. /// </summary>
  29. /// <param name="model"></param>
  30. /// <returns></returns>
  31. public static int Add(Fcshanxkl10fInfo model)
  32. {
  33. if (model == null && model.id <= 0)
  34. return 0;
  35. List<int> kjh = new List<int>() { model.n1,model.n2,model.n3,model.n4,model.n5,model.n6,model.n7,model.n8};
  36. model.opencode = $"{model.n1},{model.n2},{model.n3},{model.n4},{model.n5},{model.n6},{model.n7},{model.n8}";
  37. model.hz = kjh.Sum();
  38. model.kd = kjh.Max() - kjh.Min();
  39. model.addtime = DateTime.Now;
  40. lock (_lock)
  41. {
  42. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  43. {
  44. if (db.Exists<Fcshanxkl10fInfo>($"where qi={model.qi}"))
  45. return 0;
  46. int ret = TypeConverter.ObjectToInt(db.Insert(model));
  47. try
  48. {
  49. //更新api
  50. DoHttpHelp.UpdateWebApi(GPEnum.fcshanxkl10f.ToString());
  51. }
  52. catch (Exception) { }
  53. return ret;
  54. }
  55. }
  56. }
  57. /// <summary>
  58. /// 最新一期
  59. /// </summary>
  60. /// <returns></returns>
  61. public static Fcshanxkl10fInfo GetFcshanxkl10fNewInfo()
  62. {
  63. string sql = string.Format("where n1>-1 order by qi desc limit 1 ");
  64. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  65. {
  66. return db.SingleOrDefault<Fcshanxkl10fInfo>(sql);
  67. }
  68. }
  69. /// <summary>
  70. /// 最近N期的数据列表
  71. /// </summary>
  72. /// <returns></returns>
  73. public static List<Basekl10fInfo> GetList(int limit = 2000)
  74. {
  75. string sql = $"order by qi desc limit {limit}";
  76. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  77. {
  78. var list = db.Fetch<Fcshanxkl10fInfo>(sql).OrderBy(n => n.qi).ToList();
  79. var outlist = new List<Basekl10fInfo>();
  80. if (list != null && list.Count > 0)
  81. {
  82. var size = list.Count;
  83. for (int i = 0; i < size; i++)
  84. {
  85. Basekl10fInfo info = list[i];
  86. info.rank = i + 1;
  87. outlist.Add(info);
  88. }
  89. }
  90. return outlist;
  91. }
  92. }
  93. public static Fcshanxkl10fInfo GetNewQiTop1(int dateint)
  94. {
  95. string sql = string.Empty;
  96. if (dateint == 0)
  97. {
  98. sql = string.Format("order by qi desc limit 1");
  99. }
  100. else
  101. {
  102. string _qistr = dateint.ToString() + "00";
  103. sql = string.Format("where qi<{0} order by qi desc limit 1", _qistr);
  104. }
  105. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  106. {
  107. return db.SingleOrDefault<Fcshanxkl10fInfo>(sql);
  108. }
  109. }
  110. /// <summary>
  111. /// 返回指定条件的最新期数,dateint=0,返回所有数据中的最新一条,即无附加条件的最新。
  112. /// 用于组合今天,昨天,前天的查询条件。
  113. /// </summary>
  114. /// <param name="dateint"></param>
  115. /// <returns></returns>
  116. public static string GetNewQiTop1Qi(int dateint)
  117. {
  118. int qi = TypeConverter.ObjectToInt(GetNewQiTop1(dateint).qi, 0);
  119. return qi.ToString();
  120. }
  121. /// <summary>
  122. /// 某一天的
  123. /// </summary>
  124. /// <param name="sqi"></param>
  125. /// <param name="eqi"></param>
  126. /// <returns></returns>
  127. public static List<Basekl10fInfo> GetOneDayKjList(DateTime sqi, DateTime eqi)
  128. {
  129. string sql = string.Format("where date BETWEEN '{0}' AND '{1}'", sqi, eqi);
  130. using (Database db = new Database(mysql, MySqlClientFactory.Instance))
  131. {
  132. List<Fcshanxkl10fInfo> list = db.Fetch<Fcshanxkl10fInfo>(sql);
  133. var outlist = new List<Basekl10fInfo>();
  134. if (list != null && list.Count > 0)
  135. {
  136. var size = list.Count;
  137. for (int i = 0; i < size; i++)
  138. {
  139. Basekl10fInfo info = list[i];
  140. info.rank = i + 1;
  141. outlist.Add(info);
  142. }
  143. }
  144. return outlist;
  145. }
  146. }
  147. }
  148. #endregion
  149. }