using System; using System.Collections.Generic; using System.Linq; using System.Text; using MC.ORM; using CP.Common; using MySql.Data.MySqlClient; namespace CP.Model { #region model /// /// 体彩河南快赢481 /// [TableName("tchnky481"), PrimaryKey("id")] public class Tchnky481Info { /// /// 自动编号 /// public int id { get; set; } /// /// 期号 /// public int qi { get; set; } /// /// 号码一 /// public int n1 { get; set; } /// /// 号码二 /// public int n2 { get; set; } /// /// 号码三 /// public int n3 { get; set; } /// /// 号码四 /// public int n4 { get; set; } /// /// 开奖号字串 /// 01,02,03,04,05 /// public string opencode { get; set; } /// /// 和值 /// public int hz { get; set; } /// /// 跨度 /// public int kd { get; set; } /// /// 开奖时间 /// public DateTime date { get; set; } /// /// 数据入库时间 /// public DateTime addtime { get; set; } /// /// 是否有错误标记 0:无 1:有 /// public int iserror { set; get; } /// /// 是否有异常 0:无异常 1:有异常 2:人工已处理无异常 /// public int isexception { set; get; } /// /// 来源 0:mongo 1:后台手工 /// public int origin { set; get; } [Ignore] public int rank { get; set; } } #endregion #region 数据库操作 /// /// 体彩河南快赢481 /// public class Tchnky481Data : DataConnect { private static readonly object _lock = new object(); /// /// 添加数据 /// /// /// public static int Add(Tchnky481Info model) { if (model == null && model.id <= 0) return 0; List kjh = new List() { model.n1,model.n2,model.n3, model.n4}; model.opencode = $"{model.n1},{model.n2},{model.n3},{model.n4}"; model.hz = kjh.Sum(); model.kd = kjh.Max() - kjh.Min(); model.addtime = DateTime.Now; lock (_lock) { using (Database db = new Database(mysql, MySqlClientFactory.Instance)) { if (db.Exists($"where qi={model.qi}")) return 0; int ret = TypeConverter.ObjectToInt(db.Insert(model)); try { //更新api DoHttpHelp.UpdateWebApi(GPEnum.tchnky481.ToString()); } catch (Exception) { } return ret; } } } /// /// 最新一期 /// /// public static Tchnky481Info GetTchnky481NewInfo() { string sql = string.Format("where n1>-1 order by qi desc limit 1 "); using (Database db = new Database(mysql, MySqlClientFactory.Instance)) { return db.SingleOrDefault(sql); } } /// /// 最近N期的数据列表 /// /// public static List GetList() { const string sql = "order by qi desc limit 2000"; using (Database db = new Database(mysql, MySqlClientFactory.Instance)) { var list = db.Fetch(sql); var outlist = new List(); if (list != null && list.Count > 0) { var size = list.Count; for (int i = 0; i < size; i++) { Tchnky481Info info = list[i]; info.rank = i + 1; outlist.Add(info); } } return outlist; } } public static Tchnky481Info GetNewQiTop1(int dateint) { string sql = string.Empty; if (dateint == 0) { sql = string.Format("order by qi desc limit 1"); } else { string _qistr = dateint.ToString() + "00"; sql = string.Format("where qi<{0} order by qi desc limit 1", _qistr); } using (Database db = new Database(mysql, MySqlClientFactory.Instance)) { return db.SingleOrDefault(sql); } } /// /// 返回指定条件的最新期数,dateint=0,返回所有数据中的最新一条,即无附加条件的最新。 /// 用于组合今天,昨天,前天的查询条件。 /// /// /// public static string GetNewQiTop1Qi(int dateint) { int qi = TypeConverter.ObjectToInt(GetNewQiTop1(dateint).qi, 0); return qi.ToString(); } /// /// 某一天的 /// /// /// /// public static List GetOneDayKjList(DateTime sqi, DateTime eqi) { string sql = string.Format("where date BETWEEN '{0}' AND '{1}'", sqi, eqi); using (Database db = new Database(mysql, MySqlClientFactory.Instance)) { List list = db.Fetch(sql); if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (list[i].qi.ToString().Length > 8) { list[i].qi = TypeConverter.StrToInt(list[i].qi.ToString().Substring(2), 0); } } } return list; } } } #endregion }