TrendChartServices.cs 8.1 KB

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