using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using CP.Common;
using MC.ORM;
using MySql.Data.MySqlClient;
namespace CP.Model
{
#region 新疆福彩25选7
[TableName("fcxj25x7"), PrimaryKey("id")]
public class Fcxj25x7Info
{
///
/// 期数
///
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; }
///
/// 第五个号码
///
public int n5 { get; set; }
///
/// 第六个号码
///
public int n6 { get; set; }
///
/// 第七个号码
///
public int n7 { get; set; }
///
/// 特别号码
///
public int n8 { get; set; }
///
/// 和值
///
public int hz { get; set; }
///
/// 跨度
///
public int kd { get; set; }
///
/// AC值
///
public int ac { get; set; }
///
/// 星期几
///
public int week { get; set; }
///
/// 开奖日期
///
public DateTime date { get; set; }
///
/// 在列表中的排名..
/// 用于遗漏计算.
///
[Ignore]
public int rank { get; set; }
///
/// 号码
///
public string opencode { get; set; }
}
#endregion
#region 25选7完整模型
///
/// 福彩新疆25选7完整模型
///
[TableName("fcxj25x7"), PrimaryKey("id")]
public class Fcxj25x7LongInfo : Fcxj25x7Info
{
///
/// 自动编号
///
public int id { get; set; }
///
/// 特等奖注数
///
public string zj { get; set; }
///
/// 特等奖金额
///
public string jo { get; set; }
///
/// 一等奖注数
///
public string zj1 { get; set; }
///
/// 一等奖金额
///
public string jo1 { get; set; }
///
/// 二等奖注数
///
public string zj2 { get; set; }
///
/// 二等奖金额
///
public string jo2 { get; set; }
///
/// 三等奖注数
///
public string zj3 { get; set; }
///
/// 三等奖金额
///
public string jo3 { get; set; }
///
/// 四等奖注数
///
public string zj4 { get; set; }
///
/// 四等奖金额
///
public string jo4 { get; set; }
///
/// 五等奖注数
///
public string zj5 { get; set; }
///
/// 五等奖金额
///
public string jo5 { get; set; }
///
/// 六等奖注数
///
public string zj6 { get; set; }
///
/// 六等奖金额
///
public string jo6 { get; set; }
///
/// 七等奖注数
///
public string zj7 { get; set; }
///
/// 七等奖金额
///
public string jo7 { get; set; }
///
/// 开奖详情json
///
public string winbonus { set; get; }
///
/// 添加时间
///
public DateTime addtime { get; set; }
///
/// 下期奖池
///
public string nextmoney { get; set; }
///
/// 当期投注金额
///
public string tzmoney { get; set; }
///
/// 是否复查开奖号
///
public int ischeck { get; set; }
///
/// 第1步(开奖号)状态 -1:未添加 2:完成 3:复查完成
///
public int step1state { set; get; }
///
/// 第2步(开奖详情)状态 -1:未添加 1:完成一半 2:完成 3:复查完成
///
public int step2state { set; get; }
[Ignore]
public string isComplete
{
get
{
if (step2state == 3)
return "是";
return "否";
}
}
}
#endregion
#region 25x7遗漏模型
///
/// 25选7出号走势图上的遗漏模型
///
public class Fcxj25x7MissInfo
{
///
/// 名称
///
public string name { get; set; }
///
/// 号码遗漏
///
public int[] ch { get; set; }
}
///
/// 和值遗漏模型
///
public class Fcxj25x7HzMissInfo
{
public string name { get; set; }
public int[] hz { get; set; }
public int[] hzjo { get; set; }
public int[] hw { get; set; }
public int[] hwdx { get; set; }
public int[] hwjo { get; set; }
}
///
/// 跨度值遗漏模型
///
public class Fcxj25x7KdMissInfo
{
///
/// 名称
///
public string name { get; set; }
///
/// 跨度
///
public int[] kd { get; set; }
///
///跨度奇偶
///
public int[] jo { get; set; }
///
/// 跨度大小
///
public int[] dx { get; set; }
///
/// 跨度质合
///
public int[] zh { get; set; }
}
#endregion
///
/// 新疆25选7的数据库操作.
///
public class Fcxj25x7Data : DataConnect
{
///
/// 数据库中取出所有 新疆25选7数据
///
///
public static List GetFcxj25x7List()
{
List list = new List();
string sql = string.Format("order by qi asc");
DataConnect dc = new DataConnect();
list = dc.db.Fetch(sql);
if (list != null && list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
list[i].rank = i + 1;
}
}
return list;
}
#region 开奖公告相关方法
///
/// 获取开奖列表
///
/// 条数
/// 默认0只有开奖号数据 1 带有开机号 2 带有试机号
///
public static List GetList(int n = 30, bool isall = false)
{
string sql = $"where n1 > -1 order by qi desc limit {n}";
if (isall)
{
sql = $"where n1 > -1 order by qi desc";
}
using (Database db = new Database(mysql, MySqlClientFactory.Instance))
{
return db.Fetch(sql);
}
}
///
/// 获取最新开奖信息
///
///
public static Fcxj25x7LongInfo GetFcxj25X7NewInfo()
{
string sql = string.Format("where n1>-1 order by qi desc limit 1 ");
DataConnect dc = new DataConnect();
return dc.db.SingleOrDefault(sql);
}
///
/// 获取最新30条开奖信息
///
///
public static List GetFcxj25x7Top30(int n = 30)
{
string sql = string.Format($"order by qi desc limit {n}");
DataConnect dc = new DataConnect();
return dc.db.Fetch(sql);
}
#region 根据期数获取某期开奖信息
///
/// 根据期数获取某期开奖信息
///
///
///
public static Fcxj25x7LongInfo GetFcxj25x7InfoByQi(int qi)
{
string sql = string.Empty;
if (qi == 0)
sql = string.Format("order by qi desc limit 1");
else
sql = string.Format("where qi={0} limit 1", qi);
DataConnect dc = new DataConnect();
Fcxj25x7LongInfo info = dc.db.SingleOrDefault(sql);
return info;
}
#endregion
#region 根据年份取出当年所有期数
///
/// 根据年份取出当年所有期数
///
///
///
public static List GetFcxj25x7QiListByYear(int year)
{
List rlist = new List();
string sql = string.Format("where qi like '{0}%' order by qi desc", year);
DataConnect dc = new DataConnect();
var list = dc.db.Fetch(sql);
if (list != null && list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
rlist.Add(list[i].qi);
}
}
return rlist;
}
#endregion
#endregion
#region 开奖号抓取相关数据层方法
private static readonly object _lock = new object();
public static void Add(Fcxj25x7LongInfo info)
{
if (info == null)
return;
if (info.qi <= 0)
return;
info.opencode = $"{info.n1:00},{info.n2:00},{info.n3:00},{info.n4:00},{info.n5:00},{info.n6:00},{info.n7:00}+{info.n8:00}";
//和值
info.hz = info.n1 + info.n2 + info.n3 + info.n4 + info.n5 + info.n6 + info.n7;
//星期
info.week = Utils.GetIntWeek(info.date.DayOfWeek.ToString());
List kjh = new List { info.n1, info.n2, info.n3, info.n4, info.n5, info.n6, info.n7 };
kjh.Sort();
info.n1 = kjh[0];
info.n2 = kjh[1];
info.n3 = kjh[2];
info.n4 = kjh[3];
info.n5 = kjh[4];
info.n6 = kjh[5];
info.n7 = kjh[6];
//AC值
string[] kjhstr = { info.n1.ToString(), info.n2.ToString(), info.n3.ToString(), info.n4.ToString(), info.n5.ToString(), info.n6.ToString(), info.n7.ToString() };
//检查开奖号是否有重复值
int[] array = { info.n1, info.n2, info.n3, info.n4, info.n5, info.n6, info.n7 };
info.ac = ToolUtils.GetAC(kjhstr);
info.kd = info.n7 - info.n1;
lock (_lock)
{
using (Database db = new Database(mysql, MySqlClientFactory.Instance))
{
if (db.Exists($"where qi={info.qi}"))
return;
db.Insert(info);
try
{
//更新api
DoHttpHelp.UpdateWebApi(DFEnum.fcxj25x7.ToString());
}
catch (Exception) { }
}
}
}
public static void Update(Fcxj25x7LongInfo model)
{
if (model == null)
return;
using (Database db = new Database(mysql, MySqlClientFactory.Instance))
{
var entity = db.SingleOrDefault(model.id);
db.Update(entity);
}
}
public static Fcxj25x7LongInfo GetLastOne()
{
using (Database db = new Database(mysql, MySqlClientFactory.Instance))
{
var entity = db.SingleOrDefault($"order by qi desc limit 1");
return entity;
}
}
#endregion
}
}