/// <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)); }
/// <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); }
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); }
/// <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)); }