using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using SCC.Interface;
using SCC.Models;
using SCC.Common;
namespace SCC.Services
{
///
/// 开奖3个球号的彩种数据服务
///
public class Open3CodeServices : BaseServices, IOpen3Code
{
///
/// 获取最新一条记录
///
/// 彩种名称
///
public OpenCode3Model GetLastItem(SCCLottery lottery)
{
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(LastItemSql, TableName);
var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var result = LoadData(ds.Tables[0].Rows[0]);
return result;
}
return null;
}
///
/// 获取前一天失败列表
/// 期号格式形如YYMMDDQQ
///
/// 彩种名称
/// 当前彩种每天总期数
///
public List GetYesterdayFailQQList(SCCLottery lottery, int TotalQNum)
{
List result = new List();
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(YesterdayListSql, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
long tempQiHao = 0;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var data = LoadDataList(ds.Tables[0]);
OpenCode3Model item = null;
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQ(i));
item = data.Where(R => R.Term == tempQiHao).FirstOrDefault();
if (item == null)
result.Add(tempQiHao.ToString());
}
}
else
{
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQ(i));
result.Add(tempQiHao.ToString());
}
}
return result;
}
///
/// 获取前一天失败列表
/// 期号格式形如YYMMDDQQQ
///
/// 彩种名称
/// 当前彩种每天总期数
///
public List GetYesterdayFailQQQList(SCCLottery lottery, int TotalQNum)
{
List result = new List();
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(YesterdayListSql, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
var ds = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
long tempQiHao = 0;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var data = LoadDataList(ds.Tables[0]);
OpenCode3Model item = null;
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQQ(i));
item = data.Where(R => R.Term == tempQiHao).FirstOrDefault();
if (item == null)
result.Add(tempQiHao.ToString());
}
}
else
{
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQQ(i));
result.Add(tempQiHao.ToString());
}
}
return result;
}
///
/// 新增彩种开奖数据
///
/// 彩种名称
/// 开奖数据模型
///
public bool AddOpen3Code(SCCLottery lottery, OpenCode3Model model)
{
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(AddItemSql, TableName);
var param = new SqlParameter[]{
new SqlParameter("@Term",model.Term),
new SqlParameter("@OpenCode1",model.OpenCode1),
new SqlParameter("@OpenCode2",model.OpenCode2),
new SqlParameter("@OpenCode3",model.OpenCode3),
new SqlParameter("@OpenTime",model.OpenTime)
};
var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);
return result > 0;
}
#region Sql语句
///
/// 获取最新一条记录的Sql语句
///
private static string LastItemSql = @"SELECT TOP 1 * FROM {0} ORDER BY Term DESC";
///
/// 获取前一天列表的Sql语句
///
private static string YesterdayListSql = @"SELECT * FROM {0}
WHERE CONVERT(varchar(10),OpenTime,112)={1}
ORDER BY OpenTime DESC";
///
/// 获取前一天列表的Sql语句
///
private static string YesterdayListSqlDB3 = @"SELECT Term,OpenCode1,OpenCode2,OpenCode3 FROM {0}
WHERE CONVERT(varchar(10),OpenTime,112)={1}
ORDER BY OpenTime DESC";
///
///
/// 新增开奖数据的Sql语句
///
private static string AddItemSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE Term = @Term)
BEGIN
INSERT INTO {0}(Term,OpenCode1,OpenCode2,OpenCode3,OpenTime,Addtime)
SELECT @Term,@OpenCode1,@OpenCode2,@OpenCode3,@OpenTime,GETDATE()
END";
#endregion
#region MyRegion
///
/// 获取前一天失败列表
/// 期号格式形如YYMMDDQQ
///
/// 彩种名称
/// 当前彩种每天总期数
///
public Dictionary GetYesterdayFailQQListDB3(SCCLottery lottery, int TotalQNum)
{
Dictionary result = new Dictionary();
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(YesterdayListSqlDB3, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
var ds = SqlHelper.ExecuteDatasetDB(CommandType.Text, sqlString);
long tempQiHao = 0;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var data = LoadDataList(ds.Tables[0]);
OpenCode3Model item = null;
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQQ(i));
item = data.Where(R => R.Term == tempQiHao).FirstOrDefault();
if (item == null)
continue;
string matchKJHaoMa = string.Format("{0},{1},{2}", item.OpenCode1, item.OpenCode2, item.OpenCode3);
if (item != null)
result.Add(tempQiHao.ToString(), matchKJHaoMa);
}
}
return result;
}
///
/// 获取今天失败列表
/// 期号格式形如YYMMDDQQ
///
/// 彩种名称
/// 当前彩种每天总期数
///
public Dictionary GetYesterdayFailQQListDB3_toDay(SCCLottery lottery, int TotalQNum)
{
Dictionary result = new Dictionary();
var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
var sqlString = string.Format(YesterdayListSqlDB3, TableName, CommonHelper.SCCSysDateTime.AddDays(0).ToString("yyyyMMdd"));
var ds = SqlHelper.ExecuteDatasetDB(CommandType.Text, sqlString);
long tempQiHao = 0;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
var data = LoadDataList(ds.Tables[0]);
OpenCode3Model item = null;
for (var i = 1; i <= TotalQNum; i++)
{
tempQiHao = Convert.ToInt64(CommonHelper.GenerateTodayQiHaoYYMMDDQQQ(i));
item = data.Where(R => R.Term == tempQiHao).FirstOrDefault();
if (item == null)
continue;
string matchKJHaoMa = string.Format("{0},{1},{2}", item.OpenCode1, item.OpenCode2, item.OpenCode3);
if (item != null)
result.Add(tempQiHao.ToString(), matchKJHaoMa);
}
}
return result;
}
#endregion
}
}