From 339365b552e2111fb6dccd3f4e169994b8f20ee2 Mon Sep 17 00:00:00 2001 From: blue <825657193@qq.com> Date: Sat, 20 Apr 2024 15:40:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E5=AD=97=E5=9B=BE=E5=83=8F=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=96=B9=E5=BD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bx/imclient/sender/IMSender.java | 47 ++++++++++--------- im-ui/src/components/common/HeadImage.vue | 2 +- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/im-client/src/main/java/com/bx/imclient/sender/IMSender.java b/im-client/src/main/java/com/bx/imclient/sender/IMSender.java index 6fc1297..1e0a7f6 100644 --- a/im-client/src/main/java/com/bx/imclient/sender/IMSender.java +++ b/im-client/src/main/java/com/bx/imclient/sender/IMSender.java @@ -30,30 +30,33 @@ public class IMSender { public void sendPrivateMessage(IMPrivateMessage message) { List results = new LinkedList<>(); - for (Integer terminal : message.getRecvTerminals()) { - // 获取对方连接的channelId - String key = String.join(":", IMRedisKey.IM_USER_SERVER_ID, message.getRecvId().toString(), terminal.toString()); - Integer serverId = (Integer)redisTemplate.opsForValue().get(key); - // 如果对方在线,将数据存储至redis,等待拉取推送 - if (serverId != null) { - String sendKey = String.join(":", IMRedisKey.IM_MESSAGE_PRIVATE_QUEUE, serverId.toString()); - IMRecvInfo recvInfo = new IMRecvInfo(); - recvInfo.setCmd(IMCmdType.PRIVATE_MESSAGE.code()); - recvInfo.setSendResult(message.getSendResult()); - recvInfo.setServiceName(appName); - recvInfo.setSender(message.getSender()); - recvInfo.setReceivers(Collections.singletonList(new IMUserInfo(message.getRecvId(), terminal))); - recvInfo.setData(message.getData()); - redisTemplate.opsForList().rightPush(sendKey, recvInfo); - } else { - IMSendResult result = new IMSendResult(); - result.setSender(message.getSender()); - result.setReceiver(new IMUserInfo(message.getRecvId(), terminal)); - result.setCode(IMSendCode.NOT_ONLINE.code()); - result.setData(message.getData()); - results.add(result); + if(!Objects.isNull(message.getRecvId())){ + for (Integer terminal : message.getRecvTerminals()) { + // 获取对方连接的channelId + String key = String.join(":", IMRedisKey.IM_USER_SERVER_ID, message.getRecvId().toString(), terminal.toString()); + Integer serverId = (Integer)redisTemplate.opsForValue().get(key); + // 如果对方在线,将数据存储至redis,等待拉取推送 + if (serverId != null) { + String sendKey = String.join(":", IMRedisKey.IM_MESSAGE_PRIVATE_QUEUE, serverId.toString()); + IMRecvInfo recvInfo = new IMRecvInfo(); + recvInfo.setCmd(IMCmdType.PRIVATE_MESSAGE.code()); + recvInfo.setSendResult(message.getSendResult()); + recvInfo.setServiceName(appName); + recvInfo.setSender(message.getSender()); + recvInfo.setReceivers(Collections.singletonList(new IMUserInfo(message.getRecvId(), terminal))); + recvInfo.setData(message.getData()); + redisTemplate.opsForList().rightPush(sendKey, recvInfo); + } else { + IMSendResult result = new IMSendResult(); + result.setSender(message.getSender()); + result.setReceiver(new IMUserInfo(message.getRecvId(), terminal)); + result.setCode(IMSendCode.NOT_ONLINE.code()); + result.setData(message.getData()); + results.add(result); + } } } + // 推送给自己的其他终端 if(message.getSendToSelf()){ for (Integer terminal : IMTerminalType.codes()) { diff --git a/im-ui/src/components/common/HeadImage.vue b/im-ui/src/components/common/HeadImage.vue index 0ca2985..ce438de 100644 --- a/im-ui/src/components/common/HeadImage.vue +++ b/im-ui/src/components/common/HeadImage.vue @@ -84,7 +84,7 @@ .avatar-text{ background-color: #f2f2f2; /* 默认背景色 */ - border-radius: 50%; /* 圆角效果 */ + border-radius: 10%; /* 圆角效果 */ display: flex; align-items: center; justify-content: center;