Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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()));
                }
            }
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        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();
            }
        }
Exemplo n.º 7
0
 /// <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);
 }