Ver Fonte

群主转让、群注销

zouxuan há 1 ano atrás
pai
commit
b80ecec079

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupMember.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.enums.im.EImGroupRoleType;
 import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
+import lombok.Setter;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -37,6 +38,7 @@ public class ImGroupMember extends BaseEntity {
 	private boolean isAdmin;
 
 	@Getter
+	@Setter
 	@ApiModelProperty(value = "是否禁言")
 	private Boolean muteFlag = false;
 

+ 30 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -198,6 +198,19 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 	}
 
 	public void initImGroupMember(ImGroupMember imGroupMember, ImGroup.GroupTypeEnum groupType){
+		try {
+			List<GroupMemberWrapper.Member> members = imPluginContext.getPluginService().groupUserGagList(imGroupMember.getImGroupId());
+			if(CollectionUtils.isNotEmpty(members)){
+				List<String> imGroupUserIds = members.stream().map(e -> e.getId()).collect(Collectors.toList());
+				if(CollectionUtils.isNotEmpty(imGroupUserIds)){
+					if(imGroupUserIds.contains(imGroupMember.getUserId().toString())){
+						imGroupMember.setMuteFlag(true);
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
 		//是否有群主
 		if(!imGroupMember.getIsAdmin()){
 			ImGroupMember admin = imGroupMemberDao.getAdmin(imGroupMember.getImGroupId());
@@ -244,12 +257,28 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 		if (CollectionUtils.isEmpty(imGroupMembers)) {
 			return;
 		}
+		String imGroupId = imGroupMembers.get(0).getImGroupId();
+		try {
+			List<GroupMemberWrapper.Member> members = imPluginContext.getPluginService().groupUserGagList(imGroupId);
+			if(CollectionUtils.isNotEmpty(members)){
+				List<String> imGroupUserIds = members.stream().map(e -> e.getId()).collect(Collectors.toList());
+				if(CollectionUtils.isNotEmpty(imGroupUserIds)){
+					for (ImGroupMember imGroupMember : imGroupMembers) {
+						if(imGroupUserIds.contains(imGroupMember.getUserId().toString())){
+							imGroupMember.setMuteFlag(true);
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
 		//是否有群主
 		long count = imGroupMembers.stream().filter(e -> e.getIsAdmin()).count();
 		if(count > 0){
 			return;
 		}
-		ImGroupMember admin = imGroupMemberDao.getAdmin(imGroupMembers.get(0).getImGroupId());
+		ImGroupMember admin = imGroupMemberDao.getAdmin(imGroupId);
 		if(Objects.nonNull(admin)){
 			return;
 		}