shangke %!s(int64=2) %!d(string=hai) anos
pai
achega
5a80989d27

+ 8 - 2
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -7,6 +7,8 @@ import com.ym.mec.biz.dal.enums.ETencentTRTCCallbackCommand;
 import com.ym.pojo.*;
 import com.ym.pojo.*;
 import com.ym.service.MessageService;
 import com.ym.service.MessageService;
 import com.ym.service.RoomService;
 import com.ym.service.RoomService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.joda.time.DateTime;
 import org.joda.time.DateTime;
@@ -250,10 +252,14 @@ public class RoomController{
         return new BaseResponse<>(result);
         return new BaseResponse<>(result);
     }
     }
 
 
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roomId", value = "房间id", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "userId", value = "用户Id", dataType = "String"),
+    })
     @RequestMapping(value = "/members", method = RequestMethod.GET)
     @RequestMapping(value = "/members", method = RequestMethod.GET)
-    public Object getMembers(@RequestParam String roomId)
+    public Object getMembers(@RequestParam String roomId, @RequestParam String userId)
             throws Exception {
             throws Exception {
-        List<RoomResult.MemberResult> whiteboards = roomService.getMembers(roomId);
+        List<RoomResult.MemberResult> whiteboards = roomService.getMembers(roomId, userId);
         return new BaseResponse<>(whiteboards);
         return new BaseResponse<>(whiteboards);
     }
     }
 
 

+ 25 - 5
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -364,8 +364,8 @@ public class RoomServiceImpl implements RoomService {
         }
         }
 
 
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
-        if (roomMemberList != null && roomMemberList.size() > 0) {
-            Set<String> userIds = roomMemberList.stream().map(e -> e.getUid()).collect(Collectors.toSet());
+        if (CollectionUtils.isNotEmpty(roomMemberList)) {
+            Set<String> userIds = roomMemberList.stream().map(RoomMember::getUid).collect(Collectors.toSet());
             Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, courseId.toString()));
             Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, courseId.toString()));
             Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, courseId.toString()));
             Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, courseId.toString()));
             roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
             roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
@@ -1758,16 +1758,36 @@ public class RoomServiceImpl implements RoomService {
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public List<RoomResult.MemberResult> getMembers(String roomId) throws Exception {
+    public List<RoomResult.MemberResult> getMembers(String roomId, String userId) throws Exception {
+
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
-        if (roomMemberList != null && roomMemberList.size() > 0) {
+
+        // 参数过滤
+        if (StringUtils.isNotBlank(userId)) {
+            roomMemberList = roomMemberList.stream().filter(x -> x.getUid().equals(userId)).collect(Collectors.toList());
+        }
+
+        // 网络课用户信息
+        if (CollectionUtils.isNotEmpty(roomMemberList)) {
             List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, Long.parseLong(roomId.substring(1)), null, null, null);
             List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, Long.parseLong(roomId.substring(1)), null, null, null);
             RoomResult roomResult = new RoomResult();
             RoomResult roomResult = new RoomResult();
-            Set<String> userIds = roomMemberList.stream().map(e -> e.getUid()).collect(Collectors.toSet());
+            Set<String> userIds = roomMemberList.stream().map(RoomMember::getUid).collect(Collectors.toSet());
             Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, roomId.substring(1)));
             Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, roomId.substring(1)));
             Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, roomId.substring(1)));
             Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, roomId.substring(1)));
             roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
             roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
+
+            // 全员静音开启状态
+            CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId.substring(1)));
+            if (Optional.ofNullable(courseSchedule.getMuteAll()).orElse(false)) {
+                for (RoomResult.MemberResult item : roomResult.getMembers()) {
+                    // 重置学生用户当前静音状态
+                    if (RoleStudent.getValue() == item.getRole()) {
+                        item.setMicrophone(false);
+                    }
+                }
+            }
+
             return roomResult.getMembers();
             return roomResult.getMembers();
         }
         }
         return null;
         return null;

+ 1 - 1
mec-im/src/main/java/com/ym/service/RoomService.java

@@ -45,7 +45,7 @@ public interface RoomService {
     Boolean rejectControlDevice(String roomId, String ticket) throws Exception;
     Boolean rejectControlDevice(String roomId, String ticket) throws Exception;
 
 
 
 
-    List<RoomResult.MemberResult> getMembers(String roomId) throws  Exception;
+    List<RoomResult.MemberResult> getMembers(String roomId, String userId) throws  Exception;
 
 
     Boolean applySpeech(String roomId) throws  Exception;
     Boolean applySpeech(String roomId) throws  Exception;