Browse Source

fix 群成员人数限制

Eric 8 months ago
parent
commit
a7d6f501fa

+ 5 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -412,7 +412,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
             return null;
         }
         //获取学员列表,按购买时间顺序升序排列返回
-        Set<Long> studentIds = new LinkedHashSet<>(courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType));
+        List<Long> studentIds = courseScheduleStudentPaymentDao.queryStudentIds(courseGroupId, courseGroupType);
         // studentIds集合中所有null元素移除
         studentIds.removeAll(Collections.singleton(null));
         if (CollectionUtils.isEmpty(studentIds)) {
@@ -421,7 +421,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         Date now = new Date();
         Long teacherId = courseGroup.getTeacherId();
         //保存老师学员关联的通讯录xz
-        imUserFriendService.saveUserFriend(teacherId, studentIds);
+        imUserFriendService.saveUserFriend(teacherId, Sets.newHashSet(studentIds));
 
         //创建群聊
         ImGroup imGroup = new ImGroup();
@@ -452,10 +452,9 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
                     // 已加入群组用户标记
                     List<Long> userIds = Lists.newArrayList(studentIds);
-                    studentIds = Sets.newHashSet(userIds.subList(0, groupMemberLimit - 1));
+                    studentIds = userIds.subList(0, groupMemberLimit - 1);
                     // 未加入群组用户标记
-                    Set<Long> addStudentIds = studentIds;
-                    noGroupJoinUserIds.addAll(userIds.stream().filter(n->!addStudentIds.contains(n)).collect(Collectors.toList()));
+                    noGroupJoinUserIds.addAll(userIds.subList(groupMemberLimit - 1, userIds.size()));
                     // 重置用户入群加入标记
                     courseScheduleStudentPaymentDao.updateGroupJoinStatus(courseGroupId, courseGroupType, false,
                         noGroupJoinUserIds);
@@ -465,7 +464,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
         if (!studentIds.isEmpty()) {
             // 添加学生
-            List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, studentIds, ImGroupMemberRoleType.STUDENT);
+            List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, Sets.newHashSet(studentIds), ImGroupMemberRoleType.STUDENT);
             List<com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper.ImGroupMember> groupMemberList = Lists.newArrayList();
             for (ImGroupMember groupMember : groupMembers) {
                 groupMemberList.add(com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper.ImGroupMember.builder()