예제 #1
0
        /// <summary>
        /// 获取在线用户列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <returns>数据表</returns>
        public DataTable GetOnLineState(BaseUserInfo userInfo)
        {
            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                var userLogOnManager = new BaseUserLogOnManager(dbHelper, userInfo);
                // 设置为在线状态
                userLogOnManager.OnLine(userInfo.Id);
                if (MessageService.LaseOnLineStateCheck == DateTime.MinValue)
                {
                }
                else
                {
                    // 2008.01.23 JiRiGaLa 修正错误
                    TimeSpan timeSpan = DateTime.Now - MessageService.LaseOnLineStateCheck;
                    if ((timeSpan.Minutes * 60 + timeSpan.Seconds) >= BaseSystemInfo.OnLineCheck)
                    {
                    }
                }
                if (OnLineStateDT == null)
                {
                    // 检查用户在线状态(服务器专用)
                    userLogOnManager.CheckOnLine();
                    // 获取在线状态列表
                    OnLineStateDT                       = userLogOnManager.GetOnLineStateDT();
                    OnLineStateDT.TableName             = BaseUserEntity.TableName;
                    MessageService.LaseOnLineStateCheck = DateTime.Now;
                }
            });

            return(InnerOrganizeDT);
        }