zouxuan 3 роки тому
батько
коміт
91712af2af

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RoomMemberDao.java

@@ -19,4 +19,6 @@ public interface RoomMemberDao extends BaseDAO<Integer, RoomMember> {
     int deleteRoomMember(@Param("roomId") String roomId, @Param("userId") String userId);
 
     int updateByRidAndUid(@Param("roomId") String roomId, @Param("userId") String userId, @Param("role") Integer role);
+
+    void updateDevice(@Param("roomId") String roomId, @Param("userId") String userId, @Param("type") String type, @Param("flag") boolean flag);
 }

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/RoomMemberMapper.xml

@@ -75,6 +75,24 @@
 		UPDATE rongyun_room_member SET role = #{role}
 		WHERE rid = #{roomId} AND uid = #{userId}
 	</update>
+	<update id="updateDevice">
+		UPDATE rongyun_room_member
+		<set>
+			<if test="type == 'Camera'">
+				camera = #{flag},
+			</if>
+			<if test="type == 'Microphone'">
+				mic = #{flag},
+			</if>
+			<if test="type == 'HandUp'">
+				hand = #{flag},
+			</if>
+			<if test="type == 'MusicMode'">
+				music_mode = #{flag}
+			</if>
+		</set>
+		WHERE rid = #{roomId} AND uid = #{userId}
+	</update>
 
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >

+ 4 - 20
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -900,14 +900,7 @@ public class RoomServiceImpl implements RoomService {
                 imHelper.publishMessage(authUser.getId().toString(), userId, roomId, msg);
             }
         } else {
-            RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
-            if (typeEnum.equals(DeviceTypeEnum.Camera)) {
-                roomMember.setCamera(false);
-            } else if (typeEnum.equals(DeviceTypeEnum.Microphone)){
-                roomMember.setMic(false);
-            } else if (typeEnum.equals(DeviceTypeEnum.HandUp)){
-                roomMember.setHand(false);
-            } else if (typeEnum.equals(DeviceTypeEnum.ExamSong)){
+            if (typeEnum.equals(DeviceTypeEnum.ExamSong)){
                 long scheduleId = Long.parseLong(roomId.substring(1));
                 ExamSongDownloadData msg;
                 String examJson = courseScheduleStudentPaymentDao.getExamJsonByCourseIdAndUserId(scheduleId, Integer.parseInt(userId));
@@ -927,9 +920,8 @@ public class RoomServiceImpl implements RoomService {
                 //关闭所有曲目播放
                 courseScheduleStudentMusicScoreDao.closePlayStatus(scheduleId,Integer.parseInt(userId),null);
             }else {
-                roomMember.setMusicMode(false);
+                roomMemberDao.updateDevice(roomId, userId,typeEnum.name(),false);
             }
-            roomMemberDao.update(roomMember);
             DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(typeEnum.ordinal(), false);
             deviceResourceMessage.setUserId(userId);
             UserInfo userInfo = userDao.findOne(userId);
@@ -1058,14 +1050,7 @@ public class RoomServiceImpl implements RoomService {
 
         DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(type.ordinal(), enable);
 
-        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
-        if (type.equals(DeviceTypeEnum.Camera)) {
-            roomMember.setCamera(enable);
-        } else if (type.equals(DeviceTypeEnum.Microphone)){
-            roomMember.setMic(enable);
-        } else if (type.equals(DeviceTypeEnum.HandUp)){
-            roomMember.setHand(enable);
-        } else if (type.equals(DeviceTypeEnum.ExamSong)){
+        if (type.equals(DeviceTypeEnum.ExamSong)){
             long scheduleId = Long.parseLong(roomId.substring(1));
             ExamSongDownloadData msg;
             String examJson = courseScheduleStudentPaymentDao.getExamJsonByCourseIdAndUserId(scheduleId, authUser.getId());
@@ -1077,9 +1062,8 @@ public class RoomServiceImpl implements RoomService {
             }
             courseScheduleStudentPaymentDao.adjustExamSong(scheduleId,authUser.getId(),JSON.toJSONString(msg));
         }else {
-            roomMember.setMusicMode(enable);
+            roomMemberDao.updateDevice(roomId, userId,type.name(),enable);
         }
-        roomMemberDao.update(roomMember);
         Room room = roomDao.findOne(roomId);
         deviceResourceMessage.setSoundVolume(room.getSoundVolume());
         deviceResourceMessage.setUserId(userId);