zouxuan 5 年 前
コミット
1711e1ee93

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

@@ -64,6 +64,16 @@ public interface RoomMemberDao extends JpaRepository<RoomMember, Long> {
 
     @Transactional
     @Modifying
+    @Query(value = "update rongyun_room_member set play_midi_json=?3 where rid=?1 and FIND_IN_SET(uid,?2)>0", nativeQuery = true)
+    public int updatePlayMidiJsonByRidAndUid(String rid, String uid, String playMidiJson);
+
+    @Transactional
+    @Modifying
+    @Query(value = "update rongyun_room_member set play_midi_json=?3 where rid=?1 and role=?2", nativeQuery = true)
+    public int updatePlayMidiJsonByRidAndRole(String rid, int role, String playMidiJson);
+
+    @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);
 

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

@@ -21,6 +21,7 @@ public class RoomMember {
     private @Getter @Setter int role;
     private @Getter @Setter Date joinDt;
     private @Getter @Setter String name;
+    private @Getter @Setter String playMidiJson;
     private @Getter @Setter boolean camera = true;
     private @Getter @Setter boolean musicMode = true;
     private @Getter @Setter boolean mic = true;
@@ -47,6 +48,7 @@ public class RoomMember {
                 ", name='" + name + '\'' +
                 ", camera=" + camera +
                 ", musicMode=" + musicMode +
+                ", playMidiJson=" + playMidiJson +
                 ", mic=" + mic +
                 '}';
     }

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

@@ -30,6 +30,7 @@ public class RoomResult {
         Date joinTime;
         boolean camera;
         boolean microphone;
+        String playMidiJson;
     }
 
     @Data
@@ -48,6 +49,7 @@ public class RoomResult {
             result.setMicrophone(member.isMic());
             result.setCamera(member.isCamera());
             result.setUserName(member.getName());
+            result.setPlayMidiJson(member.getPlayMidiJson());
             members.add(result);
         }
     }

+ 11 - 2
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -41,6 +41,7 @@ import com.ym.utils.IdentifierUtils;
 import com.ym.whiteboard.WhiteBoardHelper;
 import io.rong.models.message.GroupMessage;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -196,6 +197,7 @@ public class RoomServiceImpl implements RoomService {
 //            roomMemberDao.updateCameraByRidAndUid(roomId, userId, !isDisableCamera);
             userResult.setCamera(roomMember.isCamera());
             userResult.setJoinTime(roomMember.getJoinDt());
+            userResult.setPlayMidiJson(roomMember.getPlayMidiJson());
 
             log.info("user exist in the room: roomId={} , userId={}, use the last role={}", roomId, userId, roleEnum);
         }
@@ -1343,7 +1345,7 @@ public class RoomServiceImpl implements RoomService {
                 try {
                     apiResultInfo = imHelper.dismiss(userId, roomId);
                     if (apiResultInfo.getCode() == 200) {
-                        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+//                        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
                         roomDao.deleteByRid(roomId);
                         deleteWhiteboardByUser(roomId, userId);
                         log.info("dismiss the room: {},userId: {}", roomId,userId);
@@ -1360,7 +1362,7 @@ public class RoomServiceImpl implements RoomService {
                 try {
                     apiResultInfo = imHelper.quit(new String[]{userId}, roomId);
                     if (apiResultInfo.isSuccess()) {
-                        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+//                        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
                         MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
                         msg.setUserName(sysUser.getUsername());
                         imHelper.publishMessage(userId, roomId, msg);
@@ -1394,6 +1396,13 @@ public class RoomServiceImpl implements RoomService {
         groupMessage.setSenderId(sysUser.getId().toString());
         groupMessage.setObjectName("DY:PlayMidiMessage");
         messageService.groupSend(groupMessage);
+        //记录节拍器消息
+        String userId = playMidiMessageData.getUserId();
+        if(StringUtils.isEmpty(userId)){
+            roomMemberDao.updatePlayMidiJsonByRidAndRole(playMidiMessageData.getRoomId(),RoleEnum.RoleStudent.getValue(), StringEscapeUtils.unescapeJavaScript(playMidiMessageData.getContent()));
+        }else {
+            roomMemberDao.updatePlayMidiJsonByRidAndUid(playMidiMessageData.getRoomId(),userId,StringEscapeUtils.unescapeJavaScript(playMidiMessageData.getContent()));
+        }
     }
 
     /*@Override