Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 用户现在
        /// </summary>
        /// <param name="taskId">任务标识</param>
        /// <param name="userInfo">用户</param>
        /// <param name="onLineState">用户在线状态</param>
        public void OnLine(string taskId, BaseUserInfo userInfo, int onLineState = 1)
        {
            var parameter = ServiceInfo.Create(taskId, userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                BaseUserLogOnManager userLogOnManager = new BaseUserLogOnManager();
                userLogOnManager.OnLine(userInfo.Id, onLineState);
            });
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 检查在线状态
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="onLineState">用户在线状态</param>
        /// <returns>离线人数</returns>
        public int CheckOnLine(BaseUserInfo userInfo, int onLineState)
        {
            int result = 0;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                var userLogOnManager = new BaseUserLogOnManager(dbHelper);
                // 设置为在线状态
                userLogOnManager.OnLine(userInfo.Id, onLineState);
                result = userLogOnManager.CheckOnLine();
            });
            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取消息状态
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="onLineState">用户在线状态</param>
        /// <param name="lastChekDate">最后检查日期</param>
        /// <returns>消息状态数组</returns>
        public string[] MessageChek(BaseUserInfo userInfo, int onLineState, string lastChekDate)
        {
            string[] result = null;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                // 设置为在线状态
                var userLogOnManager = new BaseUserLogOnManager(dbHelper, userInfo);
                userLogOnManager.OnLine(userInfo.Id, onLineState);
                // 读取信息状态
                var messageManager = new BaseMessageManager(userInfo);
                result             = messageManager.MessageChek();
            });

            return(result);
        }