using Cache.Entity; using Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static Cache.Entity.EnumFunctionType; namespace Cache.Util { public static class LottryDataHandle { /// /// 东方6+1 转生肖 /// /// /// public static string GetSx(int num) { switch (num) { case 1: return "鼠"; case 2: return "牛"; case 3: return "虎"; case 4: return "兔"; case 5: return "龙"; case 6: return "蛇"; case 7: return "马"; case 8: return "羊"; case 9: return "猴"; case 10: return "鸡"; case 11: return "狗"; case 12: return "猪"; default: return ""; } } /// /// /// /// 类型名 /// 期数 /// 开奖时间 /// 开奖号 /// 开奖详情没有传""或者null /// public static LotteryData GetLotteryData(string Typename, int Term, DateTime Opentime,string ID, IList OpenCode, string Detail,string MenuName = "") { try { LotteryData tmp = new LotteryData() { Term = Term.ToString(), OpenTime = Opentime.ToString(), LotteryName = EnumFunctionType.GetLotteryName(Typename), LotteryType = Typename, MenuName = MenuName, ID = ID }; tmp.Details = new List(); LotteryBallType datatype = EnumFunctionType.GetBallType(Typename); if (datatype != null) { tmp.BallCount = datatype.Count; tmp.RedBall = Array.ConvertAll(OpenCode.Take(datatype.RedCount).ToArray(), s => s.ToString()); if (datatype.BlueCount > 0) { tmp.BlueBall = Array.ConvertAll(OpenCode.Skip(datatype.RedCount).ToArray(), s => s.ToString()); } if (datatype.Count > 1) { LotteryDetail hezhi = new LotteryDetail() { Label = "和值", Value = LotteryUtils.GetSum(OpenCode.Take(datatype.RedCount).ToList()).ToString() }; tmp.Details.Add(hezhi); LotteryDetail kuadu = new LotteryDetail() { Label = "跨度", Value = LotteryUtils.GetSpan(OpenCode.Take(datatype.RedCount).ToList()).ToString() }; tmp.Details.Add(kuadu); LotteryDetail jio = new LotteryDetail() { Label = "奇偶比", Value = LotteryUtils.GetProportionOfJO(OpenCode.Take(datatype.RedCount).ToList()) }; tmp.Details.Add(jio); if (Typename == "DFC_DF6J1")//东方6+1篮球转生sw { int blueball = OpenCode.Skip(datatype.RedCount).ToArray()[0]; tmp.BlueBall = new string[] { GetSx(blueball) }; // Array.ConvertAll(OpenCode.Skip(datatype.RedCount).ToArray(), s => s.ToString()); } } } else { if (Typename == "GPC_SDKLPK3")//快乐扑克3单独处理 { List list = Getklpk3(OpenCode); tmp.Details = list; } else { tmp.BallCount = OpenCode.Count; tmp.RedBall = Array.ConvertAll(OpenCode.ToArray(), s => s.ToString()); } // tmp.BlueBall = OpenCode.Skip(datatype.RedCount).ToArray(); } //要大小比的,要三区比的,要转生肖的,有开奖详情的, if (EnumFunctionType.Sanqu.Contains(Typename)) { LotteryDetail sanqu = new LotteryDetail() { Label = "三区比", Value = LotteryUtils.SsqSanQu(OpenCode.Take(6).ToList())//三区的目前只有双色球一个 }; tmp.Details.Add(sanqu); } //要大小比的 if (EnumFunctionType.DaxiaoType.Contains(Typename)) { int takenum = EnumFunctionType.GetDaXiaoTake(Typename); if (takenum == 0)//无take { if (EnumFunctionType.GetDaxiaoCount(Typename) == 0)//个数默认 { LotteryDetail daxiao = new LotteryDetail() { Label = "大小比", Value = LotteryUtils.GetProportionOfDX(OpenCode, EnumFunctionType.GetDaXiaoZJZ(Typename)) }; tmp.Details.Add(daxiao); } if (EnumFunctionType.GetDaxiaoCount(Typename) > 0)//指定个数 { LotteryDetail daxiao = new LotteryDetail() { Label = "大小比", Value = LotteryUtils.GetProportionOfDX(OpenCode, EnumFunctionType.GetDaXiaoZJZ(Typename), EnumFunctionType.GetDaxiaoCount(Typename)) }; tmp.Details.Add(daxiao); } } else //有take { if (EnumFunctionType.GetDaxiaoCount(Typename) == 0)//个数默认 { LotteryDetail daxiao = new LotteryDetail() { Label = "大小比", Value = LotteryUtils.GetProportionOfDX(OpenCode.Take(takenum).ToList(), EnumFunctionType.GetDaXiaoZJZ(Typename)) }; tmp.Details.Add(daxiao); } if (EnumFunctionType.GetDaxiaoCount(Typename) > 0)//指定个数 { LotteryDetail daxiao = new LotteryDetail() { Label = "大小比", Value = LotteryUtils.GetProportionOfDX(OpenCode.Take(takenum).ToList(), EnumFunctionType.GetDaXiaoZJZ(Typename), EnumFunctionType.GetDaxiaoCount(Typename)) }; tmp.Details.Add(daxiao); } } } if (!string.IsNullOrEmpty(Detail))//开奖详情内容 { var data = ToData(Detail); if (data!=null) { if (!string.IsNullOrEmpty(data.Trje)) { tmp.MoneyCount = data.Trje.Replace(",", ""); } if (!string.IsNullOrEmpty(data.Gdje)) { tmp.MoneyPond = data.Gdje.Replace(",", ""); } int takenum = EnumFunctionType.ContainDetailType.Contains(Typename) ? 1 : 2; List < LotteryResults > list = new List(); if (data.KaiJiangItems!=null) { for (int i = 0; i < data.KaiJiangItems.Count; i++) { int couttotal = 0; int.TryParse(data.KaiJiangItems[i].Total, out couttotal); LotteryResults tmpresults = new LotteryResults() { LevelName=data.KaiJiangItems[i].Name, Count= couttotal, Money=data.KaiJiangItems[i].TotalMoney }; list.Add(tmpresults); } } tmp.ResultsList = list; //List list = new List(); //if (Typename == "QGC_PL3" || Typename == "QGC_FC3D") //{ // list = EnumFunctionType.GetLotteryResultsP3(Detail); //} //else if (Typename == "QGC_PL5") //{ // list = EnumFunctionType.GetLotteryResultsP5(Detail); //} //else //{ // list = EnumFunctionType.GetLotteryResults(Detail, takenum); //} } //string[] results = Detail.Split(new char[] { '^', '|', ',' }); //tmp.MoneyCount = results[0]; //int moneyPond = 0; //int.TryParse(results[1], out moneyPond); //tmp.MoneyPond = moneyPond.ToString(); } return tmp; } catch (Exception ee) { throw; } } public static T ToData(string obj) { try { return JsonConvert.DeserializeObject(obj); } catch (Exception ee) { return default(T); } } /// /// 获取快乐扑克3 /// /// /// public static List Getklpk3(IList OpenCode) { List rtlist = new List(); string[] _pokerSuitName = new string[] { "", "fangpian", "meihua", "hongtao", "heitao" }; foreach (var item in OpenCode) { LotteryDetail tmp = new LotteryDetail(); var pkSuit = item / 100; var pknum = item % 100; var pkstr = pknum.ToString(); if (pknum == 11) pkstr = "J"; else if (pknum == 12) pkstr = "Q"; else if (pknum == 13) pkstr = "K"; else if (pknum == 1) pkstr = "A"; tmp.Value = pkstr; tmp.Label = _pokerSuitName[pkSuit]; rtlist.Add(tmp); } return rtlist; } /// } }