diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java index b677e1c5..4bbfc9ba 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java @@ -68,12 +68,12 @@ public class ChatServer { }); log.info("Netty聊天服务器启动,端口:" + port); - bootstrap.bind(port).sync(); -// ChannelFuture future = bootstrap.bind(port).sync(); -// future.channel().closeFuture().sync(); +// bootstrap.bind(port).sync(); + ChannelFuture future = bootstrap.bind(port).sync(); + future.channel().closeFuture().sync(); } finally { -// workerGroup.shutdownGracefully().sync(); -// bossGroup.shutdownGracefully().sync(); + workerGroup.shutdownGracefully().sync(); + bossGroup.shutdownGracefully().sync(); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java index 6dc795cc..01b43584 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java @@ -21,6 +21,7 @@ import org.dromara.system.service.impl.SysOssServiceImpl; import org.dromara.system.service.impl.SysUserServiceImpl; import org.dromara.websocket.domain.ChatGroup; import org.dromara.websocket.domain.ChatHistory; +import org.dromara.websocket.domain.enums.ChatRoomEnum; import org.dromara.websocket.service.Impl.ChatGroupServiceImpl; import org.dromara.websocket.service.Impl.ChatHistoryServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -154,16 +155,16 @@ public class ChatServerHandler extends SimpleChannelInboundHandler userIds = new ArrayList<>(); - //类型转换 - for (String s : onlineUserList) { - userIds.add(Long.parseLong(s)); - } - List userDTOS = sysUserService.selectListByIds(userIds); - - JSONObject message = new JSONObject(); - message.put("type", "2"); - message.put("users", userDTOS); - channelGroup.writeAndFlush(new TextWebSocketFrame(message.toJSONString())); +// List userIds = new ArrayList<>(); +// //类型转换 +// for (String s : onlineUserList) { +// userIds.add(Long.parseLong(s)); +// } +// List userDTOS = sysUserService.selectListByIds(userIds); +// +// JSONObject message = new JSONObject(); +// message.put("type", "2"); +// message.put("users", userDTOS); +// channelGroup.writeAndFlush(new TextWebSocketFrame(message.toJSONString())); } else { userChannelMap.put(userId, channelHandlerContexts); } @@ -467,13 +470,13 @@ public class ChatServerHandler extends SimpleChannelInboundHandler{ //生成系统消息的聊天记录 - lambdaQueryWrapper.eq(ChatGroup::getMembers,"[99, "+userId+"]"); + lambdaQueryWrapper.eq(ChatGroup::getMembers,"["+ChatRoomEnum.SYSTEM.getRoomId()+", "+userId+"]"); groupServiceOne = chatGroupService.getOne(lambdaQueryWrapper); //如果给成员发送系统消息 而该成员还没有建立过连接从而没有群聊房间 则创建该成员系统消息房间 if (groupServiceOne == null){ groupServiceOne = new ChatGroup(); groupServiceOne.setType(String.valueOf(2)); - groupServiceOne.setMembers("[99, "+userId+"]"); + groupServiceOne.setMembers("["+ChatRoomEnum.SYSTEM.getRoomId()+", "+userId+"]"); groupServiceOne.setLastMessage(message); groupServiceOne.setLastMessageTime(new Date()); // chatGroupService.save(groupServiceOne); @@ -495,13 +498,14 @@ public class ChatServerHandler extends SimpleChannelInboundHandler{ - lambdaQueryWrapper.eq(ChatGroup::getMembers,"[100, "+userId+"]"); +// lambdaQueryWrapper.eq(ChatGroup::getMembers,"[100, "+userId+"]"); + lambdaQueryWrapper.eq(ChatGroup::getMembers,"["+ChatRoomEnum.ATTENDANCE.getRoomId()+", "+userId+"]"); groupServiceOne = chatGroupService.getOne(lambdaQueryWrapper); //如果给成员发送考勤消息 而该成员还没有建立过连接从而没有考勤房间 则创建该成员考勤消息房间 if (groupServiceOne == null){ groupServiceOne = new ChatGroup(); groupServiceOne.setType(String.valueOf(3)); - groupServiceOne.setMembers("[100, "+userId+"]"); + groupServiceOne.setMembers("["+ChatRoomEnum.ATTENDANCE.getRoomId()+", "+userId+"]"); groupServiceOne.setLastMessage(message); groupServiceOne.setLastMessageTime(new Date()); // chatGroupService.save(groupServiceOne); @@ -523,13 +527,13 @@ public class ChatServerHandler extends SimpleChannelInboundHandler{ - lambdaQueryWrapper.eq(ChatGroup::getMembers,"[101, "+userId+"]"); + lambdaQueryWrapper.eq(ChatGroup::getMembers,"["+ChatRoomEnum.SAFE.getRoomId()+", "+userId+"]"); groupServiceOne = chatGroupService.getOne(lambdaQueryWrapper); //如果给成员发送安全消息 而该成员还没有建立过连接从而没有安全消息 则创建该成员安全消息房间 if (groupServiceOne == null){ groupServiceOne = new ChatGroup(); groupServiceOne.setType(String.valueOf(4)); - groupServiceOne.setMembers("[101, "+userId+"]"); + groupServiceOne.setMembers("["+ChatRoomEnum.SAFE.getRoomId()+", "+userId+"]"); groupServiceOne.setLastMessage(message); groupServiceOne.setLastMessageTime(new Date()); // chatGroupService.save(groupServiceOne); @@ -551,13 +555,13 @@ public class ChatServerHandler extends SimpleChannelInboundHandler{ - lambdaQueryWrapper.eq(ChatGroup::getMembers,"[102, "+userId+"]"); + lambdaQueryWrapper.eq(ChatGroup::getMembers,"["+ChatRoomEnum.QUALITY.getRoomId()+", "+userId+"]"); groupServiceOne = chatGroupService.getOne(lambdaQueryWrapper); //如果给成员发送质量消息 而该成员还没有建立过连接从而没有质量消息 则创建该成员质量消息房间 if (groupServiceOne == null){ groupServiceOne = new ChatGroup(); groupServiceOne.setType(String.valueOf(5)); - groupServiceOne.setMembers("[102, "+userId+"]"); + groupServiceOne.setMembers("["+ChatRoomEnum.QUALITY.getRoomId()+", "+userId+"]"); groupServiceOne.setLastMessage(message); groupServiceOne.setLastMessageTime(new Date()); // chatGroupService.save(groupServiceOne); @@ -583,6 +587,7 @@ public class ChatServerHandler extends SimpleChannelInboundHandler