From 886f4fe1f24c67a222d85e5291951f873a5db09b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 22 Apr 2026 22:11:45 +0800 Subject: [PATCH] ♻️ refactor(group): 移除冗余方法并添加群成员移除功能 --- yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/group/ImGroupMemberMapper.java | 11 +++++++---- yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberService.java | 28 ++++++++++------------------ yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java | 31 +++++++++++++------------------ 3 files changed, 30 insertions(+), 40 deletions(-) diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/group/ImGroupMemberMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/group/ImGroupMemberMapper.java index ff773e6..0816d02 100644 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/group/ImGroupMemberMapper.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/group/ImGroupMemberMapper.java @@ -27,10 +27,6 @@ public interface ImGroupMemberMapper extends BaseMapperX { .eq(ImGroupMemberDO::getUserId, userId)); } - default List selectListByUserId(Long userId) { - return selectList(new LambdaQueryWrapperX().eq(ImGroupMemberDO::getUserId, userId)); - } - default List selectListByGroupIdAndStatus(Long groupId, Integer status) { return selectList(new LambdaQueryWrapperX() .eq(ImGroupMemberDO::getGroupId, groupId) @@ -59,4 +55,11 @@ public interface ImGroupMemberMapper extends BaseMapperX { .geIfPresent(ImGroupMemberDO::getQuitTime, minQuitTime)); } + @SuppressWarnings("UnusedReturnValue") + default int updateByGroupIdAndStatus(Long groupId, Integer oldStatus, ImGroupMemberDO updateObj) { + return update(updateObj, new LambdaQueryWrapperX() + .eq(ImGroupMemberDO::getGroupId, groupId) + .eq(ImGroupMemberDO::getStatus, oldStatus)); + } + } \ No newline at end of file diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberService.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberService.java index 9b8a705..7b1871a 100644 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberService.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberService.java @@ -45,7 +45,6 @@ public interface ImGroupMemberService { */ ImGroupMemberDO getGroupMember(Long id); - /** * 根据群组 id 查询群成员(包含所有状态) * @@ -55,23 +54,6 @@ public interface ImGroupMemberService { List getGroupMemberListByGroupId(Long groupId); /** - * 根据群编号和用户编号查询群成员 - * - * @param groupId 群编号 - * @param userId 用户编号 - * @return 群成员 - */ - ImGroupMemberDO getGroupMember(Long groupId, Long userId); - - /** - * 查询用户所在的所有群的成员记录 - * - * @param userId 用户编号 - * @return 群成员记录列表 - */ - List getGroupMemberListByUserId(Long userId); - - /** * 根据群编号查询有效成员列表(仅 ENABLE 状态) * * @param groupId 群编号 @@ -106,6 +88,7 @@ public interface ImGroupMemberService { * @param userId 用户编号 * @return 群成员记录 */ + @SuppressWarnings("UnusedReturnValue") ImGroupMemberDO addGroupMember(Long groupId, Long userId); /** @@ -130,4 +113,13 @@ public interface ImGroupMemberService { void updateGroupMember(Long groupId, Long userId, String displayUserName, String displayGroupName); + /** + * 移除群的全部成员(设置为 DISABLE 状态) + *

+ * 用于群解散场景 + * + * @param groupId 群编号 + */ + void removeGroupMembersByGroupId(Long groupId); + } diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java index 33cc814..fd1b7a7 100644 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java @@ -1,22 +1,21 @@ package cn.iocoder.yudao.module.im.service.group; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberInviteReqVO; import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberUpdateReqVO; -import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; - import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupMemberDO; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - import cn.iocoder.yudao.module.im.dal.mysql.group.ImGroupMemberMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_NOT_EXISTS; +import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_NOT_IN_GROUP; /** * 群成员 Service 实现类 @@ -51,7 +50,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { imGroupMemberMapper.updateById(updateObj); } - // TODO @AI:是不是不存在删除一说? @Override public void removeGroupMember(Long id) { // TODO @AI:需要群主校验下; @@ -79,16 +77,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { } @Override - public ImGroupMemberDO getGroupMember(Long groupId, Long userId) { - return imGroupMemberMapper.selectByGroupIdAndUserId(groupId, userId); - } - - @Override - public List getGroupMemberListByUserId(Long userId) { - return imGroupMemberMapper.selectListByUserId(userId); - } - - @Override public List getActiveGroupMemberListByGroupId(Long groupId) { return imGroupMemberMapper.selectListByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus()); } @@ -134,4 +122,11 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { // TODO @AI:需要分析下,是否需要 } + @Override + public void removeGroupMembersByGroupId(Long groupId) { + imGroupMemberMapper.updateByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus(), + new ImGroupMemberDO().setStatus(CommonStatusEnum.DISABLE.getStatus()) + .setQuitTime(LocalDateTime.now())); + } + } -- libgit2 0.21.4