瀏覽代碼

Merge branch 'dev_v1.3.5_20220927'

Eric 2 年之前
父節點
當前提交
f5edd00446

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ImNetworkRoomMemberDao.java

@@ -18,7 +18,7 @@ public interface ImNetworkRoomMemberDao extends BaseMapper<ImNetworkRoomMember>
 
     int insert(@Param("entity") ImNetworkRoomMember roomMember);
 
-    ImNetworkRoomMember findByRidAndUid(@Param("roomId") String roomId, @Param("userId") Long userId);
+    ImNetworkRoomMember findByRidAndUid(@Param("roomId") String roomId, @Param("userId") Long userId, @Param("userRole") Integer userRole);
 
     List<ImNetworkRoomMember> queryByRoomId(@Param("roomId") String roomId);
 

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

@@ -37,7 +37,7 @@ public class ImNetworkRoomMemberServiceImpl extends ServiceImpl<ImNetworkRoomMem
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ImNetworkRoomMember initRoomMember(String roomId, BasicUserInfo sysUser, UserRoleEnum userRole) {
-        ImNetworkRoomMember roomMember = baseMapper.findByRidAndUid(roomId, sysUser.getUserId());
+        ImNetworkRoomMember roomMember = baseMapper.findByRidAndUid(roomId, sysUser.getUserId(), userRole.ordinal());
         if(Objects.isNull(roomMember)){
             roomMember = new ImNetworkRoomMember();
             roomMember.setRoomId(roomId);

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

@@ -234,11 +234,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         // 用户ID
         long userId = Long.parseLong(values[0]);
 
+
         // 客户端类型
+        UserRoleEnum userRole = UserRoleEnum.TEACHER;
         ClientEnum clientType = ClientEnum.TEACHER;
         if (values.length > 1 && ClientEnum.STUDENT.match(values[1])) {
 
             clientType = ClientEnum.STUDENT;
+
+            userRole = UserRoleEnum.STUDENT;
         }
 
         log.info("quitRoomSuccess: roomId={}, userId={}", roomId, userId);
@@ -248,7 +252,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             log.info("quitRoomSuccess break: roomId={}, userId={}", roomId, userId);
             return;
         }
-        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId);
+
+        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId, userRole.ordinal());
         if(Objects.isNull(roomMember)){
             return;
         }
@@ -436,11 +441,20 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         // 老师信息
         SysUser sysUser = sysUserService.getUser();
         String roomId = deviceControl.getRoomId();
+
+        String[] values = deviceControl.getUserId().split(":");
         // 学生信息
-        Long userId = Long.parseLong(deviceControl.getUserId().split(":")[0]);
+        Long userId = Long.parseLong(values[0]);
         Boolean enable = deviceControl.getEnable();
         log.info("controlDevice: roomId:{} ,deviceType:{} ,enable:{} ,userId:{}", roomId,deviceControl.getDeviceType(),enable,userId);
 
+        UserRoleEnum userRole = UserRoleEnum.TEACHER;
+        ClientEnum clientType = ClientEnum.TEACHER;
+        if (values.length > 1 && ClientEnum.STUDENT.match(values[1])) {
+            clientType = ClientEnum.STUDENT;
+
+            userRole = UserRoleEnum.STUDENT;
+        }
         // IM用户ID
         String imUserId = deviceControl.getUserId();
 
@@ -489,7 +503,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
                     break;
             }
         }else {
-            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId))
+            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId, clientType.ordinal()))
                     .orElseThrow(()-> new BizException("用户不在房间内"));
             long scheduleId = Long.parseLong(roomId);
             switch (deviceControl.getDeviceType()) {
@@ -538,11 +552,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         SysUser sysUser = sysUserService.getUser();
 
         String imUserId = String.valueOf(sysUser.getId());
+        UserRoleEnum userRole = UserRoleEnum.TEACHER;
         if (ClientEnum.STUDENT == deviceControl.getClientType()) {
             imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+
+            userRole = UserRoleEnum.STUDENT;
         }
 
-        ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId())).
+        ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId(),
+                        userRole.ordinal())).
                 orElseThrow(()-> new BizException("用户不在房间内"));
         switch (deviceControl.getDeviceType()) {
             case CAMERA:
@@ -582,14 +600,17 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         log.info("deviceStatusSync: enable:{} ,roomId:{} ,deviceType:{}", deviceStatusSync.getEnable(),deviceStatusSync.getRoomId(),deviceStatusSync.getDeviceType());
         Long userId = sysUserService.getUserId();
 
+        UserRoleEnum userRole = UserRoleEnum.TEACHER;
         String imUserId = String.valueOf(userId);
         if (ClientEnum.STUDENT == deviceStatusSync.getClientType()) {
             imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
+
+            userRole = UserRoleEnum.STUDENT;
         }
 
         ImNetworkDeviceTypeEnum deviceType = deviceStatusSync.getDeviceType();
         ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().
-                        findByRidAndUid(deviceStatusSync.getRoomId(), userId))
+                        findByRidAndUid(deviceStatusSync.getRoomId(), userId, userRole.ordinal()))
                 .orElseThrow(()-> new BizException("用户不在房间内"));
         switch (deviceType) {
             case CAMERA:

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ImNetworkRoomMemberMapper.xml

@@ -48,7 +48,7 @@
     </delete>
     <select id="findByRidAndUid" resultMap="BaseResultMap">
         SELECT <include refid="Base_Column_List"/> FROM im_network_room_member
-        WHERE room_id_ = #{roomId} AND user_id_ = #{userId} LIMIT 1
+        WHERE room_id_ = #{roomId} AND user_id_ = #{userId} AND role_ = #{userRole} LIMIT 1
     </select>
     <select id="queryByRoomId" resultMap="BaseResultMap">
         SELECT <include refid="Base_Column_List"/> FROM im_network_room_member WHERE room_id_ = #{roomId}

+ 3 - 3
service.md

@@ -1,14 +1,14 @@
 - [ ] gateway-server
 - [ ] auth-server
 - [ ] admin-server
-- [x] teacher-server
-- [x] student-server
+- [ ] teacher-server
+- [ ] student-server
 - [ ] website-server
 - [ ] task-server
 - [ ] websocket-server
 - [ ] audio-analysis
 - [ ] bbs-server
-- [ ] classroom-server
+- [x] classroom-server
 - [ ] cms-server
 - [ ] mall-admin
 - [ ] mall-server