Beispiel #1
0
        /// <summary>
        /// AType:-1取那天全部的数据,为其它时取特定某期数据
        /// </summary>
        /// <param name="ADateTime"></param>
        /// <param name="listPeriod"></param>
        /// <param name="AType"></param>
        /// <returns></returns>
        public static bool GetHtmlString08(string AUrl, DateTime ADateTime, ref List <PeriodDetail_101> listPeriod, int AType = -1)
        {
            listPeriod.Clear();
            string LinkOf08Parse = string.Empty;

            LinkOf08Parse = string.Format(LinkOf08, ADateTime.ToString("yyyy-MM-dd"), '&', ADateTime.ToString("yyyyMMdd"));
            FileLog.WriteInfo("url", LinkOf08Parse);
            string strResult = string.Empty;

            if (IsSetUpCook.Equals("1"))
            {
                if (String.IsNullOrWhiteSpace(strCookier))
                {
                    strResult = GetHtml(LinkOf08Parse, Encoding.UTF8, "", -1);
                    Regex  rgx            = new Regex(@"ddos=([^]]*)\;\s");
                    Match  match11        = rgx.Match(strResult);
                    string classification = match11.Groups[1].Value;
                    Console.WriteLine("classification:" + classification);
                    strCookier = "ddos=" + classification;
                }
                strResult = GetHtml(LinkOf08Parse, Encoding.UTF8, strCookier, 1);
            }
            else
            {
                strResult = GetHtml(LinkOf08Parse, Encoding.UTF8);
            }


            try
            {
                string          regex              = @"<td>\d{11}</td>[\s\S]*?<td>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}</td>[\s\S]*?<td><span>\d{1}</span><span>\d{1}</span><span>\d{1}</span><span>\d{1}</span><span>\d{1}</span></td>";
                Regex           re                 = new Regex(regex);
                MatchCollection matches            = re.Matches(strResult);
                System.Collections.IEnumerator enu = matches.GetEnumerator();
                while (enu.MoveNext() && enu.Current != null)
                {
                    string strPeriod   = string.Empty;
                    string strAllValue = string.Empty;
                    Match  match       = (Match)(enu.Current);
                    if (match.Groups.Count > 0)
                    {
                        String strTemp = match.Groups[0].Value;
                        regex = @"\d{11}";
                        Regex           reTemp                 = new Regex(regex);
                        MatchCollection matchesTemp            = reTemp.Matches(strTemp);
                        System.Collections.IEnumerator enuTemp = matchesTemp.GetEnumerator();
                        while (enuTemp.MoveNext() && enuTemp.Current != null)
                        {
                            match     = (Match)(enuTemp.Current);
                            strPeriod = match.Groups[0].Value;
                        }

                        regex       = @"<span>\d{1}</span>";
                        reTemp      = new Regex(regex);
                        matchesTemp = reTemp.Matches(strTemp);
                        enuTemp     = matchesTemp.GetEnumerator();
                        StringBuilder sb = new StringBuilder();
                        while (enuTemp.MoveNext() && enuTemp.Current != null)
                        {
                            match = (Match)(enuTemp.Current);
                            sb.Append(match.Groups[0].Value.Substring(6, 1));
                        }
                        strAllValue = sb.ToString();
                    }
                    int Xingqi = 0;
                    switch (ADateTime.DayOfWeek)
                    {
                    case DayOfWeek.Friday:
                        Xingqi = 5;
                        break;

                    case DayOfWeek.Monday:
                        Xingqi = 1;
                        break;

                    case DayOfWeek.Saturday:
                        Xingqi = 6;
                        break;

                    case DayOfWeek.Sunday:
                        Xingqi = 7;
                        break;

                    case DayOfWeek.Thursday:
                        Xingqi = 4;
                        break;

                    case DayOfWeek.Tuesday:
                        Xingqi = 2;
                        break;

                    case DayOfWeek.Wednesday:
                        Xingqi = 3;
                        break;

                    default:
                        Xingqi = 0;
                        break;
                    }

                    if (!string.IsNullOrWhiteSpace(strPeriod) && !string.IsNullOrWhiteSpace(strAllValue))
                    {
                        PeriodDetail_101 period   = new PeriodDetail_101();
                        char[]           charTemp = strAllValue.ToCharArray();
                        if (charTemp.Length == 5)
                        {
                            period.Wei5_050 = int.Parse(charTemp[0].ToString());
                            period.Wei4_040 = int.Parse(charTemp[1].ToString());
                            period.Wei3_030 = int.Parse(charTemp[2].ToString());
                            period.Wei2_020 = int.Parse(charTemp[3].ToString());
                            period.Wei1_010 = int.Parse(charTemp[4].ToString());
                            int countBig  = 0;
                            int countEven = 0;
                            if (period.Wei5_050 >= 5)
                            {
                                countBig++;
                            }
                            if (period.Wei4_040 >= 5)
                            {
                                countBig++;
                            }
                            if (period.Wei3_030 >= 5)
                            {
                                countBig++;
                            }
                            if (period.Wei2_020 >= 5)
                            {
                                countBig++;
                            }
                            if (period.Wei1_010 >= 5)
                            {
                                countBig++;
                            }

                            if (period.Wei5_050 % 2 == 1)
                            {
                                countEven++;
                            }
                            if (period.Wei4_040 % 2 == 1)
                            {
                                countEven++;
                            }
                            if (period.Wei3_030 % 2 == 1)
                            {
                                countEven++;
                            }
                            if (period.Wei2_020 % 2 == 1)
                            {
                                countEven++;
                            }
                            if (period.Wei1_010 % 2 == 1)
                            {
                                countEven++;
                            }

                            int total = period.Wei5_050 + period.Wei4_040 + period.Wei3_030 + period.Wei2_020 + period.Wei1_010;
                            period.AllSub_009 = total;
                            if (total >= 23)
                            {
                                period.BigOrSmall_007 = 1;
                            }
                            else
                            {
                                period.BigOrSmall_007 = 2;
                            }

                            if (total % 2 == 1)
                            {
                                period.EvenODD_008 = 1;
                            }
                            else
                            {
                                period.EvenODD_008 = 2;
                            }
                            period.DateTimeInsert_003 = DateTime.Now;
                            period.DateNumber_004     = Int64.Parse(ADateTime.ToString("yyyyMMdd"));
                            period.ShortPeriod_005    = int.Parse(strPeriod.Substring(8));
                            period.LongPeriod_001     = Int64.Parse(strPeriod);
                            period.AwardNumber_002    = strAllValue;
                            period.DayInWeek_006      = Xingqi;
                            period.CountBig_106       = countBig;
                            period.CountSmall_107     = 5 - countBig;
                            period.CountEven_108      = countEven;
                            period.CountOdd_109       = 5 - countEven;
                            listPeriod.Add(period);
                        }
                    }
                    else
                    {
                        break;
                    }
                }

                listPeriod = listPeriod.OrderBy(p => p.LongPeriod_001).ToList();
                if (AType != -1)
                {
                    if (listPeriod.Where(p => p.ShortPeriod_005 == AType).Count() > 0)
                    {
                        PeriodDetail_101 pTemp = listPeriod.Where(p => p.ShortPeriod_005 == AType).First();
                        FileLog.WriteInfo("GetHtmlString08--Get Period's PeriodLong001", pTemp.LongPeriod_001.ToString());
                        listPeriod.Clear();
                        listPeriod.Add(pTemp);
                    }
                    else
                    {
                        listPeriod.Clear();
                    }
                }
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// 更新数据库
        /// AType==-1 做全天数据更新
        /// 其它为单期数据更新
        /// </summary>
        public static bool UpateDataBase(List <PeriodDetail_101> AListPeriod, int AType = -1, string YY = "")
        {
            bool flag = true;

            FileLog.WriteInfo("UpateDataBase", "AType=" + AType);
            IDbConnection    objConn;
            IDbDataAdapter   objAdapter;
            DbCommandBuilder objCmdBuilder;

            try
            {
                string strSql = string.Empty;

                if (AType == -1)
                {
                    strSql = string.Format("SELECT * from T_101_{1} where C004={0}", AListPeriod.First().DateNumber_004, YY);
                    FileLog.WriteInfo("UpateDataBase()", strSql);
                }
                else
                {
                    strSql = string.Format("SELECT * from T_101_{1} where C001={0}", AListPeriod.Last().LongPeriod_001, YY);
                    FileLog.WriteInfo("UpateDataBase()", strSql);
                }

                objConn       = DbHelperSQL.GetConnection(sqlConnect);
                objAdapter    = DbHelperSQL.GetDataAdapter(objConn, strSql);
                objCmdBuilder = DbHelperSQL.GetCommandBuilder(objAdapter);
                objCmdBuilder.ConflictOption = ConflictOption.OverwriteChanges;
                objCmdBuilder.SetAllValues   = false;

                DataSet objDataSet = new DataSet();
                objAdapter.Fill(objDataSet);

                //1\写数据库
                foreach (PeriodDetail_101 pp in AListPeriod)
                {
                    DataRow drCurrent = objDataSet.Tables[0].Select(string.Format("C001={0}", pp.LongPeriod_001)).Count() > 0 ? objDataSet.Tables[0].Select(string.Format("C001={0}", pp.LongPeriod_001)).First() : null;

                    if (drCurrent != null) //更新
                    {
                        drCurrent.BeginEdit();
                        drCurrent["C002"] = pp.AwardNumber_002;
                        drCurrent["C050"] = pp.Wei5_050;
                        drCurrent["C040"] = pp.Wei4_040;
                        drCurrent["C030"] = pp.Wei3_030;
                        drCurrent["C020"] = pp.Wei2_020;
                        drCurrent["C010"] = pp.Wei1_010;
                        drCurrent["C003"] = pp.DateTimeInsert_003.ToString("yyyy/MM/dd HH:mm:ss");
                        drCurrent["C004"] = pp.DateNumber_004;
                        drCurrent["C005"] = pp.ShortPeriod_005;
                        drCurrent["C006"] = pp.DayInWeek_006;
                        drCurrent["C007"] = pp.BigOrSmall_007;
                        drCurrent["C008"] = pp.EvenODD_008;
                        drCurrent["C009"] = pp.AllSub_009;

                        drCurrent["C106"] = pp.CountBig_106;
                        drCurrent["C107"] = pp.CountSmall_107;
                        drCurrent["C108"] = pp.CountEven_108;
                        drCurrent["C109"] = pp.CountOdd_109;

                        drCurrent.EndEdit();
                    }
                    else //添加新行
                    {
                        DataRow drNewRow = objDataSet.Tables[0].NewRow();
                        drNewRow["C001"] = pp.LongPeriod_001;
                        drNewRow["C002"] = pp.AwardNumber_002;
                        drNewRow["C050"] = pp.Wei5_050;
                        drNewRow["C040"] = pp.Wei4_040;
                        drNewRow["C030"] = pp.Wei3_030;
                        drNewRow["C020"] = pp.Wei2_020;
                        drNewRow["C010"] = pp.Wei1_010;
                        drNewRow["C003"] = pp.DateTimeInsert_003.ToString("yyyy/MM/dd HH:mm:ss");
                        drNewRow["C004"] = pp.DateNumber_004;
                        drNewRow["C005"] = pp.ShortPeriod_005;
                        drNewRow["C006"] = pp.DayInWeek_006;

                        drNewRow["C007"] = pp.BigOrSmall_007;
                        drNewRow["C008"] = pp.EvenODD_008;
                        drNewRow["C009"] = pp.AllSub_009;

                        drNewRow["C106"] = pp.CountBig_106;
                        drNewRow["C107"] = pp.CountSmall_107;
                        drNewRow["C108"] = pp.CountEven_108;
                        drNewRow["C109"] = pp.CountOdd_109;
                        objDataSet.Tables[0].Rows.Add(drNewRow);
                    }
                }

                objAdapter.Update(objDataSet);
                objDataSet.AcceptChanges();
            }
            catch (Exception e)
            {
                FileLog.WriteError("AutoShishiCaiDataGet() ", e.Message);
                Thread.Sleep(5 * 60 * 1);
                return(flag = false);
            }

            return(flag);
        }
Beispiel #3
0
        private static void AutoShishiCaiDataGet(object o)
        {
            ShiShiCaiData           autoDBInfo     = o as ShiShiCaiData;
            List <PeriodDetail_101> listPeriodTemp = new List <PeriodDetail_101>();;

            while (autoDBInfo.IBoolIsThreadShiShiCaiDataWorking)
            {
                DateTime Nowwwww = DateTime.Now;
                DateTime NowDate = Nowwwww.Date;
                RunCurrentDate = ConfigurationManager.AppSettings["LastTimeSynchData"] != null?DateTime.Parse(ConfigurationManager.AppSettings["LastTimeSynchData"].ToString()).Date : DateTime.Now.Date;

                string YY = RunCurrentDate.Year.ToString().Substring(2, 2);
                //1、读取保存的最后的日期与当前日期做比较
                bool flag = true;
                listPeriodTemp.Clear();
                if (RunCurrentDate < NowDate)  //做全天数据写入
                {
                    #region
                    flag = GetDataFromUrl(RunCurrentDate, ref listPeriodTemp);
                    if (flag && listPeriodTemp.Count > 0)
                    {
                        flag = UpateDataBase(listPeriodTemp, -1, YY);
                        if (flag)
                        {
                            RunCurrentDate = RunCurrentDate.AddDays(1);
                            AppConfigOperation.UpdateAppConfig("LastTimeSynchData", RunCurrentDate.ToString("yyyy-MM-dd 00:00:00"));
                            FileLog.WriteInfo("AutoShishiCaiDataGet()@ ", RunCurrentDate.ToString());
                        }
                    }
                    else
                    {
                        RunCurrentDate = RunCurrentDate.AddDays(1);
                        AppConfigOperation.UpdateAppConfig("LastTimeSynchData", RunCurrentDate.ToString("yyyy-MM-dd 00:00:00"));
                        FileLog.WriteInfo("AutoShishiCaiDataGet()@ ", RunCurrentDate.ToString());
                    }
                    #endregion
                }
                else if (RunCurrentDate == NowDate)
                {
                    listPeriodTemp.Clear();
                    CurrentPeriod = GetCurrentPeriod(Nowwwww);
                    int periodCaul = CauTimeSpan(Nowwwww);
                    flag = true;
                    if (periodCaul - CurrentPeriod > 1)
                    {
                        #region
                        flag = GetDataFromUrl(RunCurrentDate, ref listPeriodTemp);
                        FileLog.WriteInfo("AutoShishiCai ===>", DateTime.Now.ToString() + " 1periodCaul:" + periodCaul);
                        if (flag && listPeriodTemp.Count > 0)
                        {
                            UpateDataBase(listPeriodTemp, -1, YY);
                            Thread.Sleep(1000 * 5);
                        }
                        #endregion
                    }
                    else if (periodCaul - CurrentPeriod == 1)
                    {
                        #region
                        flag = true;
                        flag = GetDataFromUrl(RunCurrentDate, ref listPeriodTemp, periodCaul);
                        FileLog.WriteInfo("AutoShishiCai ===>", DateTime.Now.ToString() + " 2periodCaul:" + periodCaul);
                        if (flag && listPeriodTemp.Count() > 0)
                        {
                            if (UpateDataBase(listPeriodTemp, 1, YY))
                            {
                                Thread.Sleep(1000 * 1);
                                FileLog.WriteInfo("AutoShishiCaiDataGet()", "periodCaul" + "--" + periodCaul);
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        //计算期==当前期
                        Thread.Sleep(1000 * 1);
                    }
                }
                else
                {
                    //配置里的时间大于机器时间了
                    Thread.Sleep(1000 * 1);
                }
            }
        }
Beispiel #4
0
 /// <summary>
 /// 写日记 实例方法
 /// </summary>
 /// <param name="logLevel"></param>
 /// <param name="msg"></param>
 public void Log(LogLevel logLevel, string msg)
 {
     FileLog.WriteLog(logLevel, string.Empty, msg);
 }