| 
					
				 | 
			
			
				@@ -7,6 +7,7 @@ import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.common.tools.ThreadPool; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.im.ImPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.microsvc.toolkit.middleware.im.message.GroupMemberWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.microsvc.toolkit.middleware.im.message.TencentWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.ImGroupMemberPlus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.ImGroupPlus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.EFriendRoleType; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -179,8 +180,16 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (userInfo != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 添加群成员到当前群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imPluginContext.getPluginService().groupJoin(imGroup.getGroupId(), imGroup.getName(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    getImGroupMembers(groupMembers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GroupMemberWrapper.ImGroupMember> imGroupMembers = getImGroupMembers(groupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imPluginContext.getPluginService().groupJoin(imGroup.getGroupId(), imGroup.getName(),imGroupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //转让群主 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imGroupMembers.stream().filter(GroupMemberWrapper.ImGroupMember::getIsAdmin).forEach(o -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    changeGroupOwner(imGroup.getGroupId(), o.getImUserId(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    log.error("changeGroupOwner error", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return group.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -442,18 +451,17 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 过滤出需要添加到群组的成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             groupMembers = groupMembers.stream().filter(ImGroupMemberWrapper.ImGroupMember::getGroupJoin).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 添加群成员到当前群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            imPluginContext.getPluginService().groupJoin(imGroup.getId(), imGroup.getName(), getImGroupMembers(groupMembers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 设置管理员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (ImGroupMemberWrapper.ImGroupMember groupMember : groupMembers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (groupMember.getGroupRoleType() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(groupMember.getGroupRoleType().equals(EImGroupRoleType.Admin.getCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        imPluginContext.getPluginService().groupAdminCreate(imGroup.getId(),groupMember.getImUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if(groupMember.getGroupRoleType().equals(EImGroupRoleType.Owner.getCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        imPluginContext.getPluginService().changeGroupOwner(imGroup.getId(),groupMember.getImUserId(),null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<GroupMemberWrapper.ImGroupMember> imGroupMembers = getImGroupMembers(groupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imPluginContext.getPluginService().groupJoin(imGroup.getId(), imGroup.getName(), imGroupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //转让群主 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imGroupMembers.stream().filter(GroupMemberWrapper.ImGroupMember::getIsAdmin).forEach(o -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    changeGroupOwner(imGroup.getId(), o.getImUserId(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    log.error("changeGroupOwner error", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 自动激活用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             asyncRegisterUser(groupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -481,18 +489,16 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 添加群成员到当前群组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        imPluginContext.getPluginService().groupJoin(imGroup.getId(), imGroup.getName(), getImGroupMembers(groupMembers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 设置管理员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (ImGroupMemberWrapper.ImGroupMember groupMember : groupMembers) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (groupMember.getGroupRoleType() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(groupMember.getGroupRoleType().equals(EImGroupRoleType.Admin.getCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    imPluginContext.getPluginService().groupAdminCreate(imGroup.getId(),groupMember.getImUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(groupMember.getGroupRoleType().equals(EImGroupRoleType.Owner.getCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    imPluginContext.getPluginService().changeGroupOwner(imGroup.getId(),groupMember.getImUserId(),null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<GroupMemberWrapper.ImGroupMember> imGroupMembers = getImGroupMembers(groupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        imPluginContext.getPluginService().groupJoin(imGroup.getId(), imGroup.getName(),imGroupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //转让群主 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        imGroupMembers.stream().filter(GroupMemberWrapper.ImGroupMember::getIsAdmin).forEach(o -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                changeGroupOwner(imGroup.getId(), o.getImUserId(), null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.error("changeGroupOwner error", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 自动激活用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         asyncRegisterUser(groupMembers); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -524,9 +530,20 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void changeGroupOwner(String groupId, String newOwner, String oldOwner) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StringUtils.isEmpty(oldOwner)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //获取群主信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TencentWrapper.GroupInfoResult groupInfo = imPluginContext.getPluginService().getGroupInfo(groupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<TencentWrapper.GroupInfo> groupInfoList = groupInfo.getGroupInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(CollectionUtils.isNotEmpty(groupInfoList)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                oldOwner = groupInfoList.get(0).getOwnerAccount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 转主群主 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         imPluginContext.getPluginService().changeGroupOwner(groupId, newOwner, oldOwner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置管理员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StringUtils.isNotEmpty(oldOwner)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            imPluginContext.getPluginService().groupAdminCreate(groupId, oldOwner); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |