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 /// /// 体彩山西泳坛夺金 /// [TableName("tcsxytdj"), PrimaryKey("id")] public class TcsxytdjInfo { /// /// 自动编号 /// 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 遗漏模型 /// /// 出号走势图上的遗漏模型 /// public class TcsxytdjJbzsMissInfo { public string name { get; set; } /// /// 第一位 /// public int[] hm1 { get; set; } /// /// 第二位 /// public int[] hm2 { set; get; } /// /// 第三位 /// public int[] hm3 { get; set; } /// /// 第四位 /// public int[] hm4 { set; get; } } /// /// 出号走势图上的遗漏模型 /// public class TcsxytdjChzsMissInfo { public string name { get; set; } /// /// 组选形态 /// public int[] zxxt { get; set; } /// /// 出号 /// public int[] ch { get; set; } /// /// 大小比 /// public int[] dxb { set; get; } /// /// 奇偶比 /// public int[] job { set; get; } /// /// 质合比 /// public int[] zhb { set; get; } } /// /// 和值走势图上的遗漏模型 /// public class TcsxytdjHzzsMissInfo { public string name { get; set; } /// /// 组选形态 /// public int[] zxxt { get; set; } /// /// 和值 /// public int[] hz { get; set; } } /// /// 大小形态走势图上的遗漏模型 /// public class TcsxytdjDxxtMissInfo { public string name { get; set; } /// /// 大小形态 /// public int[] dxxt { get; set; } } /// /// 奇偶形态走势图上的遗漏模型 /// public class TcsxytdjJoxtMissInfo { public string name { get; set; } /// /// 奇偶形态 /// public int[] joxt { get; set; } } /// /// 质合形态走势图上的遗漏模型 /// public class TcsxytdjZhxtMissInfo { public string name { get; set; } /// /// 质合形态 /// public int[] zhxt { get; set; } } #endregion #region 数据库操作 /// /// 体彩山西泳坛夺金 /// public class TcsxytdjData : DataConnect { private static readonly object _lock = new object(); /// /// 添加数据 /// /// /// public static int Add(TcsxytdjInfo 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.tcsxytdj.ToString()); } catch (Exception) { } return ret; } } } /// /// 最新一期 /// /// public static TcsxytdjInfo GetTcsxytdjNewInfo() { 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++) { TcsxytdjInfo info = list[i]; info.rank = i + 1; outlist.Add(info); } } return outlist; } } public static TcsxytdjInfo 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 }