Kaynağa Gözat

如果用户不在群聊,那么找第一个群成员记录

zouxuan 3 yıl önce
ebeveyn
işleme
8a220eaa73

+ 9 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -25,10 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -169,7 +166,14 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
 	@Override
 	public ImGroupMemberDto queryMember(String imGroupId, Integer userId) {
-		return imGroupDao.queryMember(imGroupId, userId);
+		ImGroupMemberDto imGroupMemberDto = imGroupDao.queryMember(imGroupId, userId);
+		if(Objects.isNull(imGroupMemberDto)){
+			imGroupMemberDto = imGroupDao.queryMember(null, userId);
+			if (Objects.nonNull(imGroupMemberDto)){
+				imGroupMemberDto.setRoleType(null);
+			}
+		}
+		return imGroupMemberDto;
 	}
 
 	@Override

+ 9 - 2
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -170,7 +170,14 @@
 	</select>
 	
 	<select id="queryMember" resultMap="ImGroupMemberDto" parameterType="map">
-		SELECT igm.*,u.avatar_,case when find_in_set('STUDENT',u.user_type_) then u.username_ else u.real_name_ end username_ FROM im_group_member igm left join sys_user u on igm.user_id_ = u.id_
-		where igm.im_group_id_ = #{imGroupId} and igm.user_id_ = #{userId}
+		SELECT igm.*,u.avatar_,CASE WHEN find_in_set('STUDENT',u.user_type_) THEN u.username_ ELSE u.real_name_ END username_
+		FROM im_group_member igm left join sys_user u on igm.user_id_ = u.id_
+		WHERE igm.user_id_ = #{userId}
+		<if test="imGroupId != null and imGroupId != ''">
+			AND igm.im_group_id_ = #{imGroupId}
+		</if>
+		<if test="imGroupId == null or imGroupId == ''">
+			LIMIT 1
+		</if>
 	</select>
 </mapper>