/// <summary> /// 根据点击ID获取宝贝 /// </summary> public EntityItemClick GetItemClickById(long local_id) { EntityItemClick model = new EntityItemClick(); string strSql = string.Format("select * from t_item_click where local_id={0}", local_id); DataTable dt = DataBase.ExecuteTable(strSql); if (dt != null && dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; model.local_id = Convert.ToInt64(dr["local_id"]); model.item_id = Convert.ToInt64(dr["item_id"]); model.item_title = dr["item_title"].ToString(); model.creative_one_title = dr["creative_one_title"].ToString(); model.creative_two_title = dr["creative_two_title"].ToString(); model.keyword = dr["keyword"].ToString(); model.create_time = Convert.ToDateTime(dr["create_time"]); model.update_time = Convert.ToDateTime(dr["update_time"]); if (dr["is_succeed"] != DBNull.Value) { model.is_succeed = Convert.ToBoolean(dr["is_succeed"]); } } } return(model); }
/// <summary> /// 新增宝贝点击任务 /// </summary> public void AddItemClick(EntityItemClick model) { string strSql = string.Format("insert into t_item_click(item_id,item_title,creative_one_title,creative_two_title,keyword,create_time,update_time) values (" + "{0},'{1}','{2}','{3}','{4}','{5}','{6}')", model.item_id, model.item_title, model.creative_one_title, model.creative_two_title, model.keyword, model.create_time.ToString("s"), model.update_time.ToString("s")); int reuslt = DataBase.ExecuteNone(strSql); }
/// <summary> /// 获取宝贝点击列表 /// </summary> public List <EntityItemClick> GetItemClick() { List <EntityItemClick> lst = new List <EntityItemClick>(); string strSql = "select * from t_item_click"; DataTable dt = DataBase.ExecuteTable(strSql); if (dt != null && dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; EntityItemClick model = new EntityItemClick(); model.local_id = Convert.ToInt64(dr["local_id"]); model.item_id = Convert.ToInt64(dr["item_id"]); model.item_title = dr["item_title"].ToString(); model.creative_one_title = dr["creative_one_title"].ToString(); model.creative_two_title = dr["creative_two_title"].ToString(); model.keyword = dr["keyword"].ToString(); model.create_time = Convert.ToDateTime(dr["create_time"]); model.update_time = Convert.ToDateTime(dr["update_time"]); if (dr["is_succeed"] != DBNull.Value) { model.is_succeed = Convert.ToBoolean(dr["is_succeed"]); } lst.Add(model); } } return(lst); }
private void timer1_Tick(object sender, EventArgs e) { SaveAlive(); Boolean isCanDo = false; if (CurrentItemClick == null) { isCanDo = true; } else { EntityItemClick ec = bllItemClick.GetItemClickById(CurrentItemClick.local_id); if (ec.is_succeed.HasValue || dtStartClick.AddMinutes(3) < DateTime.Now) {//任务完成或超过3分钟还没有完成,则可以开始下一个任务 isCanDo = true; CurrentItemClick = null; } } if (isCanDo) { List <EntityItemClick> lstItemClick = bllItemClick.GetItemClick().Where(o => o.create_time.DayOfYear == DateTime.Now.DayOfYear && o.is_succeed == null).ToList(); if (lstItemClick.Count > 0) { Random r = new Random(); //随机选择一个宝贝点击任务,以防每次都卡在第一个宝贝的点击上 CurrentItemClick = lstItemClick[r.Next(lstItemClick.Count)]; dtStartClick = DateTime.Now; System.Diagnostics.Process.Start("DianChe.Search.exe", string.Format("{0} {1} {2}", CurrentUser.user_name, CurrentUser.pwd, CurrentItemClick.local_id.ToString())); } } }
/// <summary> /// 分配点击任务 /// </summary> public List <EntityItemClick> DispatchItemClick(string mac_address, string ip_address) { List <EntityItemClick> lst = new List <EntityItemClick>(); SqlParameter[] parameters = { new SqlParameter("@max_address", SqlDbType.VarChar, 50), new SqlParameter("@ip_address", SqlDbType.VarChar, 50) }; parameters[0].Value = mac_address; parameters[1].Value = ip_address; DataSet ds = DataBase.ExecuteDataSet("proc_dispatch_item_click", parameters); if (ds != null && ds.Tables.Count != 0 && ds.Tables[0].Rows.Count != 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { EntityItemClick model = new EntityItemClick(); DataRow dr = ds.Tables[0].Rows[i]; model.item_id = Convert.ToInt64(dr["item_id"]); model.local_item_task_id = Guid.Parse(dr["local_item_task_id"].ToString()); model.nick = dr["nick"].ToString(); model.creative_one_title = dr["creative_one_title"].ToString(); model.creative_two_title = dr["creative_two_title"].ToString(); model.keyword = dr["keyword"].ToString(); lst.Add(model); } } return(lst); }
private void GoItem(EntityItemClick item) { int i = 0; foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("a")) { if (he.GetAttribute("classname") == "summary") { string title = he.GetAttribute("title"); //logger.InfoFormat("第{0}页,标题:{1}", pageIndex, title); if (title == item.creative_one_title || title == item.creative_two_title) { timer1.Enabled = false; webBrowser1.Navigate(he.GetAttribute("href")); return; } i++; } } if (i != 0) { timer1.Enabled = false; //最多第20页 if (pageIndex <= totalPages) { pageIndex++; Thread.Sleep(2000); GoNextPage(); } else {//超过20页 this.Close(); } //MessageBox.Show(i.ToString()); } else {//没找到创意的链接 this.Close(); } }
/// <summary> /// 设置宝贝点击成功状态 /// </summary> public void SetItemClickSucceed(EntityItemClick model) { string strSql = string.Format("update t_item_click set is_succeed={0},update_time='{1}' where local_id={2}", model.is_succeed.Value ? 1 : 0, DateTime.Now.ToString("s"), model.local_id); int reuslt = DataBase.ExecuteNone(strSql); }