From e0db83c1b53f219d07be20d87cfe4015d80e3711 Mon Sep 17 00:00:00 2001 From: "xie.bx" Date: Wed, 27 Sep 2023 23:02:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8=E2=80=9C?= =?UTF-8?q?=3D=3D=E2=80=9D=E5=AF=BC=E8=87=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bx/implatform/service/IGroupMemberService.java | 2 -- .../service/impl/GroupMessageServiceImpl.java | 2 +- .../bx/implatform/service/impl/GroupServiceImpl.java | 12 ++++++------ .../src/main/java/com/bx/imserver/IMServerApp.java | 5 +---- .../netty/tcp/endecode/MessageProtocolDecoder.java | 1 + 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java b/im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java index f5a58c8..a4966c0 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java +++ b/im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java @@ -18,8 +18,6 @@ public interface IGroupMemberService extends IService { List findUserIdsByGroupId(Long groupId); - boolean save(GroupMember member); - boolean saveOrUpdateBatch(Long groupId,List members); void removeByGroupId(Long groupId); diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java index c358e61..d09a6a9 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java @@ -75,7 +75,7 @@ public class GroupMessageServiceImpl extends ServiceImpluserId!=id).collect(Collectors.toList()); + userIds = userIds.stream().filter(id->!userId.equals(id)).collect(Collectors.toList()); // 群发 GroupMessageInfo msgInfo = BeanUtils.copyProperties(msg, GroupMessageInfo.class); imClient.sendGroupMessage(userIds,msgInfo); diff --git a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java index 00c6b34..328f769 100644 --- a/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java +++ b/im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java @@ -100,7 +100,7 @@ public class GroupServiceImpl extends ServiceImpl implements // 校验是不是群主,只有群主能改信息 Group group = this.getById(vo.getId()); // 群主有权修改群基本信息 - if(group.getOwnerId() == session.getId()){ + if(group.getOwnerId().equals(session.getId())){ group = BeanUtils.copyProperties(vo,Group.class); this.updateById(group); } @@ -129,7 +129,7 @@ public class GroupServiceImpl extends ServiceImpl implements public void deleteGroup(Long groupId) { UserSession session = SessionContext.getSession(); Group group = this.getById(groupId); - if(group.getOwnerId() != session.getId()){ + if(!group.getOwnerId().equals(session.getId())){ throw new GlobalException(ResultCode.PROGRAM_ERROR,"只有群主才有权限解除群聊"); } // 逻辑删除群数据 @@ -151,7 +151,7 @@ public class GroupServiceImpl extends ServiceImpl implements public void quitGroup(Long groupId) { Long userId = SessionContext.getSession().getId(); Group group = this.getById(groupId); - if(group.getOwnerId() == userId){ + if(group.getOwnerId().equals(userId)){ throw new GlobalException(ResultCode.PROGRAM_ERROR,"您是群主,不可退出群聊"); } // 删除群聊成员 @@ -171,10 +171,10 @@ public class GroupServiceImpl extends ServiceImpl implements public void kickGroup(Long groupId, Long userId) { UserSession session = SessionContext.getSession(); Group group = this.getById(groupId); - if(group.getOwnerId() != session.getId()){ + if(!group.getOwnerId().equals(session.getId())){ throw new GlobalException(ResultCode.PROGRAM_ERROR,"您不是群主,没有权限踢人"); } - if(userId == session.getId()){ + if(userId.equals(session.getId())){ throw new GlobalException(ResultCode.PROGRAM_ERROR,"亲,不能自己踢自己哟"); } // 删除群聊成员 @@ -276,7 +276,7 @@ public class GroupServiceImpl extends ServiceImpl implements // 批量保存成员数据 List groupMembers = friendsList.stream() .map(f -> { - Optional optional = members.stream().filter(m->m.getUserId()==f.getFriendId()).findFirst(); + Optional optional = members.stream().filter(m-> m.getUserId().equals(f.getFriendId())).findFirst(); GroupMember groupMember = optional.isPresent()? optional.get():new GroupMember(); groupMember.setGroupId(vo.getGroupId()); groupMember.setUserId(f.getFriendId()); diff --git a/im-server/src/main/java/com/bx/imserver/IMServerApp.java b/im-server/src/main/java/com/bx/imserver/IMServerApp.java index 78574aa..b938bf6 100644 --- a/im-server/src/main/java/com/bx/imserver/IMServerApp.java +++ b/im-server/src/main/java/com/bx/imserver/IMServerApp.java @@ -1,7 +1,6 @@ package com.bx.imserver; -import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @@ -13,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling @ComponentScan(basePackages={"com.bx"}) @SpringBootApplication -public class IMServerApp implements CommandLineRunner { +public class IMServerApp { public static void main(String[] args) { @@ -21,6 +20,4 @@ public class IMServerApp implements CommandLineRunner { } - public void run(String... args) throws Exception { - } } diff --git a/im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java b/im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java index 0414568..923f732 100644 --- a/im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java +++ b/im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java @@ -13,6 +13,7 @@ import java.util.List; @Slf4j public class MessageProtocolDecoder extends ReplayingDecoder { + @Override protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) throws Exception { if(byteBuf.readableBytes()< 4){ return;