zouxuan 5 năm trước cách đây
mục cha
commit
744a97b5e4

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

@@ -53,18 +53,7 @@ public class RoomController{
 
 
     @RequestMapping(value = "/sendImPlayMidiMessage", method = RequestMethod.POST)
     @RequestMapping(value = "/sendImPlayMidiMessage", method = RequestMethod.POST)
     public Object sendImPlayMidiMessage(@RequestBody PlayMidiMessageData playMidiMessageData) throws Exception {
     public Object sendImPlayMidiMessage(@RequestBody PlayMidiMessageData playMidiMessageData) throws Exception {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            throw new BizException("用户信息获取失败");
-        }
-//        roomService.sendImPlayMidiMessage(playMidiMessageData);
-        GroupMessage groupMessage = new GroupMessage();
-        CustomMessage customMessage = JSONObject.parseObject(playMidiMessageData.getContent(),CustomMessage.class);
-        groupMessage.setContent(customMessage);
-        groupMessage.setTargetId(playMidiMessageData.getRoomId().split(","));
-        groupMessage.setSenderId(sysUser.getId().toString());
-        groupMessage.setObjectName("DY:PlayMidiMessage");
-        messageService.groupSend(groupMessage);
+        roomService.sendImPlayMidiMessage(playMidiMessageData);
         return new BaseResponse<>();
         return new BaseResponse<>();
     }
     }
 
 

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

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

+ 1 - 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 int role;
     private @Getter @Setter Date joinDt;
     private @Getter @Setter Date joinDt;
     private @Getter @Setter String name;
     private @Getter @Setter String name;
+    private @Getter @Setter String playMidiJson;
     private @Getter @Setter boolean camera = true;
     private @Getter @Setter boolean camera = true;
     private @Getter @Setter boolean musicMode = true;
     private @Getter @Setter boolean musicMode = true;
     private @Getter @Setter boolean mic = true;
     private @Getter @Setter boolean mic = true;

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

@@ -1,5 +1,6 @@
 package com.ym.service.Impl;
 package com.ym.service.Impl;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.common.ApiException;
 import com.ym.common.ApiException;
 import com.ym.common.DisplayEnum;
 import com.ym.common.DisplayEnum;
 import com.ym.common.ErrorEnum;
 import com.ym.common.ErrorEnum;
@@ -25,19 +26,20 @@ import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.StudentAttendanceService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.message.*;
 import com.ym.mec.im.message.*;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.pojo.*;
 import com.ym.pojo.*;
+import com.ym.service.MessageService;
 import com.ym.service.RoomService;
 import com.ym.service.RoomService;
 import com.ym.utils.CheckUtils;
 import com.ym.utils.CheckUtils;
 import com.ym.utils.CodeUtil;
 import com.ym.utils.CodeUtil;
 import com.ym.utils.DateTimeUtils;
 import com.ym.utils.DateTimeUtils;
 import com.ym.utils.IdentifierUtils;
 import com.ym.utils.IdentifierUtils;
 import com.ym.whiteboard.WhiteBoardHelper;
 import com.ym.whiteboard.WhiteBoardHelper;
+import io.rong.models.message.GroupMessage;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -81,7 +83,7 @@ public class RoomServiceImpl implements RoomService {
     private UserDao userDao;
     private UserDao userDao;
 
 
     @Autowired
     @Autowired
-    private SysMessageService sysMessageService;
+    private MessageService messageService;
 
 
     @Autowired
     @Autowired
     private TeacherDao teacherDao;
     private TeacherDao teacherDao;
@@ -1378,6 +1380,30 @@ public class RoomServiceImpl implements RoomService {
         return true;
         return true;
     }
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("用户信息获取失败");
+        }
+//        roomService.sendImPlayMidiMessage(playMidiMessageData);
+        GroupMessage groupMessage = new GroupMessage();
+        CustomMessage customMessage = JSONObject.parseObject(playMidiMessageData.getContent(),CustomMessage.class);
+        groupMessage.setContent(customMessage);
+        groupMessage.setTargetId(playMidiMessageData.getRoomId().split(","));
+        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(),playMidiMessageData.getContent());
+        }else {
+            roomMemberDao.updatePlayMidiJsonByRidAndUid(playMidiMessageData.getRoomId(),userId,playMidiMessageData.getContent());
+        }
+    }
+
     /*@Override
     /*@Override
     public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) {
     public void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         SysUser sysUser = sysUserFeignService.queryUserInfo();

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

@@ -68,6 +68,12 @@ public interface RoomService {
     boolean statusSync(String roomId,String userId) throws Exception;
     boolean statusSync(String roomId,String userId) throws Exception;
 
 
     /**
     /**
+     * 发送节拍器消息
+     * @param playMidiMessageData
+     */
+    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData) throws Exception;
+
+    /**
      * 发送节拍器自定义消息
      * 发送节拍器自定义消息
      */
      */
 //    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData);
 //    void sendImPlayMidiMessage(PlayMidiMessageData playMidiMessageData);