Пример #1
0
        //public static List<LotteryPlay> SlpList()
        //{
        //    if (slpList.Count == 0)
        //    {
        //        slpList = LpList().Where(n => n.PrizeClass != null).ToList();
        //    }
        //    return slpList;
        //}
        /// <summary>
        /// 判断当期奖金是否超额
        /// </summary>
        /// <param name="BList"></param>
        /// <param name="openNo"></param>
        /// <returns>true为超额</returns>
        public static bool isOutBetMoney(List <BetInfo> BList, List <int> openCode, bool isLimit, decimal betTotalMoney, decimal abTotalMoney, decimal Prizepool, out decimal backTotalMoney)
        {
            var flag = false;

            backTotalMoney = 0;                                     //总返奖金额
            var f3       = openCode.Take(3).ToList();               //前三号字符串
            var f2       = openCode.Take(2).ToList();               //前二号字符串
            var dan      = openCode.Where(n => n % 2 != 0).Count(); //单号个数
            var zhongwei = openCode.OrderBy(n => n).ToList()[2];    //中位值

            foreach (var item in BList)
            {
                decimal backMoney = 0;
                item.WinUnit = isWin(item.BetPlayTypeCode, item.BetNum, openCode, f3, f2, dan, zhongwei, out backMoney);//中奖次数
                if (item.WinUnit > 0)
                {
                    if (!item.IsGetBackPercent)//若不要返点
                    {
                        item.BackMoney = AgentCalculateTool.GetAgentBackMoney_11x5(backMoney, item.GetBackPercent);
                    }
                    else
                    {
                        item.BackMoney = backMoney;
                    }
                    item.BackMoney  = item.BackMoney * (item.BetMoney / item.BetUnit / 2);//(item.BetMoney /item.BetUnit/2)=投注单位(元角分厘)*倍数=中奖金额倍数
                    backTotalMoney += item.BackMoney;
                    //if (SlpList().Count(n => n.BetPlayTypeCode == item.BetPlayTypeCode) == 0)//非特殊型中奖
                    //{

                    //    item.BackMoney = item.WinUnit * item.MaxBackMoney;
                    //    backTotalMoney += item.BackMoney;
                    //}
                    //else
                    //{
                    //    item.BackMoney = SlpList().FirstOrDefault(n => n.SpecialValue == item.WinUnit).PayBack * (item.BetMoney / item.BetUnit / 2);
                    //    backTotalMoney += item.BackMoney;//特殊型按默认奖金算
                    //    item.WinUnit = 1;
                    //}
                    //flag = (backTotalMoney / new decimal(0.995)) > betTotalMoney;//中奖金额是否小于等于总投注的91.5%
                    //flag = backTotalMoney > (Prizepool<=0?(new decimal(0.916) * betTotalMoney):(new decimal(0.8) * betTotalMoney + Prizepool));//中奖金额是否小于等于总投注
                    if (isLimit)
                    {
                        flag = backTotalMoney > (betTotalMoney - abTotalMoney) + (Prizepool < new decimal(0.1) * betTotalMoney ? 0 : Prizepool - new decimal(0.1) * betTotalMoney);
                        if (flag)
                        {
                            break;
                        }
                    }
                }
            }
            return(flag);
        }
        /// <summary>
        /// 获取返点奖金
        /// </summary>
        /// <param name="BetPlayTypeCode"></param>
        /// <param name="percent"></param>
        /// <returns></returns>
        public List <string> GetAgentBackMoneyByCode(int BetPlayTypeCode, decimal percent, string lotteryType)
        {
            List <string> list = new List <string>();

            switch (lotteryType)
            {
            case "ssc":
                list.Add(AgentCalculateTool.GetAgentBackMoney_SSC(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;

            case "11x5":
                list.Add(AgentCalculateTool.GetAgentBackMoney_11x5(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryOpenTool_11x5.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;

            case "dpc":
                list.Add(AgentCalculateTool.GetAgentBackMoney_3D(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryOpenTool_3D.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;
            }
            return(list);
        }