|
@@ -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();
|
|
|
}
|
|
@@ -431,18 +440,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);
|
|
|
}
|
|
@@ -470,18 +478,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);
|
|
|
|
|
@@ -513,9 +519,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);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|