示例#1
0
 /// <summary>
 /// 保存生成的走势图数据
 /// </summary>
 /// <param name="Lottery">彩种</param>
 /// <param name="ChartDatas">走势图数据</param>
 /// <returns></returns>
 public bool SaveTrendChartList(SCCLottery Lottery, List <TrendChartData> ChartDatas)
 {
     try
     {
         SqlParameter[] param = null;
         foreach (var data in ChartDatas)
         {
             param = new SqlParameter[] {
                 new SqlParameter("@ChartId", data.ChartId),
                 new SqlParameter("@Term", data.Term),
                 new SqlParameter("@RecordCount", data.RecordCount),
                 new SqlParameter("@AllMaxMiss", data.AllMaxMiss.ArrayToString()),
                 new SqlParameter("@AllTimes", data.AllTimes.ArrayToString()),
                 new SqlParameter("@AllAvgMiss", data.AllAvgMiss.ArrayToString()),
                 new SqlParameter("@LastMiss", data.LastMiss.ArrayToString()),
                 new SqlParameter("@LocalMiss", data.LocalMiss.ArrayToString()),
                 new SqlParameter("@HtmlData", data.HtmlData),
                 new SqlParameter("@ChartType", data.ChartType)
             };
             SqlHelper.ExecuteNonQuery(CommandType.Text, string.Format(SaveTrendChartSql, EnumHelper.GetSCCLotteryTableName(Lottery)), param);
         }
         return(true);
     }
     catch { }
     return(false);
 }
示例#2
0
        /// <summary>
        /// 获取前一天失败列表
        /// 期号格式形如YYMMDDQQ
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="TotalQNum">当前彩种每天总期数</param>
        /// <returns></returns>
        public List <string> GetYesterdayFailQQList(SCCLottery lottery, int TotalQNum)
        {
            List <string> result    = new List <string>();
            var           TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var           sqlString = string.Format(YesterdayListSql, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
            var           ds        = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
            long          tempQiHao = 0;

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var            data = LoadDataList <OpenCode8Model>(ds.Tables[0]);
                OpenCode8Model item = null;
                for (var i = 1; i <= TotalQNum; i++)
                {
                    tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQ(i));
                    item      = data.Where(R => R.Term == tempQiHao).FirstOrDefault();
                    if (item == null)
                    {
                        result.Add(tempQiHao.ToString());
                    }
                }
            }
            else
            {
                for (var i = 1; i <= TotalQNum; i++)
                {
                    tempQiHao = Convert.ToInt64(CommonHelper.GenerateYesterdayQiHaoYYMMDDQQ(i));
                    result.Add(tempQiHao.ToString());
                }
            }
            return(result);
        }
示例#3
0
        /// <summary>
        /// 新增彩种开奖数据
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="model">开奖数据模型</param>
        /// <returns></returns>
        public bool AddOpen21Code(SCCLottery lottery, OpenCode21Model model)
        {
            var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var sqlString = string.Format(AddItemSql, TableName);
            var param     = new SqlParameter[] {
                new SqlParameter("@Term", model.Term),
                new SqlParameter("@OpenCode1", model.OpenCode1),
                new SqlParameter("@OpenCode2", model.OpenCode2),
                new SqlParameter("@OpenCode3", model.OpenCode3),
                new SqlParameter("@OpenCode4", model.OpenCode4),
                new SqlParameter("@OpenCode5", model.OpenCode5),
                new SqlParameter("@OpenCode6", model.OpenCode6),
                new SqlParameter("@OpenCode7", model.OpenCode7),
                new SqlParameter("@OpenCode8", model.OpenCode8),
                new SqlParameter("@OpenCode9", model.OpenCode9),
                new SqlParameter("@OpenCode10", model.OpenCode10),
                new SqlParameter("@OpenCode11", model.OpenCode11),
                new SqlParameter("@OpenCode12", model.OpenCode12),
                new SqlParameter("@OpenCode13", model.OpenCode13),
                new SqlParameter("@OpenCode14", model.OpenCode14),
                new SqlParameter("@OpenCode15", model.OpenCode15),
                new SqlParameter("@OpenCode16", model.OpenCode16),
                new SqlParameter("@OpenCode17", model.OpenCode17),
                new SqlParameter("@OpenCode18", model.OpenCode18),
                new SqlParameter("@OpenCode19", model.OpenCode19),
                new SqlParameter("@OpenCode20", model.OpenCode20),
                new SqlParameter("@OpenCode21", model.OpenCode21),
                new SqlParameter("@OpenTime", model.OpenTime),
                new SqlParameter("@ID", Guid.NewGuid().ToString().Replace("-", ""))
            };
            var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);

            return(result > 0);
        }
示例#4
0
        /// <summary>
        /// 获取前一天失败列表
        /// 期号格式形如YYMMDDQQQ
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="Terms">当前彩种当天期数列表</param>
        /// <returns></returns>
        public List <string> GetYesterdayFailQQQList(SCCLottery lottery, List <string> Terms)
        {
            List <string> result    = new List <string>();
            var           TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var           sqlString = string.Format(YesterdayListSql, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
            var           ds        = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var             data = LoadDataList <OpenCode21Model>(ds.Tables[0]);
                OpenCode21Model item = null;
                foreach (var term in Terms)
                {
                    item = data.Where(R => R.Term == Convert.ToInt64(term)).FirstOrDefault();
                    if (item == null)
                    {
                        result.Add(term);
                    }
                }
                return(result);
            }
            else
            {
                return(Terms);
            }
        }
示例#5
0
        /// <summary>
        /// 组装公共记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private string AppendCommonResult(DataTable data, SCCLottery type)
        {
            List <GPCSSCHistoryLotteryViewEntity> res = new List <GPCSSCHistoryLotteryViewEntity>();

            if (data.Rows.Count > 0)
            {
                //总共球个数
                int total = type.GetEnumText().TryToInt32();

                for (int j = 0; j < data.Rows.Count; j++)
                {
                    //开奖号集合
                    List <int>    openCodeList = new List <int>();
                    StringBuilder builder      = new StringBuilder();

                    for (int i = 1; i <= total; i++)
                    {
                        int openCode = data.Rows[j]["OpenCode" + i].TryToInt32();
                        openCodeList.Add(openCode);
                    }
                    builder.Append(GetOpenCodeTemplate(type, openCodeList));

                    res.Add(new GPCSSCHistoryLotteryViewEntity
                    {
                        Term           = data.Rows[j]["Term"].ToStringEx(),
                        OpenTime       = data.Rows[j]["OpenTime"].TryToDateTimeToString("yyyy-MM-dd HH:mm:ss"),
                        NormalOpenCode = builder.ToString(),
                        Span           = LotteryUtils.GetSpan(openCodeList).ToString(),
                        SumValue       = LotteryUtils.GetSum(openCodeList, GetSumNumberCount(type)).ToString(),
                    });
                }
            }

            return(res.ToJson());
        }
示例#6
0
        /// <summary>
        /// 组装查询语句
        /// </summary>
        /// <param name="type">枚举码</param>
        /// <param name="arg"></param>
        /// <returns></returns>
        private string GetSeleteSQL(SCCLottery type, HistoryLotteryArgEnyity arg)
        {
            StringBuilder builder = new StringBuilder();
            string        res     = String.Empty;

            int    total     = type.GetEnumText().TryToInt32();
            string tableName = type.GetSCCLotteryTableName();

            for (int i = 1; i <= total; i++)
            {
                builder.Append("[OpenCode" + i + "],");
            }

            if (arg.TotalRecord > 0)
            {
                res = string.Format(GetLotterySqlByTableNameWithTop, arg.TotalRecord, StringHelper.DelLastChar(builder.ToString(), ","), tableName);
            }
            else if (!string.IsNullOrEmpty(arg.StartTime))
            {
                string time = arg.StartTime.CheckDateTime()
                    ? arg.StartTime
                    : DateTimeHelper.Now.AddDays(-7).ToString("yyyy-MM-dd");

                res = string.Format(GetLotterySqlByTableNameWithStartTime, StringHelper.DelLastChar(builder.ToString(), ","), tableName, time);
            }
            else
            {
                res = string.Format(GetLotterySqlByTableNameWithTop, "20", StringHelper.DelLastChar(builder.ToString(), ","), tableName);
            }

            return(res);
        }
示例#7
0
        /// <summary>
        /// 获取彩种大小比分割值
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        protected int GetSizeRatioSplitNumber(SCCLottery type)
        {
            int res = -1;

            switch (type)
            {
            case SCCLottery.FC3D:
                res = 4;
                break;

            case SCCLottery.SSQ:
                res = 17;
                break;

            case SCCLottery.PL3:
                res = 5;
                break;

            case SCCLottery.DLT:
                res = 18;
                break;

            case SCCLottery.HD15X5:
                res = 30;
                break;
            }
            return(res);
        }
示例#8
0
        /// <summary>
        /// 新增彩种开奖数据
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="model">开奖数据模型</param>
        /// <returns></returns>
        public bool AddOpen21Code(SCCLottery lottery, OpenCode21Model model)
        {
            var TableName = lottery.GetSCCLotteryTableName();
            var sqlString = string.Format(AddItemSql, TableName);

            DbParameter[] param = new DbParameter[] {
                new SqlParameter("@Term", model.Term),
                new SqlParameter("@OpenCode1", model.OpenCode1),
                new SqlParameter("@OpenCode2", model.OpenCode2),
                new SqlParameter("@OpenCode3", model.OpenCode3),
                new SqlParameter("@OpenCode4", model.OpenCode4),
                new SqlParameter("@OpenCode5", model.OpenCode5),
                new SqlParameter("@OpenCode6", model.OpenCode6),
                new SqlParameter("@OpenCode7", model.OpenCode7),
                new SqlParameter("@OpenCode8", model.OpenCode8),
                new SqlParameter("@OpenCode9", model.OpenCode9),
                new SqlParameter("@OpenCode10", model.OpenCode10),
                new SqlParameter("@OpenCode11", model.OpenCode11),
                new SqlParameter("@OpenCode12", model.OpenCode12),
                new SqlParameter("@OpenCode13", model.OpenCode13),
                new SqlParameter("@OpenCode14", model.OpenCode14),
                new SqlParameter("@OpenCode15", model.OpenCode15),
                new SqlParameter("@OpenCode16", model.OpenCode16),
                new SqlParameter("@OpenCode17", model.OpenCode17),
                new SqlParameter("@OpenCode18", model.OpenCode18),
                new SqlParameter("@OpenCode19", model.OpenCode19),
                new SqlParameter("@OpenCode20", model.OpenCode20),
                new SqlParameter("@OpenCode21", model.OpenCode21),
                new SqlParameter("@OpenTime", model.OpenTime),
                new SqlParameter("@ID", Guid.NewGuid().ToString().Replace("-", ""))
            };
            var result = this.BaseRepository(DatabaseLinksEnum.LotteryNumber).ExecuteBySql(sqlString, param);

            return(result > 0);
        }
示例#9
0
        public ActionResult GetTodaysLottery()
        {
            Dictionary <string, SCCConfig> dict = GetTodayLotteryDict();
            List <TodaysLotteryViewEntity> obj  = new List <TodaysLotteryViewEntity>();

            foreach (KeyValuePair <string, SCCConfig> pair in dict)
            {
                SCCConfig  config = pair.Value;
                SCCLottery type   = (SCCLottery)Enum.Parse(typeof(SCCLottery), config.EnumCode, true);
                //当前彩种今天真实开始开奖时间
                DateTime todayRealStartOpentime = (DateTimeHelper.Now.ToString("yyyy-MM-dd") + " " + config.StartHour + ":" + config.StartMinute).TryToDateTime();
                //如果当前时间大于当前彩种今天真实开始开奖时间,则忽略
                if (DateTimeHelper.Now < todayRealStartOpentime)
                {
                    string lastTerm = qgfc3Dbll.GetNewTermByTableName(type.GetSCCLotteryTableName());
                    obj.Add(new TodaysLotteryViewEntity
                    {
                        LotteryName = config.LotteryName,
                        Term        = lastTerm,
                        OpenTime    = todayRealStartOpentime,
                        MainUrl     = config.MainUrl,
                        EnumCode    = config.EnumCode
                    });
                }
            }
            obj = obj.OrderBy(o => o.OpenTime).ToList();
            return(Success("操作成功", obj.ToJson()));
        }
示例#10
0
        /// <summary>
        /// 获取开奖历史
        /// </summary>
        /// <param name="type"></param>
        /// <param name="arg"></param>
        /// <returns></returns>
        private string GetResultByEnumCode(SCCLottery type, HistoryLotteryArgEnyity arg)
        {
            string    res  = String.Empty;
            DataTable data = GetData(type, arg);

            switch (type)
            {
            case SCCLottery.FC3D:
                res = AppendFC3DResult(data, SCCLottery.FC3D);
                break;

            case SCCLottery.SSQ:
                res = AppendSSQResult(data, SCCLottery.SSQ);
                break;

            case SCCLottery.QLC:
                res = AppendQLCResult(data, SCCLottery.QLC);
                break;

            default:
                res = AppendCommonResult(data, type);
                break;
            }
            return(res);
        }
示例#11
0
        /// <summary>
        /// 查询数据集
        /// </summary>
        /// <param name="type"></param>
        /// <param name="arg"></param>
        /// <returns></returns>
        private DataTable GetData(SCCLottery type, HistoryLotteryArgEnyity arg)
        {
            //组装查询语句
            string sql = GetSeleteSQL(type, arg);
            //查询结果
            DataTable o = commonBll.ExcuteSqlDataTable(sql, DatabaseLinksEnum.LotteryNumber, null);

            return(o);
        }
示例#12
0
        /// <summary>
        /// 组装华东15选记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private string AppendHD15X5Result(DataTable data, SCCLottery type)
        {
            List <DFCHD15X5HistoryLotteryViewEntity> res = new List <DFCHD15X5HistoryLotteryViewEntity>();

            if (data.Rows.Count > 0)
            {
                //总共球个数
                int total = type.GetEnumText().TryToInt32();

                for (int j = 0; j < data.Rows.Count; j++)
                {
                    //开奖号集合
                    List <int>    openCodeList    = new List <int>();
                    List <string> openCodeListStr = new List <string>();
                    StringBuilder builder         = new StringBuilder();

                    for (int i = 1; i <= total; i++)
                    {
                        int openCode = data.Rows[j]["OpenCode" + i].TryToInt32();
                        openCodeList.Add(openCode);
                        openCodeListStr.Add(openCode.ToString());
                    }
                    builder.Append(GetOpenCodeTemplate(type, openCodeList));

                    string ac;
                    try
                    {
                        ac = LotteryUtils.GetAC(openCodeListStr.ToArray()).ToString();
                    }
                    catch (Exception)
                    {
                        ac = "";
                    }

                    res.Add(new DFCHD15X5HistoryLotteryViewEntity
                    {
                        Term           = data.Rows[j]["Term"].ToStringEx(),
                        OpenTime       = data.Rows[j]["OpenTime"].TryToDateTimeToString("yyyy-MM-dd"),
                        NormalOpenCode = builder.ToString(),
                        Parity         = LotteryUtils.GetJOString(openCodeList, "双", "单"),
                        TheSum         = LotteryUtils.GetTheSum(openCodeList, GetSizeRatioSplitNumber(type), GetSumNumberCount(type)),
                        Size           = LotteryUtils.GetDXString(openCodeList, 5),
                        ThreeZoneRatio = LotteryUtils.Hd15x5SanQu(openCodeList),
                        SizeRatio      = LotteryUtils.GetProportionOfDX(openCodeList, 6),
                        ParityRatio    = LotteryUtils.GetProportionOfJO(openCodeList),
                        RatioOf012     = LotteryUtils.GetProportionOf012(openCodeList),
                        Span           = LotteryUtils.GetSpan(openCodeList).ToString(),
                        AC             = ac
                    });
                }
            }

            return(res.ToJson());
        }
示例#13
0
        /// <summary>
        /// 获取计算和值球个数
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        protected int GetSumNumberCount(SCCLottery type)
        {
            int res = type.GetEnumText().TryToInt32();

            //有特殊球的情况下
            if (LotteryBallTypeDict.ContainsKey(type.ToString()))
            {
                res = LotteryBallTypeDict[type.ToString()][0];
            }
            return(res);
        }
示例#14
0
        /// <summary>
        /// 获取最新一条记录
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <returns></returns>
        public OpenCode8Model GetLastItem(SCCLottery lottery)
        {
            var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var sqlString = string.Format(LastItemSql, TableName);
            var ds        = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var result = LoadData <OpenCode8Model>(ds.Tables[0].Rows[0]);
                return(result);
            }
            return(null);
        }
示例#15
0
        /// <summary>
        /// 获取最新一条记录
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <returns></returns>
        public OpenCode7Model GetLastItem(SCCLottery lottery)
        {
            var TableName = lottery.GetSCCLotteryTableName();
            var sqlString = string.Format(LastItemSql, TableName);

            var ds = this.BaseRepository(DatabaseLinksEnum.LotteryNumber).FindTable(sqlString);

            if (ds != null && ds.DataSet.Tables.Count > 0 && ds.DataSet.Tables[0].Rows.Count > 0)
            {
                var result = BaseServices.LoadData <OpenCode7Model>(ds.DataSet.Tables[0].Rows[0]);
                return(result);
            }
            return(null);
        }
示例#16
0
        /// <summary>
        /// 插入下一期开奖信息并且发送邮件对未复查的进行提醒
        /// </summary>
        /// <param name="latestaward"></param>
        /// <param name="scc"></param>
        private void SendEmail(string latestaward, SCCLottery scc)
        {
            //发送邮件
            string address = ConfigHelper.GetValue("ErrorReportTo");
            string subject = scc.GetEnumDescription() + "[第" + latestaward + "期]开奖号未及时复查提醒";
            string body    = "系统管理员请注意:" + scc.GetEnumDescription() + "[第" + latestaward +
                             "期]开奖号未及时复查,请尽快登陆系统后台进行复查操作!<br /><br />" + scc.GetEnumDescription() + "官方参考网址为:<a href='" + GrabTheLatestAwardManager.GetRequestUrlAndXPath(scc)[0] + "'>【点我前往】</a>";

            MailHelper.SendByThread(address, subject, body);

            //同时插入下一期
            //int totalBall = string.IsNullOrEmpty(scc.GetEnumText()) ? 0 : scc.GetEnumText().TryToInt32();
            //string[] arr = latestaward.Split("、".ToCharArray());
            //Insert(totalBall, (arr[arr.Length - 1].TryToInt32() + 1).ToString(), scc);
        }
示例#17
0
        /// <summary>
        /// 新增彩种开奖数据
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="model">开奖数据模型</param>
        /// <returns></returns>
        public bool AddOpen3Code(SCCLottery lottery, OpenCode3Model model)
        {
            var TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var sqlString = string.Format(AddItemSql, TableName);
            var param     = new SqlParameter[] {
                new SqlParameter("@Term", model.Term),
                new SqlParameter("@OpenCode1", model.OpenCode1),
                new SqlParameter("@OpenCode2", model.OpenCode2),
                new SqlParameter("@OpenCode3", model.OpenCode3),
                new SqlParameter("@OpenTime", model.OpenTime),
                new SqlParameter("@ID", Guid.NewGuid().ToString().Replace("-", ""))
            };
            var result = SqlHelper.ExecuteNonQuery(CommandType.Text, sqlString, param);

            return(result > 0);
        }
示例#18
0
        /// <summary>
        /// 获取开奖历史
        /// </summary>
        /// <param name="type"></param>
        /// <param name="arg"></param>
        /// <returns></returns>
        private string GetResultByEnumCode(SCCLottery type, HistoryLotteryArgEnyity arg)
        {
            string    res  = String.Empty;
            DataTable data = GetData(type, arg);

            switch (type)
            {
            case SCCLottery.ShanDongKLPK3:
                res = AppendShanDongKLPK3Result(data, SCCLottery.ShanDongKLPK3);
                break;

            default:
                res = AppendCommonResult(data, type);
                break;
            }
            return(res);
        }
        /// <summary>
        /// 获取抓取地址以及XPath
        /// </summary>
        /// <param name="scc"></param>
        /// <returns></returns>
        public static string[] GetRequestUrlAndXPath(SCCLottery scc)
        {
            if (!cacheDictionary.ContainsKey(scc.ToString()))
            {
                cacheDictionary.Add(scc.ToString(), new[] { ConfigHelper.GetValue("__" + scc.ToString() + "__URL__"), ConfigHelper.GetValue("__" + scc.ToString() + "__XPATH__") });
            }
            else
            {
                cacheDictionary[scc.ToString()] = new[]
                {
                    ConfigHelper.GetValue("__" + scc.ToString() + "__URL__"),
                    ConfigHelper.GetValue("__" + scc.ToString() + "__XPATH__")
                };
            }

            return(cacheDictionary[scc.ToString()]);
        }
示例#20
0
        /// <summary>
        /// 新增彩种开奖数据
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <param name="model">开奖数据模型</param>
        /// <returns></returns>
        public bool AddOpen3Code(SCCLottery lottery, OpenCode3Model model)
        {
            var TableName = lottery.GetSCCLotteryTableName();
            var sqlString = string.Format(AddItemSql, TableName);

            DbParameter[] param = new DbParameter[] {
                new SqlParameter("@Term", model.Term),
                new SqlParameter("@OpenCode1", model.OpenCode1),
                new SqlParameter("@OpenCode2", model.OpenCode2),
                new SqlParameter("@OpenCode3", model.OpenCode3),
                new SqlParameter("@OpenTime", model.OpenTime),
                new SqlParameter("@ID", Guid.NewGuid().ToString().Replace("-", ""))
            };
            var result = this.BaseRepository(DatabaseLinksEnum.LotteryNumber).ExecuteBySql(sqlString, param);

            return(result > 0);
        }
示例#21
0
        /// <summary>
        /// 获取开奖列表
        ///
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <returns></returns>
        public List <OpenCode8Model> GetListIn(SCCLottery lottery, bool IsToday)
        {
            List <string> result    = new List <string>();
            var           TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var           sqlString = string.Format(QueryListSQL, TableName, IsToday ? CommonHelper.SCCSysDateTime.ToString("yyyyMMdd") : CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
            var           ds        = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var data = LoadDataList <OpenCode8Model>(ds.Tables[0]);
                return(data);
            }
            else
            {
                return(new List <OpenCode8Model>());
            }
        }
示例#22
0
        /// <summary>
        /// 获取前一天开奖列表
        ///
        /// </summary>
        /// <param name="lottery">彩种名称</param>
        /// <returns></returns>
        public List <OpenCode8Model> GetYesterdayList(SCCLottery lottery)
        {
            List <string> result    = new List <string>();
            var           TableName = EnumHelper.GetSCCLotteryTableName(lottery);
            var           sqlString = string.Format(YesterdayListSql, TableName, CommonHelper.SCCSysDateTime.AddDays(-1).ToString("yyyyMMdd"));
            var           ds        = SqlHelper.ExecuteDataset(CommandType.Text, sqlString);
            long          tempQiHao = 0;

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var data = LoadDataList <OpenCode8Model>(ds.Tables[0]);
                return(data);
            }
            else
            {
                return(null);
            }
        }
示例#23
0
        /// <summary>
        /// 获取开奖历史
        /// </summary>
        /// <param name="type"></param>
        /// <param name="arg"></param>
        /// <returns></returns>
        private string GetResultByEnumCode(SCCLottery type, HistoryLotteryArgEnyity arg)
        {
            string    res  = String.Empty;
            DataTable data = GetData(type, arg);

            switch (type)
            {
            case SCCLottery.DF6J1:
                res = AppendCommonResult(data, SCCLottery.DF6J1);
                break;

            case SCCLottery.HD15X5:
                res = AppendHD15X5Result(data, SCCLottery.HD15X5);
                break;

            default:
                res = AppendCommonResult(data, type);
                break;
            }
            return(res);
        }
示例#24
0
        /// <summary>
        /// 组装快乐扑克3记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private string AppendShanDongKLPK3Result(DataTable data, SCCLottery type)
        {
            //山东快乐扑克3号码规则:号码形如211(红心J),第一位是花色(1为方片,2为红心,3为梅花,4为黑桃),后两位是号码(A为1,J为11,Q为12,K为13)

            List <GPCKLPK3HistoryLotteryViewEntity> res = new List <GPCKLPK3HistoryLotteryViewEntity>();

            if (data.Rows.Count > 0)
            {
                //总共球个数
                int total = type.GetEnumText().TryToInt32();

                for (int j = 0; j < data.Rows.Count; j++)
                {
                    //开奖号集合
                    List <int>    openCodeList1 = new List <int>();
                    List <int>    openCodeList2 = new List <int>();
                    StringBuilder builder       = new StringBuilder();

                    for (int i = 1; i <= total; i++)
                    {
                        int openCode1 = data.Rows[j]["OpenCode" + i].ToString().Substring(1, 2).TryToInt32();
                        openCodeList1.Add(openCode1);

                        int openCode2 = data.Rows[j]["OpenCode" + i].ToString().TryToInt32();
                        openCodeList2.Add(openCode2);
                    }
                    builder.Append(GetOpenCodeTemplate(type, openCodeList2));

                    res.Add(new GPCKLPK3HistoryLotteryViewEntity
                    {
                        Term           = data.Rows[j]["Term"].ToStringEx(),
                        OpenTime       = data.Rows[j]["OpenTime"].TryToDateTimeToString("yyyy-MM-dd HH:mm:ss"),
                        NormalOpenCode = builder.ToString(),
                        SumValue       = LotteryUtils.GetSum(openCodeList1, GetSumNumberCount(type)).ToString(),
                    });
                }
            }

            return(res.ToJson());
        }
        /// <summary>
        /// 获取最新期数
        /// </summary>
        /// <param name="scc"></param>
        /// <returns></returns>
        public static string GetTheLatestAward(SCCLottery scc)
        {
            string res = String.Empty;

            //读取配置
            string[] urlAndXPath = GetRequestUrlAndXPath(scc);
            if (!string.IsNullOrEmpty(urlAndXPath[0]) && !string.IsNullOrEmpty(urlAndXPath[1]))
            {
                //组装参数
                HttpItem item = new HttpItem
                {
                    Url              = urlAndXPath[0],
                    Method           = "GET",
                    ContentType      = "text/html",
                    Timeout          = 90 * 1000,
                    ReadWriteTimeout = 90 * 1000,
                    Encoding         = Encoding.UTF8
                };
                //开始请求
                HttpResult result = helper.GetHtml(item);
                if (result.StatusCode == HttpStatusCode.OK)
                {
                    string html = result.Html;
                    if (!string.IsNullOrEmpty(html))
                    {
                        HtmlDocument doc = new HtmlDocument();

                        doc.LoadHtml(html);
                        HtmlNode node = doc.DocumentNode.SelectSingleNode(urlAndXPath[1]);
                        //获取最终想要的数据
                        string text = string.IsNullOrEmpty(node.InnerText) ? node.InnerHtml.ReplaceHtmlTag() : node.InnerText;
                        //只获取数字部分
                        List <string> temp = text.GetValueByRegex("-?[1-9]\\d*");

                        res = temp.Count > 0 ? temp[0] : "";
                    }
                }
            }
            return(res);
        }
示例#26
0
        /// <summary>
        /// 组装公共记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private string AppendCommonResult(DataTable data, SCCLottery type)
        {
            List <GPC11X5HistoryLotteryViewEntity> res = new List <GPC11X5HistoryLotteryViewEntity>();

            if (data.Rows.Count > 0)
            {
                //总共球个数
                int total = type.GetEnumText().TryToInt32();

                for (int j = 0; j < data.Rows.Count; j++)
                {
                    //开奖号集合
                    List <int>    openCodeList = new List <int>();
                    StringBuilder builder      = new StringBuilder();

                    for (int i = 1; i <= total; i++)
                    {
                        int openCode = data.Rows[j]["OpenCode" + i].TryToInt32();
                        openCodeList.Add(openCode);
                    }
                    builder.Append(GetOpenCodeTemplate(type, openCodeList));

                    res.Add(new GPC11X5HistoryLotteryViewEntity
                    {
                        Term           = data.Rows[j]["Term"].ToStringEx(),
                        OpenTime       = data.Rows[j]["OpenTime"].TryToDateTimeToString("yyyy-MM-dd HH:mm:ss"),
                        NormalOpenCode = builder.ToString(),
                        Parity         = LotteryUtils.GetJOString(openCodeList, "双", "单"),
                        TheSum         = LotteryUtils.GetTheSum(openCodeList, 30, GetSumNumberCount(type)),
                        Size           = LotteryUtils.GetDXString(openCodeList, 5),
                        SizeRatio      = LotteryUtils.GetProportionOfDX(openCodeList, 6),
                        ParityRatio    = LotteryUtils.GetProportionOfJO(openCodeList),
                        RatioOf012     = LotteryUtils.GetProportionOf012(openCodeList),
                        Span           = LotteryUtils.GetSpan(openCodeList).ToString(),
                    });
                }
            }

            return(res.ToJson());
        }
示例#27
0
        /// <summary>
        /// 组装FC3D记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private string AppendFC3DResult(DataTable data, SCCLottery type)
        {
            List <FC3DHistoryLotteryViewEntity> res = new List <FC3DHistoryLotteryViewEntity>();

            if (data.Rows.Count > 0)
            {
                //总共球个数
                int total = type.GetEnumText().TryToInt32();

                for (int j = 0; j < data.Rows.Count; j++)
                {
                    //开奖号集合
                    List <int>    openCodeList = new List <int>();
                    StringBuilder builder      = new StringBuilder();

                    for (int i = 1; i <= total; i++)
                    {
                        int openCode = data.Rows[j]["OpenCode" + i].TryToInt32();
                        openCodeList.Add(openCode);
                    }
                    builder.Append(GetOpenCodeTemplate(type, openCodeList));

                    res.Add(new FC3DHistoryLotteryViewEntity
                    {
                        Term           = data.Rows[j]["Term"].ToStringEx(),
                        OpenTime       = data.Rows[j]["OpenTime"].TryToDateTimeToString("yyyy-MM-dd"),
                        NormalOpenCode = builder.ToString(),
                        ShiJiHao       = data.Rows[j]["ShiJiHao"].ToStringEx(),
                        KaiJiHao       = data.Rows[j]["KaiJiHao"].ToStringEx(),
                        ParityRatio    = LotteryUtils.GetProportionOfJO(openCodeList),
                        SizeRatio      = LotteryUtils.GetProportionOfDX(openCodeList, 4),
                        Parity         = LotteryUtils.GetJOString(openCodeList),
                        TheSum         = LotteryUtils.GetTheSum(openCodeList, 14, GetSumNumberCount(type))
                    });
                }
            }

            return(res.ToJson());
        }
示例#28
0
 /// <summary>
 /// 新增彩种开奖数据
 /// </summary>
 /// <param name="lottery">彩种名称</param>
 /// <param name="model">开奖数据模型</param>
 /// <returns></returns>
 public bool AddOpen5Code(SCCLottery lottery, OpenCode5Model model)
 {
     return(iOpen5Code.AddOpen5Code(lottery, model));
 }
示例#29
0
 /// <summary>
 /// 获取最新一条记录
 /// </summary>
 /// <param name="lottery">彩种名称</param>
 /// <returns></returns>
 public OpenCode5Model GetLastItem(SCCLottery lottery)
 {
     return(iOpen5Code.GetLastItem(lottery));
 }
示例#30
0
 /// <summary>
 /// 纠错参数
 /// </summary>
 /// <param name="dbData"></param>
 /// <param name="newData"></param>
 public void CheckData(Dictionary <string, string> dbData, Dictionary <string, string> newData, string Area, SCCLottery Lottery)
 {
     try
     {
         Dictionary <int, int> result = new Dictionary <int, int>();
         foreach (var item in dbData)
         {
             var data = newData.SingleOrDefault(w => w.Key == item.Key);
             if (data.Key != null)
             {
                 var dbdata  = Array.ConvertAll <string, int>(data.Value.Split(','), s => int.Parse(s)).ToList();
                 var newdata = Array.ConvertAll <string, int>(item.Value.Split(','), s => int.Parse(s)).ToList();
                 dbdata.Sort();
                 newdata.Sort();
                 var dbcode  = string.Join(",", dbdata);
                 var newcode = string.Join(",", newdata);
                 if (dbcode != newcode)
                 {
                     result.Add(int.Parse(item.Key), 0);
                     email.AddEmail(Area + Lottery.ToString(), data.Key, DateTime.Now, "数据验证失败" + string.Format("数据库:{0},爬取:{1}", item.Value, data.Value));
                 }
                 else
                 {
                     result.Add(int.Parse(item.Key), 1);
                 }
             }
         }
         var tableName = EnumHelper.GetSCCLotteryTableName(Lottery);
         int rt        = resultServices.ExecuteResult(tableName, result);
         if (rt < 0)
         {
             email.AddEmail(Area + Lottery.ToString(), "0", DateTime.Now, "执行验证结果结果失败");
         }
     }
     catch (Exception ex)
     {
         log.Error(this.GetType(), string.Format("【{0}】数据验证发生错误,错误信息【{1}】", Area + Lottery.ToString(), ex.Message));
     }
 }