datasafe.asmx.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.IO;
  6. using System.Text;
  7. using System.Web.Services;
  8. using System.Xml;
  9. using System.Xml.Serialization;
  10. using CB.Data;
  11. using CB.Entity;
  12. namespace CB.Web.Kjh.WebServices
  13. {
  14. /// <summary>
  15. /// datasafe 的摘要说明
  16. /// </summary>
  17. [WebService(Namespace = "http://kjh.55128.cn/webservices/", Description = "<span style=\"font-size:20px;font-family:'微软雅黑'\">供数据保障调用的开奖号服务</span>")]
  18. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  19. [ToolboxItem(false)]
  20. public class datasafe : System.Web.Services.WebService
  21. {
  22. [WebMethod(Description = "开奖号信息", CacheDuration = 10)]
  23. public string[] GetKjh(int type, int qi)
  24. {
  25. string[] Number = new string[2];
  26. switch (type)
  27. {
  28. case 0:
  29. FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao);
  30. if (entity != null)
  31. {
  32. Number[0] = entity.Term.ToString().Trim();
  33. Number[1] = entity.OpenCode1.ToString().Trim() + "," + entity.OpenCode2.ToString().Trim() + "," + entity.OpenCode3.ToString().Trim();
  34. }
  35. break;
  36. case 1:
  37. TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao);
  38. if (p3entity != null)
  39. {
  40. Number[0] = p3entity.Term.ToString().Trim();
  41. Number[1] = p3entity.OpenCode1.ToString().Trim() + "," + p3entity.OpenCode2.ToString().Trim() + "," + p3entity.OpenCode3.ToString().Trim();
  42. }
  43. break;
  44. }
  45. return Number;
  46. }
  47. [WebMethod(Description = "期数信息", CacheDuration = 10)]
  48. public int Getqi(int type)
  49. {
  50. int qi = 0;
  51. switch (type)
  52. {
  53. case 0:
  54. FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao);
  55. if (entity != null)
  56. {
  57. qi = Convert.ToInt32(entity.Term);
  58. }
  59. break;
  60. case 1:
  61. TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao);
  62. if (p3entity != null)
  63. {
  64. qi = Convert.ToInt32(p3entity.Term);
  65. }
  66. break;
  67. }
  68. return qi;
  69. }
  70. [WebMethod(Description = "20:30之后的期数问题", CacheDuration = 10)]
  71. public int GetNewqi(int type)
  72. {
  73. int qi = 0;
  74. switch (type)
  75. {
  76. case 0:
  77. qi =Convert.ToInt32(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiHao).Term);
  78. break;
  79. case 1:
  80. qi = Convert.ToInt32(CB.Data.Caches.GetTCP3Info(0, OpenCodeType.KaiJiHao).Term);
  81. break;
  82. }
  83. return qi;
  84. }
  85. [WebMethod(Description = "首页获取彩种开奖详细", CacheDuration = 10)]
  86. public string GetLotteryJson(int type)
  87. {
  88. string kjinfo = "";
  89. switch (type)
  90. {
  91. case 1:
  92. kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiangHao));
  93. break;
  94. case 2:
  95. kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetTCP3Info(0,OpenCodeType.KaiJiangHao));
  96. break;
  97. case 3:
  98. kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFCSSQInfo(0,OpenCodeType.KaiJiangHao));
  99. break;
  100. }
  101. return kjinfo;
  102. }
  103. [WebMethod(Description = "开奖数据同步至55125", CacheDuration = 10)]
  104. public string GetLotteryAward()
  105. {
  106. return SerializationHelper.Serialize(LotteryAwardService.GetLotteryAwardList());
  107. }
  108. /// <summary>
  109. /// 序列化
  110. /// </summary>
  111. public class SerializationHelper
  112. {
  113. private SerializationHelper()
  114. { }
  115. private static Dictionary<int, XmlSerializer> serializer_dict = new Dictionary<int, XmlSerializer>();
  116. public static XmlSerializer GetSerializer(Type t)
  117. {
  118. int type_hash = t.GetHashCode();
  119. if (!serializer_dict.ContainsKey(type_hash))
  120. serializer_dict.Add(type_hash, new XmlSerializer(t));
  121. return serializer_dict[type_hash];
  122. }
  123. /// <summary>
  124. /// xml序列化成字符串
  125. /// </summary>
  126. /// <param name="obj">对象</param>
  127. /// <returns>xml字符串</returns>
  128. public static string Serialize(object obj)
  129. {
  130. string returnStr = "";
  131. XmlSerializer serializer = GetSerializer(obj.GetType());
  132. MemoryStream ms = new MemoryStream();
  133. XmlTextWriter xtw = null;
  134. StreamReader sr = null;
  135. try
  136. {
  137. xtw = new System.Xml.XmlTextWriter(ms, Encoding.UTF8);
  138. xtw.Formatting = System.Xml.Formatting.Indented;
  139. serializer.Serialize(xtw, obj);
  140. ms.Seek(0, SeekOrigin.Begin);
  141. sr = new StreamReader(ms);
  142. returnStr = sr.ReadToEnd();
  143. }
  144. catch (Exception ex)
  145. {
  146. throw ex;
  147. }
  148. finally
  149. {
  150. if (xtw != null)
  151. xtw.Close();
  152. if (sr != null)
  153. sr.Close();
  154. ms.Close();
  155. }
  156. return returnStr;
  157. }
  158. /// <summary>
  159. /// 字符串反序列化
  160. /// </summary>
  161. /// <param name="type"></param>
  162. /// <param name="s"></param>
  163. /// <returns></returns>
  164. public static object DeSerialize(Type type, string s)
  165. {
  166. byte[] b = System.Text.Encoding.UTF8.GetBytes(s);
  167. try
  168. {
  169. XmlSerializer serializer = GetSerializer(type);
  170. return serializer.Deserialize(new MemoryStream(b));
  171. }
  172. catch (Exception ex)
  173. {
  174. throw ex;
  175. }
  176. }
  177. }
  178. }
  179. }