Prechádzať zdrojové kódy

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

zouxuan 1 rok pred
rodič
commit
889938a6d8

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

@@ -19,7 +19,7 @@ public interface ImService{
     void publishMemberChangedMessage(ImNetworkRoomMember roomMember,String serviceProvider) throws Exception;
 
     //发送display改动通知
-    void sendDisplay(String imUserId, ImNetworkRoom room,String serviceProvider) throws Exception;
+    void sendDisplay(ImNetworkRoomMember roomMember, ImNetworkRoom room,String serviceProvider) throws Exception;
 
     //发送节拍器消息
     void sendImPlayMidiMessage(ImNetworkCustomMessage customMessage) throws Exception;

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

@@ -29,7 +29,7 @@ public interface RoomService extends IService<ImNetworkRoom> {
     void quitRoomSuccess(RoleEnum roleEnum,String imUserId,String roomId, String serviceProvider) throws Exception;
 
     //修改节拍器
-    void updateDisplay(String imUserId, ImNetworkRoom room, String serviceProvider) throws Exception;
+    void updateDisplay(ImNetworkRoomMember roomMember, ImNetworkRoom room, String serviceProvider) throws Exception;
 
     //移动端用来渲染页面
     void display(ImNetworkDisplayDataDto displayData,String serviceProvider) throws Exception;

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

@@ -298,7 +298,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         // 获取RTC服务提供方
         imService.publishMemberChangedMessage(roomMember,courseSchedule.getServiceProvider());
         //sendDisplay
-        imService.sendDisplay(imUserId, room,courseSchedule.getServiceProvider());
+        imService.sendDisplay(roomMember, room,courseSchedule.getServiceProvider());
     }
 
     @Override

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

@@ -98,12 +98,12 @@ public class ImServiceImpl implements ImService {
     }
 
     @Override
-    public void sendDisplay(String imUserId, ImNetworkRoom room,String serviceProvider) throws Exception {
+    public void sendDisplay(ImNetworkRoomMember roomMember, ImNetworkRoom room,String serviceProvider) throws Exception {
+        if(roomMember == null){
+            log.error("sendDisplay: roomMember is null");
+            return;
+        }
         // IM发送用户消息
-        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getUserId, imUserId)
-                .eq(ImNetworkRoomMember::getRoomId, room.getRoomId())
-                .eq(ImNetworkRoomMember::getRole,RoleEnum.RoleTeacher.getValue())
-                .last("LIMIT 1").one();
         if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(serviceProvider) || StringUtils.isEmpty(serviceProvider)) {
             // 获取RTC服务提供方
             RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(TencentCloudRTCPlugin.PLUGIN_NAME);
@@ -127,7 +127,7 @@ public class ImServiceImpl implements ImService {
         } else {
             //发送display改动通知
             ImNetworkDisplayMessage displayMessage = new ImNetworkDisplayMessage(room.getDisplay());
-            imHelper.publishMessage(imUserId, room.getRoomId(), displayMessage, 0);
+            imHelper.publishMessage(roomMember.getUserId(), room.getRoomId(), displayMessage, 0);
         }
     }
 

+ 12 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/RoomServiceImpl.java

@@ -118,7 +118,11 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
                     .set(ImNetworkRoomMemberStatus::getMusicSheetDownloadJson,null).update();
             if (isUserDisplay(room.getDisplay(),imUserId)) {
                 room.setDisplay("");
-                this.updateDisplay(imUserId,room,serviceProvider);
+                ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery()
+                        .eq(ImNetworkRoomMember::getRoomId, roomId)
+                        .eq(ImNetworkRoomMember::getRole, RoleEnum.RoleTeacher.getValue())
+                        .eq(ImNetworkRoomMember::getUserId, imUserId).last("limit 1").one();
+                this.updateDisplay(roomMember,room,serviceProvider);
             }
         }
         int memberNum = imNetworkRoomMemberService.lambdaQuery()
@@ -148,10 +152,10 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
     //修改节拍器
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateDisplay(String imUserId, ImNetworkRoom room, String serviceProvider) throws Exception {
+    public void updateDisplay(ImNetworkRoomMember roomMember, ImNetworkRoom room, String serviceProvider) throws Exception {
         baseMapper.updateById(room);
         //节拍器修改消息发送
-        imService.sendDisplay(imUserId,room,serviceProvider);
+        imService.sendDisplay(roomMember,room,serviceProvider);
     }
 
     @Override
@@ -177,7 +181,11 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
         ImNetworkRoom room = baseMapper.findByRoomId(displayData.getRoomId());
         room.setDisplay(display.toString());
 
-        this.updateDisplay(displayData.getTeacherId(),room,serviceProvider);
+        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery()
+                .eq(ImNetworkRoomMember::getRoomId, displayData.getRoomId())
+                .eq(ImNetworkRoomMember::getRole, RoleEnum.RoleTeacher.getValue())
+                .eq(ImNetworkRoomMember::getUserId, displayData.getTeacherId()).last("limit 1").one();
+        this.updateDisplay(roomMember,room,serviceProvider);
     }
 
     public boolean isUserDisplay(String display, String imUserId) {