TrendChartServices.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using System.Data.SqlClient;
  7. using SCC.Interface;
  8. using SCC.Models;
  9. using SCC.Common;
  10. namespace SCC.Services
  11. {
  12. public class TrendChartServices : BaseServices, ITrendChart
  13. {
  14. /// <summary>
  15. /// 获取彩种走势图配置信息
  16. /// </summary>
  17. /// <param name="LotteryId">彩种编号</param>
  18. /// <returns></returns>
  19. public List<DT_TrendChart> GetTrendChartConfig(int LotteryId)
  20. {
  21. List<DT_TrendChart> result = new List<DT_TrendChart>();
  22. var param = new SqlParameter[]{
  23. new SqlParameter("@Cid",LotteryId)
  24. };
  25. var ds = SqlHelper.ExecuteDataset(CommandType.Text, TrendChartConfigSql, param);
  26. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  27. {
  28. result = LoadDataList<DT_TrendChart>(ds.Tables[0]);
  29. }
  30. return result;
  31. }
  32. /// <summary>
  33. /// 获取彩种走势图显示项信息
  34. /// </summary>
  35. /// <param name="TrendChartIds">配置项编号列表</param>
  36. /// <returns></returns>
  37. public List<TrendChartItemInfo> GetTrendChartItem(List<int> TrendChartIds)
  38. {
  39. List<TrendChartItemInfo> result = new List<TrendChartItemInfo>();
  40. var querySql = string.Empty;
  41. if (TrendChartIds.Count == 0)
  42. return result;
  43. else if (TrendChartIds.Count == 1)
  44. querySql = string.Format("{0} = {1}", TrendChartItemSql, TrendChartIds[0]);
  45. else
  46. querySql = string.Format("{0} in ({1})", TrendChartItemSql, string.Join(",", TrendChartIds));
  47. var ds = SqlHelper.ExecuteDataset(CommandType.Text, querySql);
  48. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  49. {
  50. List<DT_TrendChartItem> items = LoadDataList<DT_TrendChartItem>(ds.Tables[0]);
  51. TrendChartItemInfo chartItem = null;
  52. foreach (var dbItem in items)
  53. {
  54. chartItem = new TrendChartItemInfo();
  55. chartItem.Id = dbItem.Id;
  56. chartItem.ChartId = dbItem.ChartId;
  57. chartItem.ChartType = (TrendChartType)Enum.Parse(typeof(TrendChartType), dbItem.ChartType.ToString());
  58. chartItem.ClassName = (ChartItemClassName)Enum.Parse(typeof(ChartItemClassName), dbItem.ClassName.ToString());
  59. chartItem.ChartItemName = dbItem.ChartItemName;
  60. chartItem.Cycle = dbItem.Cycle;
  61. chartItem.ItemMinValue = dbItem.ItemMinValue.HasValue ? dbItem.ItemMinValue.Value : 0;
  62. chartItem.ItemMaxValue = dbItem.ItemMaxValue.HasValue ? dbItem.ItemMaxValue.Value : 0;
  63. chartItem.SplitNumberOfDX = dbItem.SplitNumberOfDX.HasValue ? dbItem.SplitNumberOfDX.Value : 0;
  64. chartItem.ItemCount = dbItem.ItemCount;
  65. chartItem.ItemString = dbItem.ItemString.Split(',');
  66. chartItem.IndexStart = dbItem.IndexStart.HasValue ? dbItem.IndexStart.Value : 0;
  67. chartItem.IndexEnd = dbItem.IndexEnd.HasValue ? dbItem.IndexEnd.Value : 0;
  68. chartItem.DrawLine = dbItem.DrawLine;
  69. chartItem.FuntionType = (ChartItemType)Enum.Parse(typeof(ChartItemType), dbItem.FuntionType.ToString());
  70. chartItem.ChartCssId = dbItem.ChartCssId;
  71. chartItem.OrderBy = dbItem.OrderBy.HasValue ? dbItem.OrderBy.Value : 0;
  72. result.Add(chartItem);
  73. }
  74. }
  75. return result;
  76. }
  77. /// <summary>
  78. /// 获取所有的走势图样式配置信息
  79. /// </summary>
  80. /// <returns></returns>
  81. public List<ChartCssConfigInfo> GetChartCssConfigs()
  82. {
  83. List<ChartCssConfigInfo> result = new List<ChartCssConfigInfo>();
  84. var ds = SqlHelper.ExecuteDataset(CommandType.Text, TrendChartCssSql);
  85. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  86. {
  87. result = LoadDataList<ChartCssConfigInfo>(ds.Tables[0]);
  88. }
  89. return result;
  90. }
  91. /// <summary>
  92. /// 保存生成的走势图数据
  93. /// </summary>
  94. /// <param name="Lottery">彩种</param>
  95. /// <param name="ChartDatas">走势图数据</param>
  96. /// <returns></returns>
  97. public bool SaveTrendChartList(SCCLottery Lottery, List<TrendChartData> ChartDatas)
  98. {
  99. try
  100. {
  101. SqlParameter[] param = null;
  102. foreach (var data in ChartDatas)
  103. {
  104. param = new SqlParameter[]{
  105. new SqlParameter("@ChartId",data.ChartId),
  106. new SqlParameter("@Term",data.Term),
  107. new SqlParameter("@RecordCount",data.RecordCount),
  108. new SqlParameter("@AllMaxMiss",data.AllMaxMiss.ArrayToString()),
  109. new SqlParameter("@AllTimes",data.AllTimes.ArrayToString()),
  110. new SqlParameter("@AllAvgMiss",data.AllAvgMiss.ArrayToString()),
  111. new SqlParameter("@LastMiss",data.LastMiss.ArrayToString()),
  112. new SqlParameter("@LocalMiss",data.LocalMiss.ArrayToString()),
  113. new SqlParameter("@HtmlData",data.HtmlData),
  114. new SqlParameter("@ChartType",data.ChartType)
  115. };
  116. SqlHelper.ExecuteNonQuery(CommandType.Text, string.Format(SaveTrendChartSql, EnumHelper.GetSCCLotteryTableName(Lottery)), param);
  117. }
  118. return true;
  119. }
  120. catch { }
  121. return false;
  122. }
  123. #region SQL语句
  124. /// <summary>
  125. /// 获取走势图配置信息的SQL语句
  126. /// </summary>
  127. private static string TrendChartConfigSql = @"SELECT * FROM DT_TrendChart WHERE Cid = @Cid";
  128. /// <summary>
  129. /// 获取走势图项配置信息的SQL语句
  130. /// </summary>
  131. private static string TrendChartItemSql = @"SELECT * FROM DT_TrendChartItem WHERE ChartId";
  132. /// <summary>
  133. /// 获取走势图样式配置信息的SQL语句
  134. /// </summary>
  135. private static string TrendChartCssSql = @"SELECT * FROM DT_ChartCssConfig";
  136. /// <summary>
  137. /// 保存走势图数据的SQL语句
  138. /// </summary>
  139. private static string SaveTrendChartSql = @"IF NOT EXISTS(SELECT TOP 1 1 FROM {0} WHERE ChartId = @ChartId AND Term = @Term)
  140. BEGIN
  141. INSERT INTO {0}(ChartId,Term,RecordCount,AllMaxMiss,AllTimes,AllAvgMiss,LastMiss,LocalMiss,HtmlData,ChartType,Addtime)
  142. SELECT @ChartId,@Term,@RecordCount,@AllMaxMiss,@AllTimes,@AllAvgMiss,@LastMiss,@LocalMiss,@HtmlData,@ChartType,GETDATE()
  143. END
  144. ELSE
  145. BEGIN
  146. UPDATE {0}
  147. SET RecordCount = @RecordCount,
  148. AllMaxMiss = @AllMaxMiss,
  149. AllTimes = @AllTimes,
  150. AllAvgMiss = @AllAvgMiss,
  151. LastMiss = @LastMiss,
  152. LocalMiss = @LocalMiss,
  153. HtmlData = @HtmlData,
  154. ChartType = @ChartType
  155. WHERE ChartId = @ChartId AND Term = @Term
  156. END";
  157. #endregion
  158. }
  159. }