123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- 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
- {
- /// <summary>
- /// 东方6+1 转生肖
- /// </summary>
- /// <param name="num"></param>
- /// <returns></returns>
- 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 "";
- }
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="Typename">类型名</param>
- /// <param name="Term">期数</param>
- /// <param name="Opentime">开奖时间</param>
- /// <param name="OpenCode">开奖号</param>
- /// <param name="Detail">开奖详情没有传""或者null</param>
- /// <returns></returns>
- public static LotteryData GetLotteryData(string Typename, int Term, DateTime Opentime,string ID, IList<int> 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<LotteryDetail>();
- LotteryBallType datatype = EnumFunctionType.GetBallType(Typename);
- if (datatype != null)
- {
- tmp.BallCount = datatype.Count;
- tmp.RedBall = Array.ConvertAll<int, string>(OpenCode.Take(datatype.RedCount).ToArray(), s => s.ToString());
- if (datatype.BlueCount > 0)
- {
- tmp.BlueBall = Array.ConvertAll<int, string>(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<int, string>(OpenCode.Skip(datatype.RedCount).ToArray(), s => s.ToString());
- }
- }
- }
- else
- {
- if (Typename == "GPC_SDKLPK3")//快乐扑克3单独处理
- {
- List<LotteryDetail> list = Getklpk3(OpenCode);
- tmp.Details = list;
- }
- else
- {
- tmp.BallCount = OpenCode.Count;
- tmp.RedBall = Array.ConvertAll<int, string>(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<KaijiangDetailsEntity>(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<LotteryResults>();
- 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<LotteryResults> list = new List<LotteryResults>();
- //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<T>(string obj)
- {
- try
- {
- return JsonConvert.DeserializeObject<T>(obj);
- }
- catch (Exception ee)
- {
- return default(T);
- }
- }
- /// <summary>
- /// 获取快乐扑克3
- /// </summary>
- /// <param name="OpenCode"></param>
- /// <returns></returns>
- public static List<LotteryDetail> Getklpk3(IList<int> OpenCode)
- {
- List<LotteryDetail> rtlist = new List<LotteryDetail>();
- 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;
- }
- /// <summary>
- }
- }
|