Browse Source

Merge branch 'feature/0803-im' of http://git.dayaedu.com/yonge/cooleshow into feature/0803-im

liujc 1 year ago
parent
commit
f186bdcb66

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkRoomResult.java

@@ -16,6 +16,9 @@ public class ImNetworkRoomResult extends ImNetworkRoom {
     @ApiModelProperty(value = "陪练课结束后,XX分钟关闭房间")
     @ApiModelProperty(value = "陪练课结束后,XX分钟关闭房间")
     private String autoCloseNetworkRoomTime = "15";
     private String autoCloseNetworkRoomTime = "15";
 
 
+    @ApiModelProperty(value = "课程结束后是否关闭教室")
+    private Boolean autoCloseFlag = true;
+
     @ApiModelProperty(value = "当前课程剩余时长")
     @ApiModelProperty(value = "当前课程剩余时长")
     private Integer surplusTime;
     private Integer surplusTime;
 
 

+ 7 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImNetworkRoomMemberStatus.java

@@ -29,13 +29,13 @@ public class ImNetworkRoomMemberStatus implements Serializable {
 	@TableField(value = "room_id_")
 	@TableField(value = "room_id_")
     private String roomId;
     private String roomId;
 
 
-    @TableField(value = "im_user_id_")
-    @ApiModelProperty(value = "IM用户ID")
-    private String imUserId;
-
-    @ApiModelProperty("角色0学员1老师;") 
-	@TableField(value = "role_")
-    private Integer role;
+//    @TableField(value = "im_user_id_")
+//    @ApiModelProperty(value = "IM用户ID")
+//    private String imUserId;
+//
+//    @ApiModelProperty("角色0学员1老师;")
+//	@TableField(value = "role_")
+//    private Integer role;
 
 
     @ApiModelProperty("网络教室节拍器参数") 
     @ApiModelProperty("网络教室节拍器参数") 
 	@TableField(value = "play_midi_")
 	@TableField(value = "play_midi_")

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImNetworkRoomMemberStatusService.java

@@ -12,11 +12,11 @@ import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMemberStatus;
  */
  */
 public interface ImNetworkRoomMemberStatusService extends IService<ImNetworkRoomMemberStatus>  {
 public interface ImNetworkRoomMemberStatusService extends IService<ImNetworkRoomMemberStatus>  {
 
 
-    void add(ImNetworkRoomMember roomMember);
+    void add(String roomId);
 
 
     //获取网络教室成员midi
     //获取网络教室成员midi
-    ImNetworkMetronomeMessage getMemberMidi(ImNetworkRoomMember roomMember);
+    ImNetworkMetronomeMessage getMemberMidi(String roomId);
 
 
     //获取伴奏信息
     //获取伴奏信息
-    ImNetworkRoomMusicSheetDownloadData getMemberExamSong(String roomId, String imUserId);
+    ImNetworkRoomMusicSheetDownloadData getMemberExamSong(String roomId);
 }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomMemberServiceImpl.java

@@ -60,7 +60,7 @@ public class ImNetworkRoomMemberServiceImpl extends ServiceImpl<ImNetworkRoomMem
             roomMember.setJoinTime(new Date());
             roomMember.setJoinTime(new Date());
             baseMapper.insert(roomMember);
             baseMapper.insert(roomMember);
             //生成用户房间状态表
             //生成用户房间状态表
-            imNetworkRoomMemberStatusService.add(roomMember);
+            imNetworkRoomMemberStatusService.add(roomId);
         }
         }
         return roomMember;
         return roomMember;
     }
     }

+ 17 - 13
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomMemberStatusServiceImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dto.ImNetworkMetronomeMessage;
 import com.yonge.cooleshow.biz.dal.dto.ImNetworkMetronomeMessage;
 import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomMusicSheetDownloadData;
 import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomMusicSheetDownloadData;
-import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMemberStatus;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMemberStatus;
 import com.yonge.cooleshow.biz.dal.mapper.ImNetworkRoomMemberStatusMapper;
 import com.yonge.cooleshow.biz.dal.mapper.ImNetworkRoomMemberStatusMapper;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberStatusService;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberStatusService;
@@ -13,6 +12,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.util.Objects;
+
 /**
 /**
  * 网络教室成员状态表
  * 网络教室成员状态表
  * 2023-08-14 15:47:02
  * 2023-08-14 15:47:02
@@ -23,18 +24,21 @@ public class ImNetworkRoomMemberStatusServiceImpl extends ServiceImpl<ImNetworkR
 
 
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public void add(ImNetworkRoomMember roomMember) {
-        ImNetworkRoomMemberStatus roomMemberStatus = new ImNetworkRoomMemberStatus();
-        roomMemberStatus.setRoomId(roomMember.getRoomId());
-        roomMemberStatus.setRole(roomMember.getRole());
-        roomMemberStatus.setImUserId(roomMember.getUserId());
-        baseMapper.insert(roomMemberStatus);
+    public void add(String roomId) {
+        ImNetworkRoomMemberStatus memberStatus = this.lambdaQuery()
+                .eq(ImNetworkRoomMemberStatus::getRoomId,roomId).last("LIMIT 1").one();
+        if(Objects.nonNull(memberStatus)){
+            return;
+        }
+        memberStatus = new ImNetworkRoomMemberStatus();
+        memberStatus.setRoomId(roomId);
+        baseMapper.insert(memberStatus);
     }
     }
 
 
     @Override
     @Override
-    public ImNetworkMetronomeMessage getMemberMidi(ImNetworkRoomMember roomMember) {
-        String midi = this.lambdaQuery().eq(ImNetworkRoomMemberStatus::getRoomId,roomMember.getRoomId())
-                .eq(ImNetworkRoomMemberStatus::getImUserId,roomMember.getUserId()).last("LIMIT 1").one().getPlayMidi();
+    public ImNetworkMetronomeMessage getMemberMidi(String roomId) {
+        String midi = this.lambdaQuery()
+                .eq(ImNetworkRoomMemberStatus::getRoomId,roomId).last("LIMIT 1").one().getPlayMidi();
         if(StringUtils.isNotEmpty(midi)){
         if(StringUtils.isNotEmpty(midi)){
             return JSONObject.parseObject(midi, ImNetworkMetronomeMessage.class);
             return JSONObject.parseObject(midi, ImNetworkMetronomeMessage.class);
         }
         }
@@ -42,9 +46,9 @@ public class ImNetworkRoomMemberStatusServiceImpl extends ServiceImpl<ImNetworkR
     }
     }
 
 
     @Override
     @Override
-    public ImNetworkRoomMusicSheetDownloadData getMemberExamSong(String roomId, String imUserId) {
-        String musicSheet = this.lambdaQuery().eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
-                .eq(ImNetworkRoomMemberStatus::getImUserId,imUserId).last("LIMIT 1").one().getMusicSheetDownloadJson();
+    public ImNetworkRoomMusicSheetDownloadData getMemberExamSong(String roomId) {
+        String musicSheet = this.lambdaQuery()
+                .eq(ImNetworkRoomMemberStatus::getRoomId,roomId).last("LIMIT 1").one().getMusicSheetDownloadJson();
         if(StringUtils.isNotEmpty(musicSheet)){
         if(StringUtils.isNotEmpty(musicSheet)){
             return JSONObject.parseObject(musicSheet, ImNetworkRoomMusicSheetDownloadData.class);
             return JSONObject.parseObject(musicSheet, ImNetworkRoomMusicSheetDownloadData.class);
         }
         }

+ 2 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -160,7 +160,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
                 setMusicSheetList(members,Long.parseLong(roomId));
                 setMusicSheetList(members,Long.parseLong(roomId));
             }else {
             }else {
                 //获取节拍器信息
                 //获取节拍器信息
-                joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomMember));
+                joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomId));
             }
             }
             joinRoomResult.setMembers(members);
             joinRoomResult.setMembers(members);
             //课程结束后关闭教室的时间
             //课程结束后关闭教室的时间
@@ -236,7 +236,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             setMusicSheetList(members,Long.parseLong(roomId));
             setMusicSheetList(members,Long.parseLong(roomId));
         }else {
         }else {
             //获取节拍器信息
             //获取节拍器信息
-            joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomMember));
+            joinRoomResult.setPlayMidiJson(imNetworkRoomMemberStatusService.getMemberMidi(roomId));
         }
         }
         joinRoomResult.setMembers(members);
         joinRoomResult.setMembers(members);
         //课程结束后关闭教室的时间
         //课程结束后关闭教室的时间
@@ -371,11 +371,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //发送节拍器消息
         //发送节拍器消息
         imService.sendImPlayMidiMessage(customMessage);
         imService.sendImPlayMidiMessage(customMessage);
         //记录节拍器信息
         //记录节拍器信息
-        String collect = Arrays.stream(customMessage.getUserId().split(","))
-                .map(x -> x.split(":")[0]).collect(Collectors.joining(","));
         imNetworkRoomMemberStatusService.lambdaUpdate()
         imNetworkRoomMemberStatusService.lambdaUpdate()
                         .eq(ImNetworkRoomMemberStatus::getRoomId,customMessage.getRoomId())
                         .eq(ImNetworkRoomMemberStatus::getRoomId,customMessage.getRoomId())
-                                .in(ImNetworkRoomMemberStatus::getImUserId,collect)
                                         .set(ImNetworkRoomMemberStatus::getPlayMidi,customMessage.getContent());
                                         .set(ImNetworkRoomMemberStatus::getPlayMidi,customMessage.getContent());
     }
     }
 
 

+ 6 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImServiceImpl.java

@@ -88,10 +88,10 @@ public class ImServiceImpl implements ImService {
         } else {
         } else {
             ImNetworkRoomMemberChangedMessage msg = new ImNetworkRoomMemberChangedMessage(roomMember, ImNetworkRoomMemberChangedEnum.JOIN);
             ImNetworkRoomMemberChangedMessage msg = new ImNetworkRoomMemberChangedMessage(roomMember, ImNetworkRoomMemberChangedEnum.JOIN);
             //获取节拍器信息
             //获取节拍器信息
-            ImNetworkMetronomeMessage imNetworkCustomMessage = imNetworkRoomMemberStatusService.getMemberMidi(roomMember);
+            ImNetworkMetronomeMessage imNetworkCustomMessage = imNetworkRoomMemberStatusService.getMemberMidi(roomMember.getRoomId());
             msg.setMetronomeSwitch(imNetworkCustomMessage.getEnable());
             msg.setMetronomeSwitch(imNetworkCustomMessage.getEnable());
             //获取伴奏信息
             //获取伴奏信息
-            ImNetworkRoomMusicSheetDownloadData musicSheetDownloadData = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId(), roomMember.getUserId());
+            ImNetworkRoomMusicSheetDownloadData musicSheetDownloadData = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId());
             msg.setExamSongSwitch(musicSheetDownloadData.getEnable());
             msg.setExamSongSwitch(musicSheetDownloadData.getEnable());
             imHelper.publishMessage(roomMember.getUserId(), roomMember.getRoomId(), msg);
             imHelper.publishMessage(roomMember.getUserId(), roomMember.getRoomId(), msg);
         }
         }
@@ -241,11 +241,10 @@ public class ImServiceImpl implements ImService {
             deviceResourceMessage.setUserId(deviceControl.getUserId());
             deviceResourceMessage.setUserId(deviceControl.getUserId());
             switch (deviceControl.getDeviceType()) {
             switch (deviceControl.getDeviceType()) {
                 case EXAM_SONG:
                 case EXAM_SONG:
-                    ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId, deviceControl.getUserId());
+                    ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId);
                     msg.setEnable(true);
                     msg.setEnable(true);
                     imNetworkRoomMemberStatusService.lambdaUpdate()
                     imNetworkRoomMemberStatusService.lambdaUpdate()
                                     .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
                                     .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
-                                            .eq(ImNetworkRoomMemberStatus::getImUserId,deviceControl.getUserId())
                                                     .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
                                                     .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
 
 
                     // 消息发送
                     // 消息发送
@@ -289,7 +288,7 @@ public class ImServiceImpl implements ImService {
         }else {
         }else {
             if(deviceControl.getDeviceType() == ImNetworkDeviceTypeEnum.MUSIC_SHEET ||
             if(deviceControl.getDeviceType() == ImNetworkDeviceTypeEnum.MUSIC_SHEET ||
                     deviceControl.getDeviceType() == ImNetworkDeviceTypeEnum.ACCOMPANIMENT){
                     deviceControl.getDeviceType() == ImNetworkDeviceTypeEnum.ACCOMPANIMENT){
-                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId, deviceControl.getUserId());
+                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomId);
                 msg.setEnable(false);
                 msg.setEnable(false);
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomId)
@@ -340,11 +339,10 @@ public class ImServiceImpl implements ImService {
                 roomMember.setCameraFlag(deviceControl.getEnable());
                 roomMember.setCameraFlag(deviceControl.getEnable());
                 break;
                 break;
             case EXAM_SONG:
             case EXAM_SONG:
-                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId(), roomMember.getUserId());
+                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId());
                 msg.setEnable(deviceControl.getEnable());
                 msg.setEnable(deviceControl.getEnable());
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomMember.getRoomId())
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomMember.getRoomId())
-                        .eq(ImNetworkRoomMemberStatus::getImUserId,roomMember.getUserId())
                         .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
                         .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
                 break;
                 break;
             case MICROPHONE:
             case MICROPHONE:
@@ -432,11 +430,10 @@ public class ImServiceImpl implements ImService {
                 roomMember.setMusicModeFlag(deviceStatusSync.getEnable());
                 roomMember.setMusicModeFlag(deviceStatusSync.getEnable());
                 break;
                 break;
             case EXAM_SONG:
             case EXAM_SONG:
-                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId(), roomMember.getUserId());
+                ImNetworkRoomMusicSheetDownloadData msg = imNetworkRoomMemberStatusService.getMemberExamSong(roomMember.getRoomId());
                 msg.setEnable(deviceStatusSync.getEnable());
                 msg.setEnable(deviceStatusSync.getEnable());
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                 imNetworkRoomMemberStatusService.lambdaUpdate()
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomMember.getRoomId())
                         .eq(ImNetworkRoomMemberStatus::getRoomId,roomMember.getRoomId())
-                        .eq(ImNetworkRoomMemberStatus::getImUserId,roomMember.getUserId())
                         .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
                         .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,JSON.toJSONString(msg)).update();
                 break;
                 break;
         }
         }