コード例 #1
0
        /// <summary>
        /// 添加未读消息信息
        /// 人员筛选业务包括在内,将已在线的去掉
        /// </summary>
        /// <param name="messageType">消息类型</param>
        /// <param name="clientUserIds">接收到的人员Id</param>
        ///<param name="clientUserIds">组织Id</param>
        /// <returns>返回操作成功True 操作失败False</returns>
        public bool AddUserToUserMsg(EnumHelper.MessageType messageType, List <string> clientUserIds, string groupId)
        {
            List <string> outLineUserIds = new List <string>();

            //不在线的用户添加到outLineUserIds
            foreach (string clientUserId in clientUserIds)
            {
                if (!iAnaylizeOnlineUser.IsGroupOnline(clientUserId, groupId))
                {
                    outLineUserIds.Add(clientUserId);
                }
            }
            //如果都在线,不做任何操作
            if (outLineUserIds.Count == 0)
            {
                return(true);
            }
            //加队列,加缓存

            UnReadMsg dbMsg;
            var       list = new List <UnReadMsg>();

            foreach (var id in outLineUserIds)
            {
                dbMsg = new UnReadMsg
                {
                    clientUserId = id,
                    GroupId      = groupId,
                    MessageType  = messageType,
                    UnReadCount  = 1,
                    AllCount     = 1
                };
                list.Add(dbMsg);
            }
            //将未读消息添加到缓存
            iPushCache.UpdateUnReadDataCache(list);
            //将未读消息添加到队列
            return(pushQueue.AddUnReadMsgToQueue(list));
        }
コード例 #2
0
 /// <summary>
 /// 更新某个用户的未读消息
 /// </summary>
 /// <param name="messageType">消息类型</param>
 /// <param name="clientUserId">用户ID</param>
 /// <param name="count">count+=count</param>
 /// <returns>返回操作成功True 操作失败False</returns>
 public bool UpdateUserUnReadCount(EnumHelper.MessageType messageType, string clientUserId, int count = 0)
 {
     // FakeQueueUnReadMsg.FirstOrDefault()
     return(true);
 }
コード例 #3
0
        private UnReadMsg GetRecord(string clientUserId, string groupId, EnumHelper.MessageType messageType)
        {
            var first = FakeQueueUnReadMsg.FirstOrDefault(x => x.clientUserId == clientUserId && x.MessageType == messageType && x.GroupId == groupId);

            return(first);
        }
コード例 #4
0
        /// <summary>
        /// 消息推送到组织添加未读
        /// 根据组织Id操作内部业务逻辑,获取未在线名单
        /// </summary>
        /// <param name="messageType">消息类型</param>
        /// <param name="groupId">组织Id</param>
        /// <returns>返回操作成功True 操作失败False</returns>
        public bool AddUserToGroupMsg(EnumHelper.MessageType messageType, string groupId)
        {
            GroupUser groupAllUser = iPushCache.GetGroupUserFromCache(groupId);

            return(AddUserToUserMsg(messageType, groupAllUser.clientUserIds, groupId));
        }