|
@@ -427,13 +427,14 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
SysConfig config = sysConfigService.findByParamName(SysConfigConstant.GROUP_MEMBER_LIMIT);
|
|
|
if (Objects.nonNull(config) && Integer.parseInt(config.getParamValue()) > 0) {
|
|
|
int groupMemberLimit = Integer.parseInt(config.getParamValue());
|
|
|
- if (CollectionUtils.size(studentIds) > groupMemberLimit) {
|
|
|
+ if ((CollectionUtils.size(studentIds) + 1) > groupMemberLimit) {
|
|
|
|
|
|
// 已加入群组用户标记
|
|
|
List<Long> userIds = Lists.newArrayList(studentIds);
|
|
|
- studentIds = Sets.newHashSet(userIds.subList(0, groupMemberLimit));
|
|
|
+ studentIds = Sets.newHashSet(userIds.subList(0, groupMemberLimit - 1));
|
|
|
// 未加入群组用户标记
|
|
|
- noGroupJoinUserIds.addAll(userIds.subList(groupMemberLimit, userIds.size()));
|
|
|
+ Set<Long> addStudentIds = studentIds;
|
|
|
+ noGroupJoinUserIds.addAll(userIds.stream().filter(n->!addStudentIds.contains(n)).collect(Collectors.toList()));
|
|
|
// 重置用户入群加入标记
|
|
|
courseScheduleStudentPaymentDao.updateGroupJoinStatus(courseGroupId, courseGroupType, false,
|
|
|
noGroupJoinUserIds);
|
|
@@ -441,22 +442,24 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 添加学生
|
|
|
- List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, 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()
|
|
|
- .groupId(groupMember.getGroupId())
|
|
|
- .userId(groupMember.getUserId())
|
|
|
- .clientType(groupMember.getRoleType().getCode())
|
|
|
- .avatar(groupMember.getAvatar())
|
|
|
- .nickname(groupMember.getNickname())
|
|
|
- .isAdmin(groupMember.getIsAdmin())
|
|
|
- .imUserId(getImUserId(groupMember.getUserId().toString(), groupMember.getRoleType().getCode()))
|
|
|
- .roleType(groupMember.getRoleType().getCode())
|
|
|
- .build());
|
|
|
+ if (!studentIds.isEmpty()) {
|
|
|
+ // 添加学生
|
|
|
+ List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMembers(groupId, 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()
|
|
|
+ .groupId(groupMember.getGroupId())
|
|
|
+ .userId(groupMember.getUserId())
|
|
|
+ .clientType(groupMember.getRoleType().getCode())
|
|
|
+ .avatar(groupMember.getAvatar())
|
|
|
+ .nickname(groupMember.getNickname())
|
|
|
+ .isAdmin(groupMember.getIsAdmin())
|
|
|
+ .imUserId(getImUserId(groupMember.getUserId().toString(), groupMember.getRoleType().getCode()))
|
|
|
+ .roleType(groupMember.getRoleType().getCode())
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ imGroupCoreService.saveImGroupMemberList(groupId, groupMemberList);
|
|
|
}
|
|
|
- imGroupCoreService.saveImGroupMemberList(groupId, groupMemberList);
|
|
|
//处理本地群成员列表
|
|
|
// 添加老师
|
|
|
// List<ImGroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(),
|