From 29fe8996689bb78d2715d686e3de2020a4e11ee5 Mon Sep 17 00:00:00 2001 From: mroldx Date: Tue, 12 Sep 2023 23:34:30 +0800 Subject: [PATCH 1/5] =?UTF-8?q?remove:=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 2af5e0d..882baa0 100644 --- a/pom.xml +++ b/pom.xml @@ -49,11 +49,6 @@ - - com.abin.mallchat - mallchat-common - ${version} - com.abin.mallchat mallchat-common-starter From 6114c9da2e62c362a4080637131f70f01fd86453 Mon Sep 17 00:00:00 2001 From: fayel Date: Thu, 14 Sep 2023 15:35:44 +0800 Subject: [PATCH 2/5] Fix a bug when checking a @user list of a text message --- .../common/chat/service/strategy/msg/TextMsgHandler.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/chat/service/strategy/msg/TextMsgHandler.java b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/chat/service/strategy/msg/TextMsgHandler.java index 5b1662d..ca7e8c9 100644 --- a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/chat/service/strategy/msg/TextMsgHandler.java +++ b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/chat/service/strategy/msg/TextMsgHandler.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; /** * Description: 普通文本消息 @@ -68,9 +69,12 @@ public class TextMsgHandler extends AbstractMsgHandler { AssertUtil.equal(replyMsg.getRoomId(), request.getRoomId(), "只能回复相同会话内的消息"); } if (CollectionUtil.isNotEmpty(body.getAtUidList())) { - List atUidList = body.getAtUidList(); + //前端传入的@用户列表可能会重复,需要去重 + List atUidList = body.getAtUidList().stream().distinct().collect(Collectors.toList()); Map batch = userInfoCache.getBatch(atUidList); - AssertUtil.equal(atUidList.size(), batch.values().size(), "@用户不存在"); + //如果@用户不存在,userInfoCache 返回的map中依然存在该key,但是value为null,需要过滤掉再校验 + long batchCount = batch.values().stream().filter(Objects::nonNull).count(); + AssertUtil.equal((long)atUidList.size(), batchCount, "@用户不存在"); boolean atAll = body.getAtUidList().contains(0L); if (atAll) { AssertUtil.isTrue(iRoleService.hasPower(uid, RoleEnum.CHAT_MANAGER), "没有权限"); From 2c160e0e39564dc7a5fbb9a9e46b19492daa0ed9 Mon Sep 17 00:00:00 2001 From: fayel Date: Thu, 14 Sep 2023 15:41:31 +0800 Subject: [PATCH 3/5] Delete UserSummary cache after modifying user info --- .../abin/mallchat/common/user/service/cache/UserCache.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/user/service/cache/UserCache.java b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/user/service/cache/UserCache.java index 819773f..0705d17 100644 --- a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/user/service/cache/UserCache.java +++ b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/user/service/cache/UserCache.java @@ -39,6 +39,8 @@ public class UserCache { private RoleDao roleDao; @Autowired private UserRoleDao userRoleDao; + @Autowired + private UserSummaryCache userSummaryCache; public Long getOnlineNum() { String onlineKey = RedisKey.getKey(RedisKey.ONLINE_UID_ZET); @@ -137,6 +139,8 @@ public class UserCache { public void userInfoChange(Long uid) { delUserInfo(uid); + //删除UserSummaryCache,前端下次懒加载的时候可以获取到最新的数据 + userSummaryCache.delete(uid); refreshUserModifyTime(uid); } From 497070e9e0dbbffe3c29e946d8df6dd4bb637aa9 Mon Sep 17 00:00:00 2001 From: yangwenping Date: Tue, 19 Sep 2023 14:36:29 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=20main=E5=88=86?= =?UTF-8?q?=E6=94=AF=E4=B8=8Bsql=E6=96=87=E4=BB=B6=20=20role=E8=A1=A8?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/mallchat.sql | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/mallchat.sql b/docs/mallchat.sql index 3ae47ed..9547a32 100644 --- a/docs/mallchat.sql +++ b/docs/mallchat.sql @@ -187,8 +187,6 @@ CREATE TABLE `user_role` ( KEY `idx_update_time` (`update_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关系表'; -insert into role(id,`name`) values(1,'超级管理员'); -insert into role(id,`name`) values(2,'抹茶群聊管理员'); DROP TABLE IF EXISTS `sensitive_word`; CREATE TABLE `sensitive_word` ( From d78624caa783c00c0e6387bc17c25ae386e84f03 Mon Sep 17 00:00:00 2001 From: DJX Date: Wed, 20 Sep 2023 12:39:03 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E5=88=9B=E5=BB=BANettyWebSocketServerHandler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../abin/mallchat/common/websocket/NettyWebSocketServer.java | 3 ++- .../mallchat/common/websocket/NettyWebSocketServerHandler.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServer.java b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServer.java index 88780dd..ec24883 100644 --- a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServer.java +++ b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServer.java @@ -27,6 +27,7 @@ import javax.annotation.PreDestroy; @Configuration public class NettyWebSocketServer { public static final int WEB_SOCKET_PORT = 8090; + public static final NettyWebSocketServerHandler NETTY_WEB_SOCKET_SERVER_HANDLER = new NettyWebSocketServerHandler(); // 创建线程池执行器 private EventLoopGroup bossGroup = new NioEventLoopGroup(1); private EventLoopGroup workerGroup = new NioEventLoopGroup(NettyRuntime.availableProcessors()); @@ -90,7 +91,7 @@ public class NettyWebSocketServer { */ pipeline.addLast(new WebSocketServerProtocolHandler("/")); // 自定义handler ,处理业务逻辑 - pipeline.addLast(new NettyWebSocketServerHandler()); + pipeline.addLast(NETTY_WEB_SOCKET_SERVER_HANDLER); } }); // 启动服务器,监听端口,阻塞直到启动成功 diff --git a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServerHandler.java b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServerHandler.java index 040ee0b..2c258b8 100644 --- a/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServerHandler.java +++ b/mallchat-chat-server/src/main/java/com/abin/mallchat/common/websocket/NettyWebSocketServerHandler.java @@ -7,6 +7,7 @@ import com.abin.mallchat.common.user.domain.enums.WSReqTypeEnum; import com.abin.mallchat.common.user.domain.vo.request.ws.WSAuthorize; import com.abin.mallchat.common.user.domain.vo.request.ws.WSBaseReq; import com.abin.mallchat.common.user.service.WebSocketService; +import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; @@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j +@Sharable public class NettyWebSocketServerHandler extends SimpleChannelInboundHandler { private WebSocketService webSocketService;