zouxuan пре 2 година
родитељ
комит
3bb602b6fd

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

@@ -1,14 +1,11 @@
 package com.yonge.cooleshow.biz.dal.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ImNetworkRoomMemberDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;
 import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
-import com.yonge.cooleshow.biz.dal.enums.UserRoleEnum;
 
-import java.util.Date;
 import java.util.List;
 
 /**

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

@@ -5,9 +5,7 @@ import com.yonge.cooleshow.biz.dal.dao.ImNetworkRoomDao;
 import com.yonge.cooleshow.biz.dal.dto.*;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoom;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.UserRoleEnum;
 import com.yonge.cooleshow.common.entity.BaseResponse;
-import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import java.util.List;
 

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

@@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.ImNetworkRoomMemberDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;
-import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMemberStatus;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
-import com.yonge.cooleshow.biz.dal.enums.UserRoleEnum;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberService;
 import com.yonge.cooleshow.biz.dal.service.ImNetworkRoomMemberStatusService;
@@ -46,7 +44,7 @@ public class ImNetworkRoomMemberServiceImpl extends ServiceImpl<ImNetworkRoomMem
     @Override
     @Transactional(rollbackFor = Exception.class)
     public ImNetworkRoomMember initRoomMember(String roomId, BasicUserInfo sysUser, RoleEnum userRole,Boolean microphone) {
-        ImNetworkRoomMember roomMember = baseMapper.findByRidAndUid(roomId, sysUser.getUserId(), userRole.ordinal());
+        ImNetworkRoomMember roomMember = baseMapper.findByRidAndUid(roomId, sysUser.getUserId(), userRole.getValue());
         if(Objects.isNull(roomMember)){
             roomMember = new ImNetworkRoomMember();
             roomMember.setRoomId(roomId);

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

@@ -265,19 +265,20 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void joinRoomFailure(String roomId, ClientEnum clientType) {
-
         // 当前登录用户ID
         Long userId = sysUserService.getUserId();
         log.info("joinRoomFailure: roomId={}, userId={}", roomId, userId);
 
         // 网络教室用户身份
-        UserRoleEnum userRole = UserRoleEnum.TEACHER;
+        RoleEnum userRole = RoleEnum.RoleTeacher;
         if (ClientEnum.STUDENT == clientType) {
-            userRole = UserRoleEnum.STUDENT;
+            userRole = RoleEnum.RoleStudent;
         }
-
+        imNetworkRoomMemberService.lambdaUpdate().eq(ImNetworkRoomMember::getRoomId,roomId)
+                .eq(ImNetworkRoomMember::getUserId,userId)
+                        .eq(ImNetworkRoomMember::getRole,userRole.ordinal());
         // 删除网络教室学员
-        imNetworkRoomMemberService.getDao().delByRidAndUid(roomId, userId, userRole.ordinal());
+        imNetworkRoomMemberService.getDao().delByRidAndUid(roomId, userId, userRole.getValue());
     }
 
     @Override
@@ -287,8 +288,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         Long userId = Long.parseLong(imGroupService.analysisImUserId(imUserId));
         // 客户端类型
         ClientEnum clientType = ClientEnum.valueOf(imGroupService.analysisImUserClient(imUserId));
-        // 客户端类型
-        UserRoleEnum userRole = UserRoleEnum.convert(clientType);
+        // 网络教室用户身份
+        RoleEnum userRole = RoleEnum.RoleTeacher;
+        if (ClientEnum.STUDENT == clientType) {
+            userRole = RoleEnum.RoleStudent;
+        }
         log.info("quitRoomSuccess: roomId={}, userId={}", roomId, userId);
         //防止幂等
         String QUIT_ROOM_SUCCESS = "quitRoomSuccess:";
@@ -297,8 +301,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             log.info("quitRoomSuccess break: roomId={}, userId={}", roomId, userId);
             return;
         }
-
-        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId, userRole.ordinal());
+        ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery()
+                .eq(ImNetworkRoomMember::getUserId, userId)
+                .eq(ImNetworkRoomMember::getRoomId, roomId)
+                .eq(ImNetworkRoomMember::getRole, userRole.getValue())
+                .last("LIMIT 1").one();
         if(Objects.isNull(roomMember)){
             return;
         }
@@ -417,7 +424,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
                 }
 
             }else {
-                List<ImNetworkRoomMember> roomMembers = imNetworkRoomMemberService.getDao().findByRoomAndRole(deviceControl.getRoomId(), 0);
+                List<ImNetworkRoomMember> roomMembers = imNetworkRoomMemberService.getDao().findByRoomAndRole(deviceControl.getRoomId(), RoleEnum.RoleStudent.getValue());
                 if (!CollectionUtils.isEmpty(roomMembers)) {
                     for (ImNetworkRoomMember roomMember : roomMembers) {
                         deviceControl.setImUserId(imGroupService.getImUserId(String.valueOf(roomMember.getUserId()), ClientEnum.STUDENT.name()));
@@ -485,12 +492,12 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Transactional(rollbackFor = Exception.class)
     public void approveControlDevice(ImNetworkDeviceControlDto deviceControl) throws Exception {
         log.info("approveControlDevice: roomId:{} ,deviceType:{} ,enable:{}", deviceControl.getRoomId(),deviceControl.getDeviceType(),deviceControl.getEnable());
-        UserRoleEnum userRole = UserRoleEnum.TEACHER;
+        RoleEnum userRole = RoleEnum.RoleTeacher;
         if (ClientEnum.STUDENT == deviceControl.getClientType()) {
-            userRole = UserRoleEnum.STUDENT;
+            userRole = RoleEnum.RoleStudent;
         }
         ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(),sysUserService.getUserId(),
-                        userRole.ordinal())).
+                        userRole.getValue())).
                 orElseThrow(()-> new BizException("用户不在房间内"));
         CourseSchedule courseSchedule = courseScheduleService.getById(deviceControl.getRoomId());
         deviceControl.setServiceProvider(courseSchedule.getServiceProvider());
@@ -506,16 +513,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         log.info("deviceStatusSync: enable:{} ,roomId:{} ,deviceType:{}", deviceStatusSync.getEnable(),deviceStatusSync.getRoomId(),deviceStatusSync.getDeviceType());
         SysUser user = sysUserService.getUser();
         Long userId = user.getId();
-
-        UserRoleEnum userRole = UserRoleEnum.TEACHER;
+        RoleEnum userRole = RoleEnum.RoleTeacher;
         if (ClientEnum.STUDENT == deviceStatusSync.getClientType()) {
-            userRole = UserRoleEnum.STUDENT;
+            userRole = RoleEnum.RoleStudent;
         }
 
         CourseSchedule courseSchedule = courseScheduleService.getById(deviceStatusSync.getRoomId());
         deviceStatusSync.setServiceProvider(courseSchedule.getServiceProvider());
         ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().
-                        findByRidAndUid(deviceStatusSync.getRoomId(), userId, userRole.ordinal()))
+                        findByRidAndUid(deviceStatusSync.getRoomId(), userId, userRole.getValue()))
                 .orElseThrow(()-> new BizException("用户不在房间内"));
         imService.sendDeviceStatusSync(deviceStatusSync,roomMember);
     }

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

@@ -286,7 +286,7 @@ public class ImServiceImpl implements ImService {
                     break;
             }
         }else {
-            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, Long.parseLong(userId), UserRoleEnum.STUDENT.ordinal()))
+            ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, Long.parseLong(userId), RoleEnum.RoleStudent.getValue()))
                     .orElseThrow(()-> new BizException("用户不在房间内"));
             switch (deviceControl.getDeviceType()) {
                 case CAMERA:

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

@@ -21,24 +21,13 @@
         camera_flag_, mic_flag_, music_mode_flag_, hand_flag_,username_,avatar_,im_user_id_
     </sql>
 
-    <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
-            parameterType="com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember">
-        insert into im_network_room_member(room_id_, user_id_, join_time_, role_, camera_flag_,
-        mic_flag_, music_mode_flag_, hand_flag_,username_,avatar_,im_user_id_)
-        values
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.roomId}, #{entity.userId}, #{entity.joinTime}, #{entity.role},
-            #{entity.cameraFlag}, #{entity.micFlag}, #{entity.musicModeFlag},
-             #{entity.handFlag}, #{entity.username}, #{entity.avatar},#{entity.imUserId})
-        </foreach>
-    </insert>
     <insert id="insert" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember">
         INSERT INTO im_network_room_member(room_id_, user_id_, join_time_, role_, camera_flag_,
                                            mic_flag_, music_mode_flag_, hand_flag_,username_,avatar_,im_user_id_)
         VALUES (#{entity.roomId}, #{entity.userId},NOW(), #{entity.role},
-                #{entity.cameraFlag}, #{entity.micFlag}, #{entity.musicModeFlag},
-                #{entity.handFlag}, #{entity.username}, #{entity.avatar}, #{entity.imUserId})
+                #{entity.camera}, #{entity.microphone}, #{entity.musicModeOn},
+                #{entity.handUpOn}, #{entity.username}, #{entity.avatar}, #{entity.imUserId})
         ON DUPLICATE KEY UPDATE
         room_id_ = VALUES(room_id_),
         user_id_ = VALUES(user_id_),