コード例 #1
0
    public int InsertClickIP(ClickIPInfo info)
    {
        SqlParameter[] param = new[]
        {
            new SqlParameter("@UserAdsId", info.UserAdsId),
            new SqlParameter("@VisitIP", info.VisitIP),
            new SqlParameter("@VisitDate", info.VisitDate),
            new SqlParameter("@ClickId", info.ClickId)
        };

        return(DBHelper.ExecuteNonQuery(SQL_INSERT_CLICKIP, param));
    }
コード例 #2
0
    public override bool Equals(object obj)
    {
        ClickIPInfo info = obj as ClickIPInfo;

        if (info == null)
        {
            return(false);
        }
        if (info.VisitIP == this.VisitIP)
        {
            return(true);
        }
        return(base.Equals(obj));
    }
コード例 #3
0
    public IList <ClickIPInfo> SelectAllClickIPByDate(string date)
    {
        IList <ClickIPInfo> list = new List <ClickIPInfo>();

        DataTable dt = DBHelper.ExecuteDataTable(SQL_SELECT_CLICKIP_BY_DATE, new SqlParameter("@VisitDate", date));

        foreach (DataRow dr in dt.Rows)
        {
            ClickIPInfo info = new ClickIPInfo();
            info.UserAdsId = new Guid(dr["UserAdsId"].ToString());
            info.VisitIP   = dr["VisitIP"].ToString();

            list.Add(info);
        }

        return(list);
    }
コード例 #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            IList <AdsInfo> adsList = CacheCollection.GetAllAdsInfo();

            Random  rand = new Random();
            AdsInfo info = adsList[rand.Next(adsList.Count)];

            IList <UserAdsInfo> list = uasDal.SelectAllUserAdsByAdsId(info.AdsId, 1);

            IList <ClickInfo> clickList = clickDal.SelectAllClickCount(DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("yyyyMMdd"));

            //获取访问IP
            string ip = Request.ServerVariables["REMOTE_ADDR"];
            //获取当天已经访问来了的IP
            IList <ClickIPInfo> ipList = clickDal.SelectAllClickIPByDate(DateTime.Now.ToString("yyyyMMdd"));
            //和当前IP相同的
            ipList = ipList.Where(o => o.VisitIP == ip).ToList();

            foreach (ClickIPInfo ipinfo in ipList)
            {
                //已经访问了该广告
                IList <UserAdsInfo> hadlist = list.Where(o => o.Id == ipinfo.UserAdsId).ToList();
                if (hadlist.Count > 0)
                {
                    list.Remove(hadlist[0]);
                }
            }

            if (list.Count == 0)
            {
                return;
            }

            foreach (ClickInfo cinfo in clickList)
            {
                if (cinfo.ClickCount >= rand.Next(6, 15))//10)
                {
                    IList <UserAdsInfo> hadlist = list.Where(o => o.Id == cinfo.UserAdsId).ToList();

                    if (hadlist.Count > 0)
                    {
                        FeeInfo finfo = CacheCollection.GetAllFeeInfo().Where(o => o.FeeId == hadlist[0].FeeId).ToList()[0];
                        if (finfo.AdsType == 1)
                        {
                            if (finfo.AdsCount == 1)
                            {
                                list.Remove(hadlist[0]);
                            }
                            else
                            {
                                if (cinfo.ClickCount >= rand.Next(14, 23))//18)
                                {
                                    list.Remove(hadlist[0]);
                                }
                            }
                        }
                        if (finfo.AdsType == 5)
                        {
                            if (cinfo.ClickCount >= rand.Next(22, 33)) //27)
                            {
                                list.Remove(hadlist[0]);
                            }
                        }
                    }
                }
            }

            if (list.Count == 0)
            {
                return;
            }

            UserAdsInfo uinfo = list[0];
            if (list.Count > 1)
            {
                uinfo = list[rand.Next(list.Count)];
            }

            ClickIPInfo iinfo = new ClickIPInfo();
            iinfo.VisitIP   = ip;
            iinfo.ClickId   = Guid.NewGuid();
            iinfo.VisitDate = DateTime.Now.ToString("yyyyMMdd");
            iinfo.UserAdsId = uinfo.Id;
            clickDal.InsertClickIP(iinfo);

            string param = "id=" + uinfo.Id + "&url=" + uinfo.AdsUrl;
            Response.Redirect("getclick.aspx?" + HttpUtility.UrlEncode(param));
        }
    }
コード例 #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            IList <AdsInfo> adsList = CacheCollection.GetAllAdsInfo();

            Random rand = new Random();

            //AdsInfo info = adsList[rand.Next(adsList.Count)];
            //IList<UserAdsInfo> list = uasDal.SelectAllUserAdsByAdsId(info.AdsId, 1);

            IList <UserAdsInfo> list = uasDal.SelectAllUserAdsClick(DateTime.Now);

            //获取访问IP
            string ip = Request.ServerVariables["REMOTE_ADDR"];
            //if (DateTime.Now.Hour >= 0 && DateTime.Now.Hour < 9)
            //{
            //    IList<ClickInfo> clickList = clickDal.SelectAllClickCount(DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("yyyyMMdd"));

            //    //获取当天已经访问来了的IP
            //    IList<ClickIPInfo> ipList = clickDal.SelectAllClickIPByDate(DateTime.Now.ToString("yyyyMMdd"));
            //    //和当前IP相同的
            //    ipList = ipList.Where(o => o.VisitIP == ip).ToList();

            //    for (int i = 0; i < ipList.Count; i++)
            //    {
            //        //已经访问了该广告
            //        IList<UserAdsInfo> hadlist = list.Where(o => o.Id == ipList[i].UserAdsId).ToList();
            //        if (hadlist.Count > 0)
            //        {qin
            //            list.Remove(hadlist[0]);
            //        }
            //    }
            //}


            if (DateTime.Now.Hour >= 0 && DateTime.Now.Hour < 12)
            {
                IList <Guid> clickIPlist = uasDal.SelectAllClickIP(DateTime.Now, ip);
                foreach (Guid gid in clickIPlist)
                {
                    IList <UserAdsInfo> hadlist = list.Where(o => o.Id == gid).ToList();
                    if (hadlist.Count > 0)
                    {
                        list.Remove(hadlist[0]);
                    }
                }
            }

            if (list.Count == 0)
            {
                return;
            }

            int suiCount = 0;

            if ((int)DateTime.Now.DayOfWeek == 1)
            {
                suiCount = rand.Next(3, 6);
            }

            if ((int)DateTime.Now.DayOfWeek == 2)
            {
                suiCount = rand.Next(6, 8);
            }

            if ((int)DateTime.Now.DayOfWeek == 3)
            {
                suiCount = rand.Next(8, 10);
            }

            if ((int)DateTime.Now.DayOfWeek == 4)
            {
                suiCount = rand.Next(10, 12);
            }

            if ((int)DateTime.Now.DayOfWeek == 5)
            {
                suiCount = rand.Next(8, 10);
            }

            if ((int)DateTime.Now.DayOfWeek == 6)
            {
                suiCount = rand.Next(6, 8);
            }

            if ((int)DateTime.Now.DayOfWeek == 0)
            {
                suiCount = rand.Next(1, 3);
            }

            if (list.Where(o => o.IsSend < (10 + suiCount)).ToList().Count > 0)
            {
                list = list.Where(o => o.IsSend < (10 + suiCount)).ToList();
            }

            //for (int i = 0; i < clickList.Count; i++)
            //{

            //    if (clickList[i].ClickCount >= num1)//10)
            //    {
            //        IList<UserAdsInfo> hadlist = list.Where(o => o.Id == clickList[i].UserAdsId).ToList();

            //        if (hadlist.Count > 0)
            //        {
            //            FeeInfo finfo = CacheCollection.GetAllFeeInfo().Where(o => o.FeeId == hadlist[0].FeeId).ToList()[0];
            //            if (finfo.AdsType == 1)
            //            {
            //                if (finfo.AdsCount == 1)
            //                    list.Remove(hadlist[0]);
            //                else
            //                {
            //                    if (clickList[i].ClickCount >= num2)//18)
            //                        list.Remove(hadlist[0]);
            //                }
            //            }
            //            if (finfo.AdsType == 5)
            //            {
            //                if (clickList[i].ClickCount >= num3) //27)
            //                    list.Remove(hadlist[0]);
            //            }
            //        }
            //    }
            //}

            if (list.Count == 0)
            {
                return;
            }

            UserAdsInfo uinfo = list[0];
            if (list.Count > 1)
            {
                uinfo = list[rand.Next(list.Count)];
            }

            ClickIPInfo iinfo = new ClickIPInfo();
            iinfo.VisitIP   = ip;
            iinfo.ClickId   = Guid.NewGuid();
            iinfo.VisitDate = DateTime.Now.ToString("yyyyMMdd");
            iinfo.UserAdsId = uinfo.Id;
            clickDal.InsertClickIP(iinfo);

            string param = "id=" + uinfo.Id + "&url=" + uinfo.AdsUrl;
            Response.Redirect("getclick.aspx?" + HttpUtility.UrlEncode(param));
        }
    }