Commit 4022001d by Future

事件消息存储 msgType补存

parent 0319f9a1
...@@ -34,6 +34,7 @@ import com.wecloud.im.ws.enums.WsResponseCmdEnum; ...@@ -34,6 +34,7 @@ import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import com.wecloud.im.ws.model.WsResponse; import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.sender.ChannelSender; import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.utils.JsonUtils; import com.wecloud.utils.JsonUtils;
import com.wecloud.utils.SnowflakeUtil;
import io.geekidea.springbootplus.framework.common.api.ApiCode; import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.enums.BaseEnum; import io.geekidea.springbootplus.framework.common.enums.BaseEnum;
...@@ -42,7 +43,6 @@ import io.geekidea.springbootplus.framework.core.pagination.PageInfo; ...@@ -42,7 +43,6 @@ import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken; import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import io.geekidea.springbootplus.framework.shiro.util.JwtUtil; import io.geekidea.springbootplus.framework.shiro.util.JwtUtil;
import com.wecloud.utils.SnowflakeUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheConfig;
...@@ -295,11 +295,11 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -295,11 +295,11 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
Map<String, Object> content = new HashMap<>(); Map<String, Object> content = new HashMap<>();
content.put("operator", imClientSender.getClientId()); //操作的client ID content.put("operator", imClientSender.getClientId()); //操作的client ID
content.put("passivityOperator", clientToConversation.getClientId()); //被操作的client ID content.put("passivityOperator", clientToConversation.getClientId()); //被操作的client ID
content.put("type", MsgTypeEnum.INVITE_CLIENT_JOIN_CONVERSATION.getUriCode()); //xx邀请xx加入会话 -1007
imMessage.setContent(JsonUtils.encodeJson(content)); imMessage.setContent(JsonUtils.encodeJson(content));
// 保存消息至消息表 // 保存消息至消息表
imMessage.setId(messageId); imMessage.setId(messageId);
imMessage.setMsgType(MsgTypeEnum.INVITE_CLIENT_JOIN_CONVERSATION.getUriCode());
imMessage.setCreateTime(new Date()); imMessage.setCreateTime(new Date());
imMessage.setFkAppid(imApplication.getId()); imMessage.setFkAppid(imApplication.getId());
imMessage.setSender(imClientSender.getId()); imMessage.setSender(imClientSender.getId());
...@@ -310,31 +310,43 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -310,31 +310,43 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
imMessage.setFkConversationId(imClientToConversation.getConversationId()); imMessage.setFkConversationId(imClientToConversation.getConversationId());
boolean save = imMessageService.save(imMessage); boolean save = imMessageService.save(imMessage);
// 遍历发送 // 遍历发送给已在群内的成员
for (ImConversationMembers conversationMembers : membersList) { for (ImConversationMembers conversationMember : membersList) {
sendEventMsgToMember(imApplication, conversationMember.getFkClientId(), imMessage, imClientSender, clientToConversation);
}
// 发送给刚被拉入群的成员
sendEventMsgToMember(imApplication, clientToConversation.getId(), imMessage, imClientSender, clientToConversation);
}
// 将群成员数量减
imConversationMapper.addMemberCount(imApplication.getId(), imClientToConversation.getConversationId(), needAddCount);
ImConversationQueryVo conversation = imConversationMapper.getImConversationById(imClientToConversation.getConversationId());
if (conversation.getMemberCount() > 2000) {
// 升级为万人群
imConversationMapper.upgradeToThousandChat(imApplication.getId(), imClientToConversation.getConversationId());
}
return ApiResult.ok();
}
private void sendEventMsgToMember(ImApplication imApplication, Long conversationMemberClientId, ImMessage imMessage,
ImClient clientSender, ImClient clientToConversation) {
// 查询接收方 // 查询接收方
ImClient imClientReceiver = imClientService.getOne(new QueryWrapper<ImClient>().lambda() ImClient imClientReceiver = imClientService.getOne(new QueryWrapper<ImClient>().lambda()
.eq(ImClient::getFkAppid, imApplication.getId()) .eq(ImClient::getFkAppid, imApplication.getId())
.eq(ImClient::getId, conversationMembers.getFkClientId())); .eq(ImClient::getId, conversationMemberClientId));
if (imClientReceiver == null) { if (imClientReceiver == null) {
continue; return;
} }
// 封装响应的实体 // 封装响应的实体
ImMessageOnlineSend imMessageOnlineSend = new ImMessageOnlineSend(); ImMessageOnlineSend imMessageOnlineSend = new ImMessageOnlineSend();
imMessageOnlineSend.setMsgId(messageId); imMessageOnlineSend.setMsgId(imMessage.getId());
imMessageOnlineSend.setType(MsgTypeEnum.INVITE_CLIENT_JOIN_CONVERSATION.getUriCode()); imMessageOnlineSend.setType(imMessage.getMsgType());
imMessageOnlineSend.setSender(imClientSender.getClientId()); imMessageOnlineSend.setSender(clientSender.getClientId());
Map<String, String> contentMap = new HashMap<>(); imMessageOnlineSend.setContent(JsonUtils.decodeJson2Map(imMessage.getContent()));
// 操作的client ID imMessageOnlineSend.setConversationId(imMessage.getFkConversationId());
contentMap.put("operator", imClientSender.getClientId());
// 被操作的client ID
contentMap.put("passivityOperator", clientToConversation.getClientId());
imMessageOnlineSend.setContent(contentMap);
imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId());
imMessageOnlineSend.setWithdraw(Boolean.FALSE); imMessageOnlineSend.setWithdraw(Boolean.FALSE);
imMessageOnlineSend.setEvent(Boolean.TRUE); imMessageOnlineSend.setEvent(Boolean.TRUE);
...@@ -347,21 +359,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -347,21 +359,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
responseModel.setData(imMessageOnlineSend); responseModel.setData(imMessageOnlineSend);
responseModel.setReqId(null); responseModel.setReqId(null);
channelSender.sendMsg(responseModel, imClientReceiver.getId()); channelSender.sendMsg(responseModel, imClientReceiver.getId());
}
}
// 将群成员数量减
imConversationMapper.addMemberCount(imApplication.getId(), imClientToConversation.getConversationId(), needAddCount);
ImConversationQueryVo conversation = imConversationMapper.getImConversationById(imClientToConversation.getConversationId());
if(conversation.getMemberCount() > 2000) {
// 升级为万人群
imConversationMapper.upgradeToThousandChat(imApplication.getId(), imClientToConversation.getConversationId());
}
return ApiResult.ok();
} }
@Override @Override
...@@ -425,11 +422,11 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -425,11 +422,11 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
Map<String, Object> content = new HashMap<>(); Map<String, Object> content = new HashMap<>();
content.put("operator", imClientSender.getClientId()); //操作的client ID content.put("operator", imClientSender.getClientId()); //操作的client ID
content.put("passivityOperator", client2.getClientId()); //被操作的client ID content.put("passivityOperator", client2.getClientId()); //被操作的client ID
content.put("type", MsgTypeEnum.REMOVE_CLIENT_CONVERSATION.getUriCode()); //xx被xx移出会话 -1008
imMessage.setContent(JsonUtils.encodeJson(content)); imMessage.setContent(JsonUtils.encodeJson(content));
// 保存消息至消息表 // 保存消息至消息表
imMessage.setId(messageId); imMessage.setId(messageId);
imMessage.setMsgType(MsgTypeEnum.REMOVE_CLIENT_CONVERSATION.getUriCode());
imMessage.setCreateTime(new Date()); imMessage.setCreateTime(new Date());
imMessage.setFkAppid(imApplication.getId()); imMessage.setFkAppid(imApplication.getId());
imMessage.setSender(imClientSender.getId()); imMessage.setSender(imClientSender.getId());
...@@ -455,14 +452,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -455,14 +452,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
ImMessageOnlineSend imMessageOnlineSend = new ImMessageOnlineSend(); ImMessageOnlineSend imMessageOnlineSend = new ImMessageOnlineSend();
imMessageOnlineSend.setMsgId(messageId); imMessageOnlineSend.setMsgId(messageId);
imMessageOnlineSend.setType(MsgTypeEnum.REMOVE_CLIENT_CONVERSATION.getUriCode()); imMessageOnlineSend.setType(imMessage.getMsgType());
imMessageOnlineSend.setSender(imClientSender.getClientId()); imMessageOnlineSend.setSender(imClientSender.getClientId());
Map<String, Object> contentMap = new HashMap<>(); imMessageOnlineSend.setContent(content);
// 操作的client ID
contentMap.put("operator", imClientSender.getClientId());
// 被操作的client ID
contentMap.put("passivityOperator", client2.getClientId());
imMessageOnlineSend.setContent(contentMap);
imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId()); imMessageOnlineSend.setConversationId(conversationMembers.getFkConversationId());
imMessageOnlineSend.setWithdraw(Boolean.FALSE); imMessageOnlineSend.setWithdraw(Boolean.FALSE);
imMessageOnlineSend.setEvent(Boolean.TRUE); imMessageOnlineSend.setEvent(Boolean.TRUE);
...@@ -476,9 +468,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -476,9 +468,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
responseModel.setData(imMessageOnlineSend); responseModel.setData(imMessageOnlineSend);
responseModel.setReqId(null); responseModel.setReqId(null);
channelSender.sendMsg(responseModel, imClientReceiver.getId()); channelSender.sendMsg(responseModel, imClientReceiver.getId());
} }
} }
// 将群成员数量减 // 将群成员数量减
...@@ -540,13 +530,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap ...@@ -540,13 +530,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
long messageId = SnowflakeUtil.getId(); long messageId = SnowflakeUtil.getId();
ImMessage imMessage = new ImMessage(); ImMessage imMessage = new ImMessage();
Map<String, Object> content = new HashMap<>();
content.put("type", MsgTypeEnum.LEAVE_CONVERSATION.getUriCode()); // xx主动退出会话
String asString = JsonUtils.encodeJson(content);;
imMessage.setContent(asString);
// 保存消息至消息表 // 保存消息至消息表
imMessage.setId(messageId); imMessage.setId(messageId);
imMessage.setMsgType(MsgTypeEnum.LEAVE_CONVERSATION.getUriCode());
imMessage.setCreateTime(new Date()); imMessage.setCreateTime(new Date());
imMessage.setFkAppid(imApplication.getId()); imMessage.setFkAppid(imApplication.getId());
imMessage.setSender(imClientSender.getId()); imMessage.setSender(imClientSender.getId());
......
...@@ -179,6 +179,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox> ...@@ -179,6 +179,7 @@ public class ImInboxServiceImpl extends BaseServiceImpl<ImInboxMapper, ImInbox>
// 消息实体 // 消息实体
ImMessage imMessage = new ImMessage(); ImMessage imMessage = new ImMessage();
imMessage.setId(msgId); imMessage.setId(msgId);
imMessage.setMsgType(msgTypeEnum.getUriCode());
imMessage.setCreateTime(new Date()); imMessage.setCreateTime(new Date());
imMessage.setFkAppid(curentClient.getFkAppid()); imMessage.setFkAppid(curentClient.getFkAppid());
imMessage.setSender(curentClient.getId()); imMessage.setSender(curentClient.getId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment