using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Interface;
using Models;
using Common;
using Models.Entity.LotteryNumDB;
namespace Services
{
public class TrendChartServices : BaseServices
{
///
/// 获取彩种走势图配置信息
///
/// 彩种编号
///
public List GetTrendChartConfig(int LotteryId)
{
List result = new List();
var param = new SqlParameter[]{
new SqlParameter("@Cid",LotteryId)
};
var ds = SqlHelper.ExecuteDataset(CommandType.Text, TrendChartConfigSql, param);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
result = LoadDataList(ds.Tables[0]);
}
return result;
}
///
/// 获取彩种走势图显示项信息
///
/// 配置项编号列表
///
public List GetTrendChartItem(List TrendChartIds)
{
List result = new List();
var querySql = string.Empty;
if (TrendChartIds.Count == 0)
return result;
else if (TrendChartIds.Count == 1)
querySql = string.Format("{0} = {1}", TrendChartItemSql, TrendChartIds[0]);
else
querySql = string.Format("{0} in ({1})", TrendChartItemSql, string.Join(",", TrendChartIds));
var ds = SqlHelper.ExecuteDataset(CommandType.Text, querySql);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
List items = LoadDataList(ds.Tables[0]);
TrendChartItemInfo chartItem = null;
foreach (var dbItem in items)
{
chartItem = new TrendChartItemInfo();
chartItem.Id = dbItem.Id;
chartItem.ChartId = dbItem.ChartId;
chartItem.ChartType = (TrendChartType)Enum.Parse(typeof(TrendChartType), dbItem.ChartType.ToString());
chartItem.ClassName = (ChartItemClassName)Enum.Parse(typeof(ChartItemClassName), dbItem.ClassName.ToString());
chartItem.ChartItemName = dbItem.ChartItemName;
chartItem.Cycle = dbItem.Cycle;
chartItem.ItemMinValue = dbItem.ItemMinValue.HasValue ? dbItem.ItemMinValue.Value : 0;
chartItem.ItemMaxValue = dbItem.ItemMaxValue.HasValue ? dbItem.ItemMaxValue.Value : 0;
chartItem.SplitNumberOfDX = dbItem.SplitNumberOfDX.HasValue ? dbItem.SplitNumberOfDX.Value : 0;
chartItem.ItemCount = dbItem.ItemCount;
chartItem.ItemString = dbItem.ItemString.Split(',');
chartItem.IndexStart = dbItem.IndexStart.HasValue ? dbItem.IndexStart.Value : 0;
chartItem.IndexEnd = dbItem.IndexEnd.HasValue ? dbItem.IndexEnd.Value : 0;
chartItem.DrawLine = dbItem.DrawLine;
chartItem.FuntionType = (ChartItemType)Enum.Parse(typeof(ChartItemType), dbItem.FuntionType.ToString());
chartItem.ChartCssId = dbItem.ChartCssId;
chartItem.OrderBy = dbItem.OrderBy.HasValue ? dbItem.OrderBy.Value : 0;
result.Add(chartItem);
}
}
return result;
}
///
/// 获取所有的走势图样式配置信息
///
///
public List GetChartCssConfigs()
{
List result = new List();
var ds = SqlHelper.ExecuteDataset(CommandType.Text, TrendChartCssSql);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
result = LoadDataList(ds.Tables[0]);
}
return result;
}
///
/// 保存生成的走势图数据
///
/// 彩种
/// 走势图数据
///
public bool SaveTrendChartList(SCCLottery Lottery, List ChartDatas)
{
try
{
SqlParameter[] param = null;
foreach (var data in ChartDatas)
{
param = new SqlParameter[]{
new SqlParameter("@ChartId",data.ChartId),
new SqlParameter("@Term",data.Term),
new SqlParameter("@RecordCount",data.RecordCount),
new SqlParameter("@AllMaxMiss",data.AllMaxMiss.ArrayToString()),
new SqlParameter("@AllTimes",data.AllTimes.ArrayToString()),
new SqlParameter("@AllAvgMiss",data.AllAvgMiss.ArrayToString()),
new SqlParameter("@LastMiss",data.LastMiss.ArrayToString()),
new SqlParameter("@LocalMiss",data.LocalMiss.ArrayToString()),
new SqlParameter("@HtmlData",data.HtmlData),
new SqlParameter("@ChartType",data.ChartType)
};
SqlHelper.ExecuteNonQuery(CommandType.Text, string.Format(SaveTrendChartSql, EnumHelper.GetSCCLotteryTableName(Lottery)), param);
}
return true;
}
catch { }
return false;
}
#region SQL语句
///
/// 获取走势图配置信息的SQL语句
///
private static string TrendChartConfigSql = @"SELECT * FROM DT_TrendChart WHERE Cid = @Cid";
///
/// 获取走势图项配置信息的SQL语句
///
private static string TrendChartItemSql = @"SELECT * FROM DT_TrendChartItem WHERE ChartId";
///
/// 获取走势图样式配置信息的SQL语句
///
private static string TrendChartCssSql = @"SELECT * FROM DT_ChartCssConfig";
///
/// 保存走势图数据的SQL语句
///
private static string SaveTrendChartSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE ChartId = @ChartId AND Term = @Term)
BEGIN
INSERT INTO {0}(ChartId,Term,RecordCount,AllMaxMiss,AllTimes,AllAvgMiss,LastMiss,LocalMiss,HtmlData,ChartType,Addtime)
SELECT @ChartId,@Term,@RecordCount,@AllMaxMiss,@AllTimes,@AllAvgMiss,@LastMiss,@LocalMiss,@HtmlData,@ChartType,GETDATE()
END
ELSE
BEGIN
UPDATE {0}
SET RecordCount = @RecordCount,
AllMaxMiss = @AllMaxMiss,
AllTimes = @AllTimes,
AllAvgMiss = @AllAvgMiss,
LastMiss = @LastMiss,
LocalMiss = @LocalMiss,
HtmlData = @HtmlData,
ChartType = @ChartType
WHERE ChartId = @ChartId AND Term = @Term
END";
#endregion
}
}