Browse Source

修改状态

liujc 2 years ago
parent
commit
7b74ea4db3

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

@@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Lock;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import javax.persistence.LockModeType;
@@ -58,4 +59,10 @@ public interface RoomMemberDao extends JpaRepository<RoomMember, Long> {
     int updateMusicByRidAndUid(String rid, String uid, boolean musicMode);
 
     boolean existsByRidAndUid(String rid, String uid);
+
+
+    @Modifying
+    @Query(value = "update rongyun_room_member set (case ?3 when 1 then  mic =?4 when 2 then camera =?4 when 3 then music_mode = ?4 else hand = ?4) " +
+            "where rid=?1 and role=?2", nativeQuery = true)
+    void updateAll(String userId, int role, int type, boolean enable);
 }

+ 18 - 7
mec-im/src/main/java/com/ym/enums/DeviceTypeEnum.java

@@ -1,11 +1,22 @@
 package com.ym.enums;
 
 public enum DeviceTypeEnum {
-    Microphone,
-    Camera,
-    MusicMode,
-    HandUp,
-    ExamSong,
-    MusicScore,
-    MusicScoreAccompaniment,
+    Microphone(1),
+    Camera(2),
+    MusicMode(3),
+    HandUp(4),
+    ExamSong(5),
+    MusicScore(6),
+    MusicScoreAccompaniment(7),;
+
+
+    private int value;
+
+    DeviceTypeEnum(int value) {
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
 }

+ 19 - 0
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -1441,6 +1441,25 @@ public class RoomServiceImpl implements RoomService {
             data.setUserId(e.getUid());
             controlDevice(data);
         }
+        DeviceTypeEnum typeEnum;
+        boolean enable;
+        if (data.getCameraOn() != null) {
+            typeEnum = DeviceTypeEnum.Camera;
+            enable = data.getCameraOn();
+        } else if (data.getMicrophoneOn() != null) {
+            typeEnum = DeviceTypeEnum.Microphone;
+            enable = data.getMicrophoneOn();
+        } else if (data.getMusicModeOn() != null) {
+            typeEnum = DeviceTypeEnum.MusicMode;
+            enable = data.getMusicModeOn();
+        } else if (data.getHandUpOn() != null) {
+            typeEnum = DeviceTypeEnum.HandUp;
+            enable = data.getHandUpOn();
+        }  else
+            return true;
+
+        roomMemberDao.updateAll(data.getUserId(),RoleStudent.getValue(),typeEnum.getValue(),enable);
+
         return true;
     }