using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.IO; using System.Text; using System.Web.Services; using System.Xml; using System.Xml.Serialization; using CB.Data; using CB.Entity; namespace CB.Web.Kjh.WebServices { /// /// datasafe 的摘要说明 /// [WebService(Namespace = "http://kjh.55128.cn/webservices/", Description = "供数据保障调用的开奖号服务")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class datasafe : System.Web.Services.WebService { [WebMethod(Description = "开奖号信息", CacheDuration = 10)] public string[] GetKjh(int type, int qi) { string[] Number = new string[2]; switch (type) { case 0: FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao); if (entity != null) { Number[0] = entity.Term.ToString().Trim(); Number[1] = entity.OpenCode1.ToString().Trim() + "," + entity.OpenCode2.ToString().Trim() + "," + entity.OpenCode3.ToString().Trim(); } break; case 1: TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao); if (p3entity != null) { Number[0] = p3entity.Term.ToString().Trim(); Number[1] = p3entity.OpenCode1.ToString().Trim() + "," + p3entity.OpenCode2.ToString().Trim() + "," + p3entity.OpenCode3.ToString().Trim(); } break; } return Number; } [WebMethod(Description = "期数信息", CacheDuration = 10)] public int Getqi(int type) { int qi = 0; switch (type) { case 0: FC3DInfo entity = CB.Data.Caches.GetFC3DInfo(qi, OpenCodeType.KaiJiangHao); if (entity != null) { qi = Convert.ToInt32(entity.Term); } break; case 1: TCP3Info p3entity = CB.Data.Caches.GetTCP3Info(qi, OpenCodeType.KaiJiangHao); if (p3entity != null) { qi = Convert.ToInt32(p3entity.Term); } break; } return qi; } [WebMethod(Description = "20:30之后的期数问题", CacheDuration = 10)] public int GetNewqi(int type) { int qi = 0; switch (type) { case 0: qi =Convert.ToInt32(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiHao).Term); break; case 1: qi = Convert.ToInt32(CB.Data.Caches.GetTCP3Info(0, OpenCodeType.KaiJiHao).Term); break; } return qi; } [WebMethod(Description = "首页获取彩种开奖详细", CacheDuration = 10)] public string GetLotteryJson(int type) { string kjinfo = ""; switch (type) { case 1: kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFC3DInfo(0,OpenCodeType.KaiJiangHao)); break; case 2: kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetTCP3Info(0,OpenCodeType.KaiJiangHao)); break; case 3: kjinfo = SerializationHelper.Serialize(CB.Data.Caches.GetFCSSQInfo(0,OpenCodeType.KaiJiangHao)); break; } return kjinfo; } [WebMethod(Description = "开奖数据同步至55125", CacheDuration = 10)] public string GetLotteryAward() { return SerializationHelper.Serialize(LotteryAwardService.GetLotteryAwardList()); } /// /// 序列化 /// public class SerializationHelper { private SerializationHelper() { } private static Dictionary serializer_dict = new Dictionary(); public static XmlSerializer GetSerializer(Type t) { int type_hash = t.GetHashCode(); if (!serializer_dict.ContainsKey(type_hash)) serializer_dict.Add(type_hash, new XmlSerializer(t)); return serializer_dict[type_hash]; } /// /// xml序列化成字符串 /// /// 对象 /// xml字符串 public static string Serialize(object obj) { string returnStr = ""; XmlSerializer serializer = GetSerializer(obj.GetType()); MemoryStream ms = new MemoryStream(); XmlTextWriter xtw = null; StreamReader sr = null; try { xtw = new System.Xml.XmlTextWriter(ms, Encoding.UTF8); xtw.Formatting = System.Xml.Formatting.Indented; serializer.Serialize(xtw, obj); ms.Seek(0, SeekOrigin.Begin); sr = new StreamReader(ms); returnStr = sr.ReadToEnd(); } catch (Exception ex) { throw ex; } finally { if (xtw != null) xtw.Close(); if (sr != null) sr.Close(); ms.Close(); } return returnStr; } /// /// 字符串反序列化 /// /// /// /// public static object DeSerialize(Type type, string s) { byte[] b = System.Text.Encoding.UTF8.GetBytes(s); try { XmlSerializer serializer = GetSerializer(type); return serializer.Deserialize(new MemoryStream(b)); } catch (Exception ex) { throw ex; } } } } }