Loading

总访问量,日访问量,周访问量统计代码

这个方法用于实现页面访问统计, 不足之处还望各位原油指正

总访问量,日访问量,周访问量

代码中使用了Linq

 

        /// <summary>
        
/// 更新案例访问量
        
/// </summary>
        
/// <param name="ID">案例ID</param>
        public static void UpdateViewCount(int ID)
        {

            var ctx 
= LinqDB.LQProvider.GetLQDB();
            LinqDB.Photo_Categories pc 
= ctx.Photo_Categories.SingleOrDefault(p => p.ID == ID);
            
//如果没有取到对象则跳出
            if (pc==null)
            {
                
return;
            }
            
//获取当前Session 
            HttpSessionState session = HttpContext.Current.Session;

            
string key = "ViewCount_Photo_Categories";

            List
<int> ids = new List<int>();
            
//创建一个列表对象保存当前用户浏览过的相册ID集合
            
//从Session中读取列表
            if (session[key] is List<int>)
            {
                ids 
= session[key] as List<int>;
            }
            
//如果列表中不存在则添加并保存至session 并更新访问量
            if (!ids.Contains(ID))
            {
                ids.Add(ID);
                session[key] 
= ids;
                
//最后访问时间
                DateTime lastViewTime = pc.LastViewTime ?? DateTime.Now;
                
//当前时间与最后访问时间的差
                TimeSpan deffer = DateTime.Now - lastViewTime;
                
//访问总数
                int ViewCount = pc.ViewCount ?? 0;
                
//周访问
                int WeekViewCount = pc.WeekViewCount ?? 0;
                
//日访问
                int DayViewCount = pc.DayViewCount ?? 0;
                
//如果相差天数大于7天
                if (deffer.TotalDays > 7)
                {
                    
//重设周访问量
                    WeekViewCount = 1;
                }

                
else //不大于7天 
                {
                    
//如果相差时间大于24小时
                    if (deffer.TotalHours > 24d)
                    {
                        DayViewCount 
= 1;
                    }
                    
else//如果在24小时之内
                    {
                        
//日访问增加
                        DayViewCount++;
                    }
                    
//周访问量增加
                    WeekViewCount++;
                }
                
//总访问量增加
                ViewCount++;

                pc.ViewCount 
= ViewCount;
                pc.WeekViewCount 
= WeekViewCount;
                pc.DayViewCount 
= DayViewCount;
                pc.LastViewTime 
= lastViewTime;
                ctx.SubmitChanges();
//提交数据库
            }
        }

 

 

posted @ 2010-06-26 13:42  韩严重  阅读(1365)  评论(0编辑  收藏  举报