Commit 886f4fe1f24c67a222d85e5291951f873a5db09b
1 parent
cce3dd61
♻️ refactor(group): 移除冗余方法并添加群成员移除功能
重构 ImGroupMemberMapper 和 ImGroupMemberService,移除不再使用的方法,简化代码结构。同时新增群成员移除功能,以支持群解散场景。
Showing
3 changed files
with
30 additions
and
40 deletions
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<ImGroupMemberDO> { | @@ -27,10 +27,6 @@ public interface ImGroupMemberMapper extends BaseMapperX<ImGroupMemberDO> { | ||
| 27 | .eq(ImGroupMemberDO::getUserId, userId)); | 27 | .eq(ImGroupMemberDO::getUserId, userId)); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | - default List<ImGroupMemberDO> selectListByUserId(Long userId) { | ||
| 31 | - return selectList(new LambdaQueryWrapperX<ImGroupMemberDO>().eq(ImGroupMemberDO::getUserId, userId)); | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | default List<ImGroupMemberDO> selectListByGroupIdAndStatus(Long groupId, Integer status) { | 30 | default List<ImGroupMemberDO> selectListByGroupIdAndStatus(Long groupId, Integer status) { |
| 35 | return selectList(new LambdaQueryWrapperX<ImGroupMemberDO>() | 31 | return selectList(new LambdaQueryWrapperX<ImGroupMemberDO>() |
| 36 | .eq(ImGroupMemberDO::getGroupId, groupId) | 32 | .eq(ImGroupMemberDO::getGroupId, groupId) |
| @@ -59,4 +55,11 @@ public interface ImGroupMemberMapper extends BaseMapperX<ImGroupMemberDO> { | @@ -59,4 +55,11 @@ public interface ImGroupMemberMapper extends BaseMapperX<ImGroupMemberDO> { | ||
| 59 | .geIfPresent(ImGroupMemberDO::getQuitTime, minQuitTime)); | 55 | .geIfPresent(ImGroupMemberDO::getQuitTime, minQuitTime)); |
| 60 | } | 56 | } |
| 61 | 57 | ||
| 58 | + @SuppressWarnings("UnusedReturnValue") | ||
| 59 | + default int updateByGroupIdAndStatus(Long groupId, Integer oldStatus, ImGroupMemberDO updateObj) { | ||
| 60 | + return update(updateObj, new LambdaQueryWrapperX<ImGroupMemberDO>() | ||
| 61 | + .eq(ImGroupMemberDO::getGroupId, groupId) | ||
| 62 | + .eq(ImGroupMemberDO::getStatus, oldStatus)); | ||
| 63 | + } | ||
| 64 | + | ||
| 62 | } | 65 | } |
| 63 | \ No newline at end of file | 66 | \ No newline at end of file |
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 { | @@ -45,7 +45,6 @@ public interface ImGroupMemberService { | ||
| 45 | */ | 45 | */ |
| 46 | ImGroupMemberDO getGroupMember(Long id); | 46 | ImGroupMemberDO getGroupMember(Long id); |
| 47 | 47 | ||
| 48 | - | ||
| 49 | /** | 48 | /** |
| 50 | * 根据群组 id 查询群成员(包含所有状态) | 49 | * 根据群组 id 查询群成员(包含所有状态) |
| 51 | * | 50 | * |
| @@ -55,23 +54,6 @@ public interface ImGroupMemberService { | @@ -55,23 +54,6 @@ public interface ImGroupMemberService { | ||
| 55 | List<ImGroupMemberDO> getGroupMemberListByGroupId(Long groupId); | 54 | List<ImGroupMemberDO> getGroupMemberListByGroupId(Long groupId); |
| 56 | 55 | ||
| 57 | /** | 56 | /** |
| 58 | - * 根据群编号和用户编号查询群成员 | ||
| 59 | - * | ||
| 60 | - * @param groupId 群编号 | ||
| 61 | - * @param userId 用户编号 | ||
| 62 | - * @return 群成员 | ||
| 63 | - */ | ||
| 64 | - ImGroupMemberDO getGroupMember(Long groupId, Long userId); | ||
| 65 | - | ||
| 66 | - /** | ||
| 67 | - * 查询用户所在的所有群的成员记录 | ||
| 68 | - * | ||
| 69 | - * @param userId 用户编号 | ||
| 70 | - * @return 群成员记录列表 | ||
| 71 | - */ | ||
| 72 | - List<ImGroupMemberDO> getGroupMemberListByUserId(Long userId); | ||
| 73 | - | ||
| 74 | - /** | ||
| 75 | * 根据群编号查询有效成员列表(仅 ENABLE 状态) | 57 | * 根据群编号查询有效成员列表(仅 ENABLE 状态) |
| 76 | * | 58 | * |
| 77 | * @param groupId 群编号 | 59 | * @param groupId 群编号 |
| @@ -106,6 +88,7 @@ public interface ImGroupMemberService { | @@ -106,6 +88,7 @@ public interface ImGroupMemberService { | ||
| 106 | * @param userId 用户编号 | 88 | * @param userId 用户编号 |
| 107 | * @return 群成员记录 | 89 | * @return 群成员记录 |
| 108 | */ | 90 | */ |
| 91 | + @SuppressWarnings("UnusedReturnValue") | ||
| 109 | ImGroupMemberDO addGroupMember(Long groupId, Long userId); | 92 | ImGroupMemberDO addGroupMember(Long groupId, Long userId); |
| 110 | 93 | ||
| 111 | /** | 94 | /** |
| @@ -130,4 +113,13 @@ public interface ImGroupMemberService { | @@ -130,4 +113,13 @@ public interface ImGroupMemberService { | ||
| 130 | void updateGroupMember(Long groupId, Long userId, | 113 | void updateGroupMember(Long groupId, Long userId, |
| 131 | String displayUserName, String displayGroupName); | 114 | String displayUserName, String displayGroupName); |
| 132 | 115 | ||
| 116 | + /** | ||
| 117 | + * 移除群的全部成员(设置为 DISABLE 状态) | ||
| 118 | + * <p> | ||
| 119 | + * 用于群解散场景 | ||
| 120 | + * | ||
| 121 | + * @param groupId 群编号 | ||
| 122 | + */ | ||
| 123 | + void removeGroupMembersByGroupId(Long groupId); | ||
| 124 | + | ||
| 133 | } | 125 | } |
yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImpl.java
| 1 | package cn.iocoder.yudao.module.im.service.group; | 1 | package cn.iocoder.yudao.module.im.service.group; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 4 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 4 | import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberInviteReqVO; | 5 | import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberInviteReqVO; |
| 5 | import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberUpdateReqVO; | 6 | import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberUpdateReqVO; |
| 6 | -import org.springframework.stereotype.Service; | ||
| 7 | -import jakarta.annotation.Resource; | ||
| 8 | -import org.springframework.validation.annotation.Validated; | ||
| 9 | - | ||
| 10 | import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupMemberDO; | 7 | import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupMemberDO; |
| 11 | -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 12 | - | ||
| 13 | import cn.iocoder.yudao.module.im.dal.mysql.group.ImGroupMemberMapper; | 8 | import cn.iocoder.yudao.module.im.dal.mysql.group.ImGroupMemberMapper; |
| 9 | +import jakarta.annotation.Resource; | ||
| 10 | +import org.springframework.stereotype.Service; | ||
| 11 | +import org.springframework.validation.annotation.Validated; | ||
| 14 | 12 | ||
| 15 | import java.time.LocalDateTime; | 13 | import java.time.LocalDateTime; |
| 16 | import java.util.List; | 14 | import java.util.List; |
| 17 | 15 | ||
| 18 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 16 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 19 | -import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*; | 17 | +import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_NOT_EXISTS; |
| 18 | +import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_NOT_IN_GROUP; | ||
| 20 | 19 | ||
| 21 | /** | 20 | /** |
| 22 | * 群成员 Service 实现类 | 21 | * 群成员 Service 实现类 |
| @@ -51,7 +50,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | @@ -51,7 +50,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | ||
| 51 | imGroupMemberMapper.updateById(updateObj); | 50 | imGroupMemberMapper.updateById(updateObj); |
| 52 | } | 51 | } |
| 53 | 52 | ||
| 54 | - // TODO @AI:是不是不存在删除一说? | ||
| 55 | @Override | 53 | @Override |
| 56 | public void removeGroupMember(Long id) { | 54 | public void removeGroupMember(Long id) { |
| 57 | // TODO @AI:需要群主校验下; | 55 | // TODO @AI:需要群主校验下; |
| @@ -79,16 +77,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | @@ -79,16 +77,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | ||
| 79 | } | 77 | } |
| 80 | 78 | ||
| 81 | @Override | 79 | @Override |
| 82 | - public ImGroupMemberDO getGroupMember(Long groupId, Long userId) { | ||
| 83 | - return imGroupMemberMapper.selectByGroupIdAndUserId(groupId, userId); | ||
| 84 | - } | ||
| 85 | - | ||
| 86 | - @Override | ||
| 87 | - public List<ImGroupMemberDO> getGroupMemberListByUserId(Long userId) { | ||
| 88 | - return imGroupMemberMapper.selectListByUserId(userId); | ||
| 89 | - } | ||
| 90 | - | ||
| 91 | - @Override | ||
| 92 | public List<ImGroupMemberDO> getActiveGroupMemberListByGroupId(Long groupId) { | 80 | public List<ImGroupMemberDO> getActiveGroupMemberListByGroupId(Long groupId) { |
| 93 | return imGroupMemberMapper.selectListByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus()); | 81 | return imGroupMemberMapper.selectListByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus()); |
| 94 | } | 82 | } |
| @@ -134,4 +122,11 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | @@ -134,4 +122,11 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService { | ||
| 134 | // TODO @AI:需要分析下,是否需要 | 122 | // TODO @AI:需要分析下,是否需要 |
| 135 | } | 123 | } |
| 136 | 124 | ||
| 125 | + @Override | ||
| 126 | + public void removeGroupMembersByGroupId(Long groupId) { | ||
| 127 | + imGroupMemberMapper.updateByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus(), | ||
| 128 | + new ImGroupMemberDO().setStatus(CommonStatusEnum.DISABLE.getStatus()) | ||
| 129 | + .setQuitTime(LocalDateTime.now())); | ||
| 130 | + } | ||
| 131 | + | ||
| 137 | } | 132 | } |