浏览代码

fix 直播连麦用户信息

Eric 1 年之前
父节点
当前提交
586a507672

+ 15 - 4
mec-application/src/main/java/com/ym/mec/student/controller/ImGroupController.java

@@ -124,11 +124,22 @@ public class ImGroupController extends BaseController {
 
 
 	@ApiOperation("查询好友详情")
 	@ApiOperation("查询好友详情")
 	@GetMapping(value = "/queryFriendDetail")
 	@GetMapping(value = "/queryFriendDetail")
-	public Object queryFriendDetail(Integer userId) {
-		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUserService.getUserId(), userId);
+	public Object queryFriendDetail(String userId) {
+
+		// 管乐迷、酷乐秀直播播允许多端学生观看,这里增加了对用户ID的解析
+		if (StringUtils.isNotEmpty(userId) && !userId.matches("^\\d+$")) {
+			// 用户IM编号非整数,属于酷乐秀用户
+			ImUserFriendDto userProfile = imUserFriendService.getImUserProfile(userId);
+			if (Objects.isNull(userProfile)) {
+				return failed("当前好友不存在");
+			}
+			return succeed(userProfile);
+		}
+
+		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUserService.getUserId(), Integer.parseInt(userId));
 		if (dto == null) {
 		if (dto == null) {
 			dto = new ImUserFriendDto();
 			dto = new ImUserFriendDto();
-			SysUser user = sysUserService.queryUserById(userId);
+			SysUser user = sysUserService.queryUserById(Integer.parseInt(userId));
 			dto.setFriend(user);
 			dto.setFriend(user);
 
 
 			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
 			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
@@ -142,7 +153,7 @@ public class ImGroupController extends BaseController {
 			} else {
 			} else {
 				dto.setFriendNickname(user.getRealName());
 				dto.setFriendNickname(user.getRealName());
 			}
 			}
-			dto.setFriendId(userId);
+			dto.setFriendId(Integer.parseInt(userId));
 		}
 		}
 		return succeed(dto);
 		return succeed(dto);
 	}
 	}

+ 15 - 4
mec-application/src/main/java/com/ym/mec/teacher/controller/ImGroupController.java

@@ -186,11 +186,22 @@ public class ImGroupController extends BaseController {
 
 
 	@ApiOperation("查询好友详情")
 	@ApiOperation("查询好友详情")
 	@GetMapping(value = "/queryFriendDetail")
 	@GetMapping(value = "/queryFriendDetail")
-	public HttpResponseResult<ImUserFriendDto> queryFriendDetail(Integer userId) {
-		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUserService.getUserId(), userId);
+	public HttpResponseResult<ImUserFriendDto> queryFriendDetail(String userId) {
+
+		// 管乐迷、酷乐秀直播播允许多端学生观看,这里增加了对用户ID的解析
+		if (StringUtils.isNotEmpty(userId) && !userId.matches("^\\d+$")) {
+			// 用户IM编号非整数,属于酷乐秀用户
+			ImUserFriendDto userProfile = imUserFriendService.getImUserProfile(userId);
+			if (Objects.isNull(userProfile)) {
+				return failed("当前好友不存在");
+			}
+			return succeed(userProfile);
+		}
+
+		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(sysUserService.getUserId(), Integer.parseInt(userId));
 		if (dto == null) {
 		if (dto == null) {
 			dto = new ImUserFriendDto();
 			dto = new ImUserFriendDto();
-			SysUser user = sysUserService.queryUserById(userId);
+			SysUser user = sysUserService.queryUserById(Integer.parseInt(userId));
 			dto.setFriend(user);
 			dto.setFriend(user);
 
 
 			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
 			List<String> userTypes = Lists.newArrayList(user.getUserType().split(","));
@@ -204,7 +215,7 @@ public class ImGroupController extends BaseController {
 			} else {
 			} else {
 				dto.setFriendNickname(user.getRealName());
 				dto.setFriendNickname(user.getRealName());
 			}
 			}
-			dto.setFriendId(userId);
+			dto.setFriendId(Integer.parseInt(userId));
 		}
 		}
 		return succeed(dto);
 		return succeed(dto);
 	}
 	}

+ 16 - 4
mec-application/src/main/java/com/ym/mec/web/controller/ImGroupController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 package com.ym.mec.web.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
@@ -162,12 +163,23 @@ public class ImGroupController extends BaseController {
 
 
 	@ApiOperation("查询好友详情")
 	@ApiOperation("查询好友详情")
 	@GetMapping(value = "/queryFriendDetail")
 	@GetMapping(value = "/queryFriendDetail")
-	public HttpResponseResult<ImUserFriendDto> queryFriendDetail(Integer userId) {
+	public HttpResponseResult<ImUserFriendDto> queryFriendDetail(String userId) {
+
+		// 管乐迷、酷乐秀直播播允许多端学生观看,这里增加了对用户ID的解析
+		if (StringUtils.isNotEmpty(userId) && !userId.matches("^\\d+$")) {
+			// 用户IM编号非整数,属于酷乐秀用户
+			ImUserFriendDto userProfile = imUserFriendService.getImUserProfile(userId);
+			if (Objects.isNull(userProfile)) {
+				return failed("当前好友不存在");
+			}
+			return succeed(userProfile);
+		}
+
 		Integer currentUserId = sysUserService.getUserId();
 		Integer currentUserId = sysUserService.getUserId();
-		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(currentUserId, userId);
+		ImUserFriendDto dto = imUserFriendService.queryFriendDetail(currentUserId, Integer.parseInt(userId));
 		if (dto == null) {
 		if (dto == null) {
 			dto = new ImUserFriendDto();
 			dto = new ImUserFriendDto();
-			SysUser user = sysUserService.queryUserById(userId);
+			SysUser user = sysUserService.queryUserById(Integer.parseInt(userId));
 			dto.setFriend(user);
 			dto.setFriend(user);
 			//这里由原来的优先取老师的realName改成了优先取学员的username,
 			//这里由原来的优先取老师的realName改成了优先取学员的username,
 			// 因为管理员在修改通讯录备注的时候,如果是多角色,优先改的是学员的username
 			// 因为管理员在修改通讯录备注的时候,如果是多角色,优先改的是学员的username
@@ -182,7 +194,7 @@ public class ImGroupController extends BaseController {
 			} else {
 			} else {
 				dto.setFriendNickname(user.getRealName());
 				dto.setFriendNickname(user.getRealName());
 			}
 			}
-			dto.setFriendId(userId);
+			dto.setFriendId(Integer.parseInt(userId));
 		}
 		}
 		return succeed(dto);
 		return succeed(dto);
 	}
 	}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ImUserFriendDto.java

@@ -51,4 +51,16 @@ public class ImUserFriendDto extends ImUserFriend {
 		}
 		}
 		return Optional.ofNullable(friendAvatar).orElse("");
 		return Optional.ofNullable(friendAvatar).orElse("");
 	}
 	}
+
+	public void setFriendType(String friendType) {
+		this.friendType = friendType;
+	}
+
+	public void setImFriendId(String imFriendId) {
+		this.imFriendId = imFriendId;
+	}
+
+	public void setFriendAvatar(String friendAvatar) {
+		this.friendAvatar = friendAvatar;
+	}
 }
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImUserFriendService.java

@@ -57,6 +57,13 @@ public interface ImUserFriendService extends BaseService<Long, ImUserFriend> {
 	ImUserFriendDto queryFriendDetail(Integer userId, Integer friendUserId);
 	ImUserFriendDto queryFriendDetail(Integer userId, Integer friendUserId);
 
 
 	/**
 	/**
+	 * 获取用户详情
+	 * @param userId 用户ID
+	 * @return ImUserFriend
+	 */
+	ImUserFriendDto getImUserProfile(String userId);
+
+	/**
 	 * 用户通讯录新增
 	 * 用户通讯录新增
 	 * @param imUserFriends
 	 * @param imUserFriends
 	 */
 	 */

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.stream.Collectors;
 
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.collect.Sets;
+import com.microsvc.toolkit.middleware.im.ImPluginContext;
+import com.microsvc.toolkit.middleware.im.message.TencentWrapper;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.EFriendRoleType;
 import com.ym.mec.biz.dal.enums.EFriendRoleType;
@@ -16,6 +18,7 @@ import com.ym.mec.biz.dal.wrapper.ImGroupWrapper;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.biz.service.im.ImGroupCoreService;
 import com.ym.mec.biz.service.im.ImGroupCoreService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import static com.ym.mec.biz.dal.enums.GroupType.*;
 import static com.ym.mec.biz.dal.enums.GroupType.*;
 
 
+@Slf4j
 @Service
 @Service
 public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend> implements ImUserFriendService {
 public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend> implements ImUserFriendService {
 
 
@@ -67,6 +71,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
 
     @Autowired
     @Autowired
     private ImGroupCoreService imGroupCoreService;
     private ImGroupCoreService imGroupCoreService;
+    @Autowired
+    private ImPluginContext imPluginContext;
 
 
     @Override
     @Override
     public BaseDAO<Long, ImUserFriend> getDAO() {
     public BaseDAO<Long, ImUserFriend> getDAO() {
@@ -185,6 +191,31 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         return imUserFriendDto;
         return imUserFriendDto;
     }
     }
 
 
+    /**
+     * 获取用户详情
+     *
+     * @param userId 用户ID
+     * @return ImUserFriend
+     */
+    @Override
+    public ImUserFriendDto getImUserProfile(String userId) {
+        try {
+            TencentWrapper.UserProfile userProfile = imPluginContext.getPluginService().getUserProfile(userId);
+            // 返回当前登录用户信息
+            ImUserFriendDto imUserFriend = new ImUserFriendDto();
+            imUserFriend.setFriendAvatar(userProfile.getAvatar());
+            imUserFriend.setFriendNickname(userProfile.getUsername());
+            imUserFriend.setImFriendId(userId);
+            imUserFriend.setFriendType(ClientEnum.STUDENT.getCode());
+            // 设置IM好友ID
+            imUserFriend.setImUserId(userId);
+            return imUserFriend;
+        } catch (Exception e) {
+            log.error("getImUserProfile userId={}", userId, e);
+        }
+        return null;
+    }
+
     @Override
     @Override
     public void batchInsert(List<ImUserFriend> imUserFriends) {
     public void batchInsert(List<ImUserFriend> imUserFriends) {
         for (ImUserFriend imUserFriend : imUserFriends) {
         for (ImUserFriend imUserFriend : imUserFriends) {

+ 1 - 1
pom.xml

@@ -25,7 +25,7 @@
 		<docker.host>http://127.0.0.1:2375</docker.host>
 		<docker.host>http://127.0.0.1:2375</docker.host>
 		<docker.registry.repository>127.0.0.1:5000</docker.registry.repository>
 		<docker.registry.repository>127.0.0.1:5000</docker.registry.repository>
 		<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
 		<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
-		<com.microsvc.toolkit.version>1.0.4</com.microsvc.toolkit.version>
+		<com.microsvc.toolkit.version>1.0.7</com.microsvc.toolkit.version>
 	</properties>
 	</properties>
 
 
 	<dependencyManagement>
 	<dependencyManagement>