zouxuan 5 年之前
父节点
当前提交
bdc3adb23f

+ 3 - 1
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -24,7 +24,7 @@ public class RoomController{
     @RequestMapping(value = "/join", method = RequestMethod.POST)
     public Object joinRoom(@RequestBody ReqUserData data)
             throws ApiException, Exception {
-        RoomResult roomResult = roomService.joinRoom(data.getUserName(), data.getRoomId(), data.isAudience(), data.isDisableCamera());
+        RoomResult roomResult = roomService.joinRoom(data.getUserName(), data.getRoomId(), data.isAudience(), data.isDisableCamera(),data.isMusicMode());
         return new BaseResponse<>(roomResult);
     }
 
@@ -129,6 +129,8 @@ public class RoomController{
             result = roomService.controlDevice(data.getRoomId(), data.getUserId(), DeviceTypeEnum.Camera, data.getCameraOn());
         } else if (data.getMicrophoneOn() != null) {
             result = roomService.controlDevice(data.getRoomId(), data.getUserId(), DeviceTypeEnum.Microphone, data.getMicrophoneOn());
+        } else if (data.getMusicModeOn() != null) {
+            result = roomService.controlDevice(data.getRoomId(), data.getUserId(), DeviceTypeEnum.MusicMode, data.getMusicModeOn());
         } else {
             throw new ApiException(ErrorEnum.ERR_REQUEST_PARA_ERR);
         }

+ 5 - 0
mec-im/src/main/java/com/ym/dao/RoomMemberDao.java

@@ -62,6 +62,11 @@ public interface RoomMemberDao extends JpaRepository<RoomMember, Long> {
     @Query(value = "update rongyun_room_member set mic=?3 where rid=?1 and uid=?2", nativeQuery = true)
     public int updateMicByRidAndUid(String rid, String uid, boolean mic);
 
+    @Transactional
+    @Modifying
+    @Query(value = "update rongyun_room_member set music_mode=?3 where rid=?1 and uid=?2", nativeQuery = true)
+    public int updateMusicByRidAndUid(String rid, String uid, boolean musicMode);
+
     public boolean existsByRidAndUid(String rid, String uid);
 
     public boolean existsByRidAndRole(String rid, int role);

+ 1 - 0
mec-im/src/main/java/com/ym/pojo/DeviceTypeEnum.java

@@ -6,4 +6,5 @@ package com.ym.pojo;
 public enum DeviceTypeEnum {
     Microphone,
     Camera,
+    MusicMode,
 }

+ 10 - 0
mec-im/src/main/java/com/ym/pojo/ReqDeviceControlData.java

@@ -9,9 +9,19 @@ import lombok.Data;
 public class ReqDeviceControlData {
 	private Boolean cameraOn;
 	private Boolean microphoneOn;
+	private Boolean musicModeOn;
 	private String roomId;
 	private String userId;
 	private String ticket;
+
+	public Boolean getMusicModeOn() {
+		return musicModeOn;
+	}
+
+	public void setMusicModeOn(Boolean musicModeOn) {
+		this.musicModeOn = musicModeOn;
+	}
+
 	public Boolean getCameraOn() {
 		return cameraOn;
 	}

+ 7 - 0
mec-im/src/main/java/com/ym/pojo/ReqUserData.java

@@ -12,6 +12,13 @@ public class ReqUserData {
 	private String userId;
 	private boolean audience;
 	private boolean disableCamera;
+	private boolean musicMode;
+	public boolean isMusicMode() {
+		return musicMode;
+	}
+	public void setMusicMode(boolean musicMode) {
+		this.musicMode = musicMode;
+	}
 	public String getUserName() {
 		return userName;
 	}

+ 2 - 0
mec-im/src/main/java/com/ym/pojo/RoomMember.java

@@ -22,6 +22,7 @@ public class RoomMember {
     private @Getter @Setter Date joinDt;
     private @Getter @Setter String name;
     private @Getter @Setter boolean camera = true;
+    private @Getter @Setter boolean musicMode = true;
     private @Getter @Setter boolean mic = true;
 
     public RoomMember() {
@@ -41,6 +42,7 @@ public class RoomMember {
                 ", joinDt=" + joinDt +
                 ", name='" + name + '\'' +
                 ", camera=" + camera +
+                ", musicMode=" + musicMode +
                 ", mic=" + mic +
                 '}';
     }

+ 12 - 10
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -105,11 +105,11 @@ public class RoomServiceImpl implements RoomService {
 
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
-    public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
+    public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera,boolean isMusicMode) throws ApiException, Exception {
         CheckUtils.checkArgument(userName != null, "userName must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
-        log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={}", roomId, userName, isAudience, isDisableCamera);
+        log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={},isMusicMode={}", roomId, userName, isAudience, isDisableCamera,isMusicMode);
 
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         String userId = sysUser.getId().toString();
@@ -178,7 +178,7 @@ public class RoomServiceImpl implements RoomService {
             }else {
                 roleEnum = RoleEnum.RoleStudent;
             }
-            saveRoomMember(userId, userName, roomId, roleEnum.getValue(), !isDisableCamera, curTime);
+            saveRoomMember(userId, userName, roomId, roleEnum.getValue(), !isDisableCamera,!isMusicMode, curTime);
             IMApiResultInfo resultInfo = imHelper.joinGroup(new String[]{userId}, roomId, roomId);
             if (!resultInfo.isSuccess()) {
                 throw new ApiException(ErrorEnum.ERR_CREATE_ROOM_ERROR, resultInfo.getErrorMessage());
@@ -338,7 +338,7 @@ public class RoomServiceImpl implements RoomService {
         }
     }
 
-    private void saveRoomMember(String userId, String userName, String roomId, int role, boolean cameraOn, Date joinTime) {
+    private void saveRoomMember(String userId, String userName, String roomId, int role, boolean cameraOn,boolean musicModeOn, Date joinTime) {
         RoomMember roomMember = new RoomMember();
         roomMember.setUid(userId);
         roomMember.setName(userName);
@@ -346,6 +346,7 @@ public class RoomServiceImpl implements RoomService {
         roomMember.setRole(role);
         roomMember.setCamera(cameraOn);
         roomMember.setJoinDt(joinTime);
+        roomMember.setMusicMode(musicModeOn);
         roomMemberDao.save(roomMember);
     }
 
@@ -753,21 +754,23 @@ public class RoomServiceImpl implements RoomService {
             taskInfo.setRoomId(roomId);
             taskInfo.setTypeEnum(typeEnum);
             taskInfo.setOnOff(true);
-            taskInfo.setApplyUserId(userId);
+            taskInfo.setApplyUserId(authUser.getId().toString());
             taskInfo.setTargetUserId(userId);
             taskInfo.setTicket(ticket);
             scheduleManager.addTask(taskInfo);
             ControlDeviceNotifyMessage msg = new ControlDeviceNotifyMessage(ActionEnum.Invite.ordinal());
             msg.setTicket(ticket);
             msg.setType(taskInfo.getTypeEnum().ordinal());
-            msg.setOpUserId(userId);
+            msg.setOpUserId(authUser.getId().toString());
             msg.setOpUserName(authUser.getUsername());
-            imHelper.publishMessage(userId, userId, roomId, msg);
+            imHelper.publishMessage(authUser.getId().toString(), userId, roomId, msg);
         } else {
             if (typeEnum.equals(DeviceTypeEnum.Camera)) {
                 roomMemberDao.updateCameraByRidAndUid(roomId, userId, false);
-            } else {
+            } else if (typeEnum.equals(DeviceTypeEnum.Microphone)){
                 roomMemberDao.updateMicByRidAndUid(roomId, userId, false);
+            }else {
+                roomMemberDao.updateMusicByRidAndUid(roomId, userId, false);
             }
             DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(typeEnum.ordinal(), false);
             deviceResourceMessage.setUserId(userId);
@@ -1269,14 +1272,13 @@ public class RoomServiceImpl implements RoomService {
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
+    @Transactional(rollbackFor = Exception.class)
     public boolean statusSync(String roomId,String userId) throws Exception {
         log.info("statusSync: roomId={}, userId={}", roomId, userId);
         List<RoomMember> byRidAndUid = roomMemberDao.findByRidAndUid(roomId, userId);
         if(byRidAndUid.size() > 0){
 //            SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(userId));
             SysUser sysUser = teacherDao.getUser(Integer.parseInt(userId));
-            studentDao.lockUser(Integer.parseInt(userId));
             Teacher teacher = teacherDao.get(sysUser.getId());
             CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId.substring(1)));
             log.info("statusSyncLevelRoom: roomId={}, userId={}", roomId, userId);

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

@@ -10,7 +10,7 @@ import java.util.List;
  */
 public interface RoomService {
     //everyone
-    public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception;
+    public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera,boolean isMusicMode) throws ApiException, Exception;
 
     void signIn(Long roomId);