Commit 886f4fe1f24c67a222d85e5291951f873a5db09b

Authored by YunaiV
1 parent cce3dd61

♻️ refactor(group): 移除冗余方法并添加群成员移除功能

重构 ImGroupMemberMapper 和 ImGroupMemberService,移除不再使用的方法,简化代码结构。同时新增群成员移除功能,以支持群解散场景。
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 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 30 default List<ImGroupMemberDO> selectListByGroupIdAndStatus(Long groupId, Integer status) {
35 31 return selectList(new LambdaQueryWrapperX<ImGroupMemberDO>()
36 32 .eq(ImGroupMemberDO::getGroupId, groupId)
... ... @@ -59,4 +55,11 @@ public interface ImGroupMemberMapper extends BaseMapperX&lt;ImGroupMemberDO&gt; {
59 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 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 45 */
46 46 ImGroupMemberDO getGroupMember(Long id);
47 47  
48   -
49 48 /**
50 49 * 根据群组 id 查询群成员(包含所有状态)
51 50 *
... ... @@ -55,23 +54,6 @@ public interface ImGroupMemberService {
55 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 57 * 根据群编号查询有效成员列表(仅 ENABLE 状态)
76 58 *
77 59 * @param groupId 群编号
... ... @@ -106,6 +88,7 @@ public interface ImGroupMemberService {
106 88 * @param userId 用户编号
107 89 * @return 群成员记录
108 90 */
  91 + @SuppressWarnings("UnusedReturnValue")
109 92 ImGroupMemberDO addGroupMember(Long groupId, Long userId);
110 93  
111 94 /**
... ... @@ -130,4 +113,13 @@ public interface ImGroupMemberService {
130 113 void updateGroupMember(Long groupId, Long userId,
131 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 1 package cn.iocoder.yudao.module.im.service.group;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 5 import cn.iocoder.yudao.module.im.controller.admin.group.vo.member.ImGroupMemberInviteReqVO;
5 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 7 import cn.iocoder.yudao.module.im.dal.dataobject.group.ImGroupMemberDO;
11   -import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
12   -
13 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 13 import java.time.LocalDateTime;
16 14 import java.util.List;
17 15  
18 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 21 * 群成员 Service 实现类
... ... @@ -51,7 +50,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService {
51 50 imGroupMemberMapper.updateById(updateObj);
52 51 }
53 52  
54   - // TODO @AI:是不是不存在删除一说?
55 53 @Override
56 54 public void removeGroupMember(Long id) {
57 55 // TODO @AI:需要群主校验下;
... ... @@ -79,16 +77,6 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService {
79 77 }
80 78  
81 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 80 public List<ImGroupMemberDO> getActiveGroupMemberListByGroupId(Long groupId) {
93 81 return imGroupMemberMapper.selectListByGroupIdAndStatus(groupId, CommonStatusEnum.ENABLE.getStatus());
94 82 }
... ... @@ -134,4 +122,11 @@ public class ImGroupMemberServiceImpl implements ImGroupMemberService {
134 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 }
... ...