Browse Source

网络教室新增模拟考试判断

zouxuan 4 years ago
parent
commit
0c3e0d16a8

+ 4 - 0
edu-im/edu-im-server/src/main/java/com/keao/edu/im/controller/RoomController.java

@@ -11,6 +11,7 @@ import com.keao.edu.im.pojo.*;
 import com.keao.edu.im.service.MessageService;
 import com.keao.edu.im.service.RoomService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
@@ -69,6 +70,9 @@ public class RoomController{
         ChannelStateNotify notify = JSONObject.parseObject(body, ChannelStateNotify.class);
         log.info("statusSyncParam: {}",JSONObject.toJSON(notify));
         String roomId = notify.getRoomId();
+        if(StringUtils.startsWith(roomId,"S")){
+            return null;
+        }
         String userId = notify.getUserId();
         switch (notify.getEvent()){
             case 3:

+ 25 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -130,14 +130,38 @@ public class RoomServiceImpl implements RoomService {
         }
     }
 
+    public BaseResponse getBaseResponse(String userId, String roomId){
+        RoomResult roomResult = new RoomResult();
+        BaseResponse baseResponse = new BaseResponse(roomResult);
+        RoomResult.MemberResult userResult = new RoomResult.MemberResult();
+        userResult.setUserId(userId);
+        userResult.setRole(3);
+        roomResult.setUserInfo(userResult);
+        roomResult.setRoomId(roomId);
+        RoomResult.MemberResult result = new RoomResult.MemberResult();
+        result.setUserId(userId);
+        result.setRole(3);
+        List<RoomMember> roomMembers = new ArrayList<>();
+        RoomMember roomMember = new RoomMember();
+        roomMember.setRid(roomId);
+        roomMember.setRole(3);
+        roomMember.setUid(userId);
+        roomMembers.add(roomMember);
+        roomResult.setMembers(roomMembers,null);
+        return baseResponse;
+    }
+
     @Override
-    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
     public BaseResponse joinRoom(Long registrationId, String roomId){
         StudentExamApiDto examResult = null;
         log.info("joinRoom: roomId={}, registrationId={}", roomId,registrationId);
 
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         String userId = sysUser.getId().toString();
+        if(StringUtils.startsWith(roomId,"S")){
+            return getBaseResponse(userId,roomId);
+        }
         String realName = sysUser.getRealName();
         if(registrationId != null){
             examResult = eduUserFeignService.getExamResult(registrationId);