Commit 5ba178d5 by Future

系统通知推送

parent 4b9b590f
...@@ -189,6 +189,15 @@ public class NormalChatAction { ...@@ -189,6 +189,15 @@ public class NormalChatAction {
imConversationMembersService.updateBatchById(tempMemberToUpdate); imConversationMembersService.updateBatchById(tempMemberToUpdate);
} }
} }
String key = "push_" + conversation.getId();
String value = redisUtils.getKey(key);
final Boolean isPush;
if (StringUtils.isBlank(value)) {
isPush = Boolean.TRUE;
redisUtils.addKey(key, "1", Duration.ofMinutes(2));
} else {
isPush = Boolean.FALSE;
}
// 多线程处理消息下发 // 多线程处理消息下发
for (ImConversationMembers member : membersList) { for (ImConversationMembers member : membersList) {
if (member.getFkClientId().equals(imClientSender.getId())) { if (member.getFkClientId().equals(imClientSender.getId())) {
...@@ -196,7 +205,7 @@ public class NormalChatAction { ...@@ -196,7 +205,7 @@ public class NormalChatAction {
continue; continue;
} }
SendMsgThreadPool.SEND_MSG_THREAD_POOL_EXECUTOR.execute(() -> { SendMsgThreadPool.SEND_MSG_THREAD_POOL_EXECUTOR.execute(() -> {
this.sendMsgToMember(imApplication, member, imMessageOnlineSend, data.getPush()); this.sendMsgToMember(imApplication, member, imMessageOnlineSend, data.getPush(), isPush);
}); });
} }
...@@ -204,20 +213,14 @@ public class NormalChatAction { ...@@ -204,20 +213,14 @@ public class NormalChatAction {
response(reqId, imMessageOnlineSend.getMsgId(), request.getSenderChannel()); response(reqId, imMessageOnlineSend.getMsgId(), request.getSenderChannel());
} }
private void sendMsgToMember(ImApplication imApplication, ImConversationMembers member, ImMessageOnlineSend imMessageOnlineSend, PushVO push) { private void sendMsgToMember(ImApplication imApplication, ImConversationMembers member, ImMessageOnlineSend imMessageOnlineSend, PushVO push, Boolean isPush) {
// 在线用户直接发消息 // 在线用户直接发消息
Boolean sendSuccess = sendMsgForOnline(member.getFkClientId(), imMessageOnlineSend); Boolean sendSuccess = sendMsgForOnline(member.getFkClientId(), imMessageOnlineSend);
if (isPush && !sendSuccess && !member.getDoNotDisturb()) {
if (!sendSuccess && !member.getDoNotDisturb()) { // 异步推送系统通知消息 2分钟内推一次消息
String key = "push_" + member.getFkClientId(); PushDTO pushDTO = mqSender.buildPushDto(push, member.getFkClientId(), member.getClientId(), imApplication);
String value = redisUtils.getKey(key); if (pushDTO != null) {
if (StringUtils.isBlank(value)) { mqSender.orderSend(MqConstant.Topic.IM_ORDER_MSG_TOPIC, MqConstant.Tag.IM_ORDER_MSG_TAG, pushDTO);
// 异步推送系统通知消息 2分钟内推一次消息
redisUtils.addKey(key, "1", Duration.ofMinutes(2));
PushDTO pushDTO = mqSender.buildPushDto(push, member.getFkClientId(), member.getClientId(), imApplication);
if (pushDTO != null) {
mqSender.orderSend(MqConstant.Topic.IM_ORDER_MSG_TOPIC, MqConstant.Tag.IM_ORDER_MSG_TAG, pushDTO);
}
} }
} }
} }
......
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