|
@@ -223,7 +223,7 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
|
|
|
}
|
|
|
}
|
|
|
// 修改小组负责人,调整群主,更换群主需要新的群主为该群成员
|
|
|
- changeGroupOwner(tenantGroup, oldGroup, entity);
|
|
|
+ changeGroupOwner(oldGroup, entity);
|
|
|
QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.lambda()
|
|
|
.eq(Student::getTenantId, tenantGroup.getTenantId())
|
|
@@ -452,8 +452,7 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void changeGroupOwner(TenantGroupWrapper.TenantGroup tenantGroup, TenantGroup oldGroup,
|
|
|
- TenantGroup newGroup) {
|
|
|
+ private void changeGroupOwner(TenantGroup oldGroup, TenantGroup newGroup) {
|
|
|
if (newGroup.getAdminId() == null || newGroup.getAdminId().equals(oldGroup.getAdminId())) {
|
|
|
return;
|
|
|
}
|
|
@@ -463,9 +462,15 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
|
|
|
// 群不存在
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
+ if (!newGroup.getImGroupId().equals(oldGroup.getImGroupId())) {
|
|
|
+ // 旧的群被删除了,不需要交换身份
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 如果新负责人不在群,先加入群
|
|
|
ImGroupMember groupMember = imGroupMemberService.lambdaQuery()
|
|
|
- .eq(ImGroupMember::getGroupId, oldGroup.getImGroupId())
|
|
|
+ .eq(ImGroupMember::getGroupId, newGroup.getImGroupId())
|
|
|
.eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.TEACHER)
|
|
|
.eq(ImGroupMember::getUserId, newGroup.getAdminId())
|
|
|
.eq(ImGroupMember::getIsAdmin, true)
|
|
@@ -477,15 +482,14 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
|
|
|
try {
|
|
|
SysUser newTeacher = sysUserService.getByUserId(newGroup.getAdminId());
|
|
|
ImGroupMember imGroupMember = new ImGroupMember();
|
|
|
- imGroupMember.setGroupId(oldGroup.getImGroupId());
|
|
|
+ imGroupMember.setGroupId(newGroup.getImGroupId());
|
|
|
imGroupMember.setUserId(newGroup.getAdminId());
|
|
|
imGroupMember.setRoleType(ImGroupMemberRoleType.TEACHER);
|
|
|
imGroupMember.setAvatar(newTeacher.getAvatar());
|
|
|
imGroupMember.setNickname(newTeacher.getUsername());
|
|
|
imGroupMember.setIsAdmin(false);
|
|
|
- imGroupMember.setRoleType(ImGroupMemberRoleType.TEACHER);
|
|
|
|
|
|
- imGroupMemberService.join(Collections.singletonList(imGroupMember), oldGroup.getImGroupId());
|
|
|
+ imGroupMemberService.join(Collections.singletonList(imGroupMember), newGroup.getImGroupId());
|
|
|
} catch (Exception e) {
|
|
|
log.error("负责人加入群失败", e);
|
|
|
throw new BizException("负责人加入群失败");
|
|
@@ -493,12 +497,12 @@ public class TenantGroupServiceImpl extends ServiceImpl<TenantGroupMapper, Tenan
|
|
|
|
|
|
try {
|
|
|
imGroupCoreService.changeGroupOwner(oldGroup.getImGroupId(),
|
|
|
- String.valueOf(tenantGroup.getAdminId()),
|
|
|
+ String.valueOf(newGroup.getAdminId()),
|
|
|
String.valueOf(oldGroup.getAdminId()));
|
|
|
imGroupCoreService.groupQuit(oldGroup.getAdminId(), ClientEnum.TEACHER.getCode(),
|
|
|
oldGroup.getImGroupId(), true);
|
|
|
imGroupService.lambdaUpdate()
|
|
|
- .set(ImGroup::getCreateBy, tenantGroup.getAdminId())
|
|
|
+ .set(ImGroup::getCreateBy, newGroup.getAdminId())
|
|
|
.eq(ImGroup::getId, imGroupId);
|
|
|
} catch (Exception e) {
|
|
|
log.error("更换群主失败", e);
|