Browse Source

修复使用“==”导致的bug

master
xie.bx 3 years ago
parent
commit
e0db83c1b5
  1. 2
      im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java
  2. 2
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
  3. 12
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java
  4. 5
      im-server/src/main/java/com/bx/imserver/IMServerApp.java
  5. 1
      im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java

2
im-platform/src/main/java/com/bx/implatform/service/IGroupMemberService.java

@ -18,8 +18,6 @@ public interface IGroupMemberService extends IService<GroupMember> {
List<Long> findUserIdsByGroupId(Long groupId); List<Long> findUserIdsByGroupId(Long groupId);
boolean save(GroupMember member);
boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members); boolean saveOrUpdateBatch(Long groupId,List<GroupMember> members);
void removeByGroupId(Long groupId); void removeByGroupId(Long groupId);

2
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@ -75,7 +75,7 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
msg.setSendTime(new Date()); msg.setSendTime(new Date());
this.save(msg); this.save(msg);
// 不用发给自己 // 不用发给自己
userIds = userIds.stream().filter(id->userId!=id).collect(Collectors.toList()); userIds = userIds.stream().filter(id->!userId.equals(id)).collect(Collectors.toList());
// 群发 // 群发
GroupMessageInfo msgInfo = BeanUtils.copyProperties(msg, GroupMessageInfo.class); GroupMessageInfo msgInfo = BeanUtils.copyProperties(msg, GroupMessageInfo.class);
imClient.sendGroupMessage(userIds,msgInfo); imClient.sendGroupMessage(userIds,msgInfo);

12
im-platform/src/main/java/com/bx/implatform/service/impl/GroupServiceImpl.java

@ -100,7 +100,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
// 校验是不是群主,只有群主能改信息 // 校验是不是群主,只有群主能改信息
Group group = this.getById(vo.getId()); Group group = this.getById(vo.getId());
// 群主有权修改群基本信息 // 群主有权修改群基本信息
if(group.getOwnerId() == session.getId()){ if(group.getOwnerId().equals(session.getId())){
group = BeanUtils.copyProperties(vo,Group.class); group = BeanUtils.copyProperties(vo,Group.class);
this.updateById(group); this.updateById(group);
} }
@ -129,7 +129,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
public void deleteGroup(Long groupId) { public void deleteGroup(Long groupId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
Group group = this.getById(groupId); Group group = this.getById(groupId);
if(group.getOwnerId() != session.getId()){ if(!group.getOwnerId().equals(session.getId())){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"只有群主才有权限解除群聊"); throw new GlobalException(ResultCode.PROGRAM_ERROR,"只有群主才有权限解除群聊");
} }
// 逻辑删除群数据 // 逻辑删除群数据
@ -151,7 +151,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
public void quitGroup(Long groupId) { public void quitGroup(Long groupId) {
Long userId = SessionContext.getSession().getId(); Long userId = SessionContext.getSession().getId();
Group group = this.getById(groupId); Group group = this.getById(groupId);
if(group.getOwnerId() == userId){ if(group.getOwnerId().equals(userId)){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"您是群主,不可退出群聊"); throw new GlobalException(ResultCode.PROGRAM_ERROR,"您是群主,不可退出群聊");
} }
// 删除群聊成员 // 删除群聊成员
@ -171,10 +171,10 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
public void kickGroup(Long groupId, Long userId) { public void kickGroup(Long groupId, Long userId) {
UserSession session = SessionContext.getSession(); UserSession session = SessionContext.getSession();
Group group = this.getById(groupId); Group group = this.getById(groupId);
if(group.getOwnerId() != session.getId()){ if(!group.getOwnerId().equals(session.getId())){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"您不是群主,没有权限踢人"); throw new GlobalException(ResultCode.PROGRAM_ERROR,"您不是群主,没有权限踢人");
} }
if(userId == session.getId()){ if(userId.equals(session.getId())){
throw new GlobalException(ResultCode.PROGRAM_ERROR,"亲,不能自己踢自己哟"); throw new GlobalException(ResultCode.PROGRAM_ERROR,"亲,不能自己踢自己哟");
} }
// 删除群聊成员 // 删除群聊成员
@ -276,7 +276,7 @@ public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements
// 批量保存成员数据 // 批量保存成员数据
List<GroupMember> groupMembers = friendsList.stream() List<GroupMember> groupMembers = friendsList.stream()
.map(f -> { .map(f -> {
Optional<GroupMember> optional = members.stream().filter(m->m.getUserId()==f.getFriendId()).findFirst(); Optional<GroupMember> optional = members.stream().filter(m-> m.getUserId().equals(f.getFriendId())).findFirst();
GroupMember groupMember = optional.isPresent()? optional.get():new GroupMember(); GroupMember groupMember = optional.isPresent()? optional.get():new GroupMember();
groupMember.setGroupId(vo.getGroupId()); groupMember.setGroupId(vo.getGroupId());
groupMember.setUserId(f.getFriendId()); groupMember.setUserId(f.getFriendId());

5
im-server/src/main/java/com/bx/imserver/IMServerApp.java

@ -1,7 +1,6 @@
package com.bx.imserver; package com.bx.imserver;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
@ -13,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling @EnableScheduling
@ComponentScan(basePackages={"com.bx"}) @ComponentScan(basePackages={"com.bx"})
@SpringBootApplication @SpringBootApplication
public class IMServerApp implements CommandLineRunner { public class IMServerApp {
public static void main(String[] args) { public static void main(String[] args) {
@ -21,6 +20,4 @@ public class IMServerApp implements CommandLineRunner {
} }
public void run(String... args) throws Exception {
}
} }

1
im-server/src/main/java/com/bx/imserver/netty/tcp/endecode/MessageProtocolDecoder.java

@ -13,6 +13,7 @@ import java.util.List;
@Slf4j @Slf4j
public class MessageProtocolDecoder extends ReplayingDecoder { public class MessageProtocolDecoder extends ReplayingDecoder {
@Override
protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List<Object> list) throws Exception { protected void decode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List<Object> list) throws Exception {
if(byteBuf.readableBytes()< 4){ if(byteBuf.readableBytes()< 4){
return; return;

Loading…
Cancel
Save