Browse Source

群主转让、群注销

zouxuan 1 year ago
parent
commit
fed76193bb

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/im/impl/ImGroupCoreServiceImpl.java

@@ -464,13 +464,11 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
         if (Objects.isNull(imGroup)) {
             throw new BizException("群组不存在");
         }
-
         // 添加群组成员信息
         if (CollectionUtils.isEmpty(groupMembers)) {
             // 群成员为空,直接忽略
             return;
         }
-
         // 添加群成员到当前群组
         imPluginContext.getPluginService().groupJoin(imGroup.getId(), imGroup.getName(), getImGroupMembers(groupMembers));
         // 设置管理员

+ 9 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -142,11 +142,10 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 			return true;
 		}
 		//检查用户是否已存在
-		List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), userId.toString());
-		if(imGroupMemberList != null && imGroupMemberList.size() > 0){
+		List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId, userId.toString());
+		if(CollectionUtils.isNotEmpty(imGroupMemberList)){
 			return true;
 		}
-
 		ImGroupMember imGroupMember = new ImGroupMember();
 		Date date = new Date();
 		imGroupMember.setGroupType(imGroup.getGroupType());
@@ -184,8 +183,9 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 				groupMembers.add(ImGroupMemberWrapper.ImGroupMember.builder()
 						.groupId(groupId)
-						.isAdmin(StringUtils.isNotEmpty(roleType))
-						.roleType(roleType)
+						.isAdmin(imGroupMember.getIsAdmin())
+						.roleType(imGroupMember.getRoleType())
+						.type(imGroupMember.getType())
 						.nickname(imGroupMember.getNickname())
 						.userId(userId.longValue())
 						.imUserId(userId.toString())
@@ -384,9 +384,10 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 						.userId(imGroupMember.getUserId().longValue())
 						.imUserId(imGroupMember.getUserId().toString())
 						.nickname(imGroupMember.getNickname())
-						.isAdmin(StringUtils.isNotEmpty(imGroupMember.getGroupRoleType()))
+						.isAdmin(imGroupMember.getIsAdmin())
 						.groupRoleType(imGroupMember.getGroupRoleType())
 						.roleType(imGroupMember.getRoleType())
+						.type(imGroupMember.getType())
 						.avatar(sysUserService.getImAvatar(user))
 					.build());
 				// 腾讯云IM用户加群
@@ -448,9 +449,10 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 					.groupId(groupId)
 					.userId(imGroupMember.getUserId().longValue())
 					.imUserId(imGroupMember.getUserId().toString())
-					.isAdmin(StringUtils.isNotEmpty(imGroupMember.getRoleType()))
+					.isAdmin(imGroupMember.getIsAdmin())
 					.groupRoleType(imGroupMember.getGroupRoleType())
 					.roleType(imGroupMember.getRoleType())
+					.type(imGroupMember.getType())
 					.updateTime(imGroupMember.getUpdateTime())
 					.createTime(imGroupMember.getCreateTime())
 				.build());

+ 28 - 32
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -571,17 +571,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             initSchoolGroup(imGroup.getSchoolId());
         } else {
             SysUser user = teacherDao.getUser(userId);
-            ImGroupMemberWrapper.ImGroupMember groupMember = ImGroupMemberWrapper.ImGroupMember.builder()
-                    .userId(userId.longValue())
-                    .nickname(sysUserService.getImName(user))
-                    .avatar(sysUserService.getImAvatar(user))
-                    .build();
-            imGroupCoreService.groupMemberJoin(imGroup.getId(), Lists.newArrayList(groupMember));
-            // 更新群主流程
-            if (schoolStaffType.equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
-                groupChangeOwner(userId, imGroup.getId());
-            }
-
             ImGroupMember imGroupMember = new ImGroupMember();
             imGroupMember.setImGroupId(imGroup.getId());
             imGroupMember.setUserId(userId);
@@ -592,6 +581,21 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                 imGroupMember.setType(EFriendRoleType.getByName(schoolStaffType.getDescribe()).name());
             }
             imGroupMember.setTenantId(imGroup.getTenantId());
+            ImGroupMemberWrapper.ImGroupMember groupMember = new ImGroupMemberWrapper.ImGroupMember();
+            groupMember.setUserId(userId.longValue());
+            groupMember.setImUserId(userId.toString());
+            groupMember.setNickname(name);
+            groupMember.setAvatar(sysUserService.getImAvatar(user));
+            groupMember.setGroupId(imGroupMember.getImGroupId());
+            groupMember.setType(imGroupMember.getType());
+            groupMember.setRoleType(imGroupMember.getRoleType());
+            groupMember.setGroupRoleType(imGroupMember.getGroupRoleType());
+            groupMember.setIsAdmin(imGroupMember.getIsAdmin());
+            imGroupCoreService.groupMemberJoin(imGroup.getId(), Lists.newArrayList(groupMember));
+            // 更新群主流程
+            if (schoolStaffType.equals(ESchoolStaffType.ORCHESTRA_LEADER)) {
+                groupChangeOwner(userId, imGroup.getId());
+            }
             imGroupMemberDao.insert(imGroupMember);
 
         }
@@ -757,13 +761,9 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         if (CollectionUtils.isEmpty(imGroupIds)) {
             return;
         }
-
         List<ImGroup> groupList = imGroupDao.getByIds(imGroupIds);
-
         // id 分组
         Map<String, ImGroup> map = groupList.stream().collect(Collectors.toMap(ImGroup::getId, Function.identity()));
-
-
         for (String musicGroupId : imGroupIds) {
             ImGroup imGroup = map.get(musicGroupId);
             if (imGroup == null) {
@@ -772,13 +772,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
             try {
 
                 SysUser user = teacherDao.getUser(userId.intValue());
-                ImGroupMemberWrapper.ImGroupMember groupMember = ImGroupMemberWrapper.ImGroupMember.builder()
-                    .userId(userId)
-                    .nickname(sysUserService.getImName(user))
-                    .avatar(sysUserService.getImAvatar(user))
-                    .build();
-                imGroupCoreService.groupMemberJoin(imGroup.getId(), Lists.newArrayList(groupMember));
-
                 ImGroupMember imGroupMember = new ImGroupMember();
                 imGroupMember.setImGroupId(imGroup.getId());
                 imGroupMember.setUserId(userId.intValue());
@@ -792,8 +785,20 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                 }
                 imGroupMember.setType(EFriendRoleType.getByName(roleType).name());
                 imGroupMember.setTenantId(imGroup.getTenantId());
-                imGroupMemberDao.insert(imGroupMember);
+                imGroupMemberService.initImGroupMember(imGroupMember,imGroup.getGroupType());
+
+                ImGroupMemberWrapper.ImGroupMember groupMember = new ImGroupMemberWrapper.ImGroupMember();
+                groupMember.setUserId(userId);
+                groupMember.setNickname(imGroupMember.getNickname());
+                groupMember.setAvatar(sysUserService.getImAvatar(user));
+                groupMember.setRoleType(roleType);
+                groupMember.setType(imGroupMember.getType());
+                groupMember.setGroupId(imGroupMember.getImGroupId());
+                groupMember.setGroupRoleType(imGroupMember.getGroupRoleType());
+                groupMember.setIsAdmin(imGroupMember.getIsAdmin());
+                imGroupCoreService.groupMemberJoin(imGroup.getId(), Lists.newArrayList(groupMember));
 
+                imGroupMemberDao.insert(imGroupMember);
                 updateImGroupUserNumber(imGroup.getId());
             } catch (Exception e) {
                 log.error("加入群聊失败",e);
@@ -865,7 +870,6 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void schoolJoinGroup(Integer cooperationOrganId, String imGroupId) {
-
         CooperationOrgan cooperationOrgan = cooperationOrganService.get(cooperationOrganId);
         if (cooperationOrgan == null) {
             return;
@@ -874,21 +878,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         if (CollectionUtils.isEmpty(schoolStaffs)) {
             return;
         }
-
-
         // 查询群是否存在
         ImGroup imGroup = imGroupDao.get(imGroupId);
         if (imGroup == null) {
             return;
         }
-
-
         SchoolStaff schoolStaff = schoolStaffs.get(0);
-
-
-
         addImGroup(Lists.newArrayList(imGroup.getId()),schoolStaff.getUserId(),ESchoolStaffType.ORCHESTRA_LEADER.getDescribe());
-
     }