Browse Source

网络教室

zouxuan 3 năm trước cách đây
mục cha
commit
b67a41bba2

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImNetworkRoomService.java

@@ -18,7 +18,7 @@ public interface ImNetworkRoomService extends IService<ImNetworkRoom> {
     ImNetworkRoomDao getDao();
 
     //加入网络教室
-    HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId, UserRoleEnum userRole) throws Exception;
+    HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId) throws Exception;
 
     //加入网络教室成功
     void joinRoomSuccess(String roomId,Long userId) throws Exception;
@@ -27,7 +27,7 @@ public interface ImNetworkRoomService extends IService<ImNetworkRoom> {
     void joinRoomFailure(String roomId);
 
     //退出房间
-    void leaveRoom(String roomId,UserRoleEnum userRole) throws Exception;
+    void leaveRoom(String roomId) throws Exception;
 
     //退出房间成功
     void leaveRoomSuccess(String roomId, Long userId) throws Exception;

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

@@ -65,13 +65,17 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId, UserRoleEnum userRole) throws Exception {
-        log.info("joinRoom params:courseScheduleId:{},userRole:{}",courseScheduleId,userRole);
+    public HttpResponseResult<ImNetworkRoomResult> joinRoom(Long courseScheduleId) throws Exception {
         Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 map(SysUser::getId).
                 orElseThrow(()-> new BizException("请登录"));
         CourseSchedule courseSchedule = Optional.ofNullable(courseScheduleService.getById(courseScheduleId)).
                 orElseThrow(()->new BizException("房间信息不存在"));
+        UserRoleEnum userRole = UserRoleEnum.STUDENT;
+        if(courseSchedule.getTeacherId().equals(userId)){
+            userRole = UserRoleEnum.TEACHER;
+        }
+        log.info("joinRoom params:courseScheduleId:{},userRole:{},userId:{}",courseScheduleId,userRole,userId);
         BasicUserInfo sysUser = Optional.ofNullable(teacherDao.getBasicUserInfo(userId)).
                 orElseThrow(()-> new BizException("用户信息不存在"));
         Date now = new Date();
@@ -164,12 +168,19 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void leaveRoom(String roomId,UserRoleEnum userRole) throws Exception {
+    public void leaveRoom(String roomId) throws Exception {
         Long userId = Optional.ofNullable(sysUserFeignService.queryUserInfo()).
                 map(SysUser::getId).
                 orElseThrow(()-> new BizException("请登录"));
         log.info("leaveRoom: roomId={}, userId={}", roomId, userId);
         long courseScheduleId = Long.parseLong(roomId);
+        Long teacherId = Optional.ofNullable(courseScheduleService.getById(courseScheduleId)).
+                map(CourseSchedule::getTeacherId).
+                orElseThrow(()->new BizException("房间信息不存在"));
+        UserRoleEnum userRole = UserRoleEnum.STUDENT;
+        if(teacherId.equals(userId)){
+            userRole = UserRoleEnum.TEACHER;
+        }
         if (userRole == UserRoleEnum.TEACHER){
             //如果老师退出房间,关闭伴奏
             courseScheduleStudentMusicSheetService.getDao().closePlayStatus(courseScheduleId,null);

+ 4 - 2
cooleshow-user/user-classroom/src/main/java/com/yonge/cooleshow/classroom/controller/ImNetworkRoomController.java

@@ -47,7 +47,7 @@ public class ImNetworkRoomController extends BaseController {
     public HttpResponseResult<ImNetworkRoomResult> joinRoom(Long roomId) throws Exception {
         roomId = Optional.ofNullable(roomId)
                 .orElseThrow(()->new BizException("房间号不可为空"));
-        return imNetworkRoomService.joinRoom(roomId, UserRoleEnum.TEACHER);
+        return imNetworkRoomService.joinRoom(roomId);
     }
 
 //    @ApiOperation("加入网络教室状态回调")
@@ -60,6 +60,7 @@ public class ImNetworkRoomController extends BaseController {
     @ApiOperation("加入网络教室状态回调")
     @PostMapping(value = "joinRoomFailure", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public HttpResponseResult joinRoomFailure(Long roomId){
+        roomId = Optional.ofNullable(roomId).orElseThrow(()->new BizException("房间号不可为空"));
         imNetworkRoomService.joinRoomFailure(roomId.toString());
         return succeed();
     }
@@ -85,7 +86,8 @@ public class ImNetworkRoomController extends BaseController {
     @ApiImplicitParam(name = "roomId", dataType = "Long", value = "课程编号")
     @PostMapping(value = "/leave", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public HttpResponseResult leaveRoom(Long roomId) throws Exception {
-        imNetworkRoomService.leaveRoom(roomId.toString(),UserRoleEnum.TEACHER);
+        roomId = Optional.ofNullable(roomId).orElseThrow(()->new BizException("房间号不可为空"));
+        imNetworkRoomService.leaveRoom(roomId.toString());
         return succeed();
     }