Kaynağa Gözat

融云优化

zouxuan 3 yıl önce
ebeveyn
işleme
a8cd785ef2

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HereWhiteDao.java

@@ -5,5 +5,5 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface HereWhiteDao extends BaseDAO<Integer, HereWhite> {
 
-    HereWhite findByCourseScheduleId(Integer id);
+    HereWhite findByCourseScheduleId(Integer courseScheduleId);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RoomMemberDao.java

@@ -12,8 +12,6 @@ public interface RoomMemberDao extends BaseDAO<Integer, RoomMember> {
 
     RoomMember findOne(@Param("roomId") String roomId, @Param("userId") String userId);
 
-    int deleteRoomMember(@Param("roomId") String roomId);
-
     int countRoomMember(@Param("roomId") String roomId, @Param("excludeRole") Integer excludeRole);
 
     int deleteRoomMember(@Param("roomId") String roomId, @Param("userId") String userId);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/UserDao.java

@@ -5,7 +5,7 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface UserDao extends BaseDAO<Integer,UserInfo> {
 
-    UserInfo findOne(String roomId);
+    UserInfo findOne(String userId);
 
     int deleteUser(String userId);
 }

+ 2 - 2
mec-im/src/main/java/com/ym/job/ScheduleManager.java

@@ -4,8 +4,8 @@ import com.ym.common.ApiException;
 import com.ym.common.ErrorEnum;
 import com.ym.config.RoomProperties;
 import com.ym.config.WhiteBoardProperties;
-import com.ym.dao.RoomDao;
-import com.ym.dao.RoomMemberDao;
+import com.ym.mec.biz.dal.dao.RoomDao;
+import com.ym.mec.biz.dal.dao.RoomMemberDao;
 import com.ym.mec.im.IMHelper;
 import com.ym.mec.im.message.TicketExpiredMessage;
 import com.ym.pojo.ScheduledTaskInfo;

+ 2 - 0
mec-im/src/main/java/com/ym/pojo/RoomResult.java

@@ -13,6 +13,8 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import com.ym.mec.biz.dal.entity.RoomMember;
+import com.ym.mec.biz.dal.entity.Whiteboard;
 
 /**
  * Created by weiqinxiao on 2019/2/28.

+ 2 - 3
mec-im/src/main/java/com/ym/service/HereWhiteService.java

@@ -1,8 +1,7 @@
 package com.ym.service;
 
-import com.ym.pojo.HereWhite;
 
-import java.io.IOException;
+import com.ym.mec.biz.dal.entity.HereWhite;
 
 public interface HereWhiteService {
 
@@ -12,7 +11,7 @@ public interface HereWhiteService {
      * @param userNum
      * @return
      */
-    HereWhite create(String name,Integer userNum,Integer courseScheduleId) throws Exception;
+    HereWhite create(String name, Integer userNum, Integer courseScheduleId) throws Exception;
 
     /**
      * 获取白板详情

+ 4 - 4
mec-im/src/main/java/com/ym/service/Impl/HereWhiteServiceImpl.java

@@ -1,10 +1,10 @@
 package com.ym.service.Impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.ym.dao.HereWhiteDao;
+import com.ym.mec.biz.dal.dao.HereWhiteDao;
+import com.ym.mec.biz.dal.entity.HereWhite;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.http.HttpUtil;
-import com.ym.pojo.HereWhite;
 import com.ym.service.HereWhiteService;
 import com.ym.service.RoomService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +32,7 @@ public class HereWhiteServiceImpl implements HereWhiteService {
 
     @Override
     @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
-    public HereWhite create(String name, Integer userNum,Integer courseScheduleId) throws Exception {
+    public HereWhite create(String name, Integer userNum, Integer courseScheduleId) throws Exception {
         courseScheduleId = roomService.getCurrentCourseId(courseScheduleId.toString());
         JSONObject json = new JSONObject();
         json.put("name",name);
@@ -58,7 +58,7 @@ public class HereWhiteServiceImpl implements HereWhiteService {
                 hereWhite.setRoomToken(jsonObject.getJSONObject("msg").getString("roomToken"));
                 hereWhite.setUpdatedAt(date);
                 hereWhite.setCreatedAt(date);
-                hereWhiteDao.save(hereWhite);
+                hereWhiteDao.insert(hereWhite);
             }
             return hereWhite;
         }else {

+ 115 - 85
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -15,9 +15,17 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.CourseScheduleStudentMusicScoreDao;
+import com.ym.mec.biz.dal.dao.RoomDao;
+import com.ym.mec.biz.dal.dao.RoomMemberDao;
+import com.ym.mec.biz.dal.dao.UserDao;
+import com.ym.mec.biz.dal.dao.WhiteboardDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.RongyunBasicUserDto;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.Room;
+import com.ym.mec.biz.dal.entity.RoomMember;
+import com.ym.mec.biz.dal.entity.UserInfo;
+import com.ym.mec.biz.dal.entity.Whiteboard;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.service.StudentAttendanceService;
@@ -174,10 +182,10 @@ public class RoomServiceImpl implements RoomService {
 
 
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
-        RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember member = roomMemberDao.findOne(roomId, userId);
         String userName;
         if (member == null) {
-            int count = roomMemberDao.countByRidAndExcludeRole(roomId, RoleEnum.RoleAudience.getValue());
+            int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
             if (count == roomProperties.getMaxCount()) {
                 log.info("join error Over max count: roomId = {}, userId = {}", roomId,userId);
                 throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
@@ -208,7 +216,7 @@ public class RoomServiceImpl implements RoomService {
 
         List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, courseId,null, null, null);
 
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         String display = "";
         if (roleEnum == RoleTeacher) {
             display = "display://type=1?userId=" + userId + "?uri=";
@@ -252,14 +260,14 @@ public class RoomServiceImpl implements RoomService {
         roomResult.setDisplay(display);
         roomResult.setRoomId(roomId);
 
-        List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
+        List<RoomMember> roomMemberList = roomMemberDao.queryRoomMember(roomId,null,null);
         if(roomMemberList != null && roomMemberList.size() > 0){
             Set<String> userIds = roomMemberList.stream().map(e -> e.getUid()).collect(Collectors.toSet());
             Map<Integer,String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds,courseId.toString()));
             Map<Integer,String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds,courseId.toString()));
             roomResult.setMembers(roomMemberList,midiMap,examSongMap,scheduleStudentMusicScores);
         }
-        roomResult.setWhiteboards(whiteboardDao.findByRid(roomId));
+        roomResult.setWhiteboards(whiteboardDao.queryWhiteboard(roomId,null,null));
         if (room != null) {
             roomResult.setSoundVolume(room.getSoundVolume());
         }
@@ -276,7 +284,7 @@ public class RoomServiceImpl implements RoomService {
         Date curTime = DateTimeUtils.currentUTC();
 
         RoleEnum roleEnum;
-        RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember member = roomMemberDao.findOne(roomId, userId);
         String userName;
         if (member == null) {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
@@ -295,20 +303,20 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
     public void joinRoomFailure(String roomId, String userId) {
-        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if(roomMember == null){
             return ;
         }
         log.info("joinRoomFailure : roomId={}, userId={}", roomId, userId);
         //如果加入失败,删除该用户数据
-        roomMemberDao.deleteUserByRidAndUid(roomId,userId);
+        roomMemberDao.deleteRoomMember(roomId,userId);
     }
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
     public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
         log.info("joinRoomSuccess: roomId={}, userId={}, deviceNum={}", roomId,userId,deviceNum);
-        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if(roomMember == null){
             roomMember = saveRoomMember(roomId,userId);
         }
@@ -335,7 +343,7 @@ public class RoomServiceImpl implements RoomService {
             display = "display://type=0?userId=" + userId + "?uri=";
         }
         Date curTime = DateTimeUtils.currentUTC();
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         if (room == null) {
             saveRoom(roomId, roomId, curTime, display);
             IMApiResultInfo resultInfo = imHelper.createGroup(new String[]{userId}, roomId, roomId);
@@ -349,14 +357,14 @@ public class RoomServiceImpl implements RoomService {
             }
         }
 
-        UserInfo userInfo = userDao.findByUid(userId);
+        UserInfo userInfo = userDao.findOne(userId);
         if (userInfo == null) {
             userInfo = new UserInfo();
             userInfo.setUid(userId);
             userInfo.setName(roomMember.getName());
             userInfo.setCreateDt(curTime);
             userInfo.setUpdateDt(curTime);
-            userDao.save(userInfo);
+            userDao.insert(userInfo);
         }
         MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roleEnum.getValue());
         msg.setTimestamp(curTime);
@@ -419,7 +427,7 @@ public class RoomServiceImpl implements RoomService {
         room.setCreateDt(createTime);
         room.setDisplay(display);
         room.setWhiteboardNameIndex(0);
-        roomDao.save(room);
+        roomDao.insert(room);
     }
 
     public RoomMember saveRoomMember(String userId, String headUrl, String userName, String roomId, int role, Date joinTime) {
@@ -432,7 +440,7 @@ public class RoomServiceImpl implements RoomService {
         roomMember.setJoinDt(joinTime);
         roomMember.setMusicMode(false);
         roomMember.setHeadUrl(headUrl);
-        roomMemberDao.save(roomMember);
+        roomMemberDao.insert(roomMember);
         return roomMember;
     }
 
@@ -477,37 +485,37 @@ public class RoomServiceImpl implements RoomService {
             username = sysUser.getUsername();
             studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),parseInt);
         }
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         if (room == null) {
-            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-            userDao.deleteByUid(userId);
+            roomMemberDao.deleteRoomMember(roomId, userId);
+            userDao.deleteUser(userId);
             return;
         }
         if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
             updateDisplay(roomId, userId, "", 0);
         }
-        if (roomMemberDao.countByRid(roomId) <= 1) {
-            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-            roomDao.deleteByRid(roomId);
+        if (roomMemberDao.countRoomMember(roomId,null) <= 1) {
+            roomMemberDao.deleteRoomMember(roomId, userId);
+            roomDao.deleteRoom(roomId);
             deleteWhiteboardByUser(roomId, userId);
             imHelper.dismiss(userId, roomId);
             courseScheduleStudentMusicScoreDao.closePlayStatus(courseSchedule.getId(),null,null);
             log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
         } else {
-            roomMemberDao.deleteUserByRidAndUid(roomId, userId);
+            roomMemberDao.deleteRoomMember(roomId, userId);
             MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
             msg.setUserName(username);
             imHelper.publishMessage(userId, roomId, msg);
             imHelper.quit(new String[]{userId}, roomId);
             log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
         }
-        userDao.deleteByUid(userId);
+        userDao.deleteUser(userId);
     }
 
     public void deleteWhiteboardByUser(String roomId, String userId) throws Exception {
-        List<Whiteboard> whiteboardList = whiteboardDao.findByRidAndCreator(roomId, userId);
+        List<Whiteboard> whiteboardList = whiteboardDao.queryWhiteboard(roomId, userId,null);
         if (!whiteboardList.isEmpty()) {
-            whiteboardDao.deleteByRidAndCreator(roomId, userId);
+            whiteboardDao.deleteWhiteboard(roomId, userId,null);
             for (Whiteboard wb : whiteboardList) {
                 whiteBoardHelper.destroy(wb.getWbRoom());
             }
@@ -517,10 +525,10 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
     public void destroyRoom(String roomId) {
-        whiteboardDao.deleteByRid(roomId);
-        Room room = roomDao.findByRid(roomId);
+        whiteboardDao.deleteWhiteboard(roomId,null,null);
+        Room room = roomDao.findOne(roomId);
         if (room == null) {
-            List<RoomMember> list = roomMemberDao.findByRid(roomId);
+            List<RoomMember> list = roomMemberDao.queryRoomMember(roomId,null,null);
             if (!list.isEmpty()) {
                 try {
                     imHelper.dismiss(list.get(0).getUid(), roomId);
@@ -529,7 +537,7 @@ public class RoomServiceImpl implements RoomService {
                     e.printStackTrace();
                 }
             }
-            roomMemberDao.deleteByRid(roomId);
+            roomMemberDao.deleteRoomMember(roomId,null);
             log.info("destroyRoom: {}", roomId);
         }
     }
@@ -541,7 +549,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(users.size() > 0, "the changed user list must't be null");
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         if (room == null) {
             throw new ApiException(ErrorEnum.ERR_ROOM_NOT_EXIST);
         }
@@ -555,12 +563,12 @@ public class RoomServiceImpl implements RoomService {
                 log.error("can not change self role: {}, {}, {}", roomId, userId, changedRole);
                 throw new ApiException(ErrorEnum.ERR_CHANGE_SELF_ROLE);
             } else {
-                RoomMember oldUser = roomMemberDao.findByRidAndUid(roomId, changedUserId);
+                RoomMember oldUser = roomMemberDao.findOne(roomId, changedUserId);
                 if (oldUser != null) {
                     if (changedRole.equals(RoleEnum.RoleAudience)) {
-                        int r = roomMemberDao.updateRoleByRidAndUid(roomId, changedUserId, changedRole.getValue());
+                        int r = roomMemberDao.updateByRidAndUid(roomId, changedUserId, changedRole.getValue());
                         RoleChangedMessage.ChangedUser u = new RoleChangedMessage.ChangedUser(changedUserId, changedRole.getValue());
-                        UserInfo userInfo = userDao.findByUid(changedUserId);
+                        UserInfo userInfo = userDao.findOne(changedUserId);
                         if (userInfo != null) {
                             u.setUserName(userInfo.getName());
                         }
@@ -594,7 +602,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(userId != null, "userId must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         log.info("kickMember: roomId={}, userId={}", roomId, userId);
-        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if(roomMember == null){
             return true;
         }
@@ -604,13 +612,13 @@ public class RoomServiceImpl implements RoomService {
 
         imHelper.publishMessage(userId, roomId, msg, 1);
 
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         if (roomMember.getRole() == RoleTeacher.getValue() && isUserDisplay(room, userId)) {
             updateDisplay(roomId, userId, "", 1);
         }
 
-        roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-        userDao.deleteByUid(userId);
+        roomMemberDao.deleteRoomMember(roomId, userId);
+        userDao.deleteUser(userId);
 
         IMApiResultInfo apiResultInfo = imHelper.quit(new String[]{userId}, roomId);
         if (!apiResultInfo.isSuccess()) {
@@ -630,7 +638,7 @@ public class RoomServiceImpl implements RoomService {
         DisplayEnum displayEnum = DisplayEnum.values()[type];
 
         if (displayEnum.equals(DisplayEnum.None)) {
-            roomDao.updateDisplayByRid(roomId, "");
+            roomDao.updateRoom(roomId, "",null,null);
             DisplayMessage displayMessage = new DisplayMessage("");
             IMApiResultInfo apiResultInfo = imHelper.publishMessage(userId, roomId, displayMessage);
             if (apiResultInfo.isSuccess()) {
@@ -642,36 +650,36 @@ public class RoomServiceImpl implements RoomService {
 
         String display = "display://type=" + type;
         if (displayEnum.equals(DisplayEnum.Teacher)) {
-            List<RoomMember> teachers = roomMemberDao.findByRidAndRole(roomId, RoleTeacher.getValue());
+            List<RoomMember> teachers = roomMemberDao.queryRoomMember(roomId,null, RoleTeacher.getValue());
             if (teachers.isEmpty()) {
                 throw new ApiException(ErrorEnum.ERR_TEACHER_NOT_EXIST_IN_ROOM);
             } else {
                 display += "?userId=" + teachers.get(0).getUid() + "?uri=";
-                roomDao.updateDisplayByRid(roomId, display);
+                roomDao.updateRoom(roomId, display,null,null);
                 DisplayMessage displayMessage = new DisplayMessage(display);
                 imHelper.publishMessage(userId, roomId, displayMessage);
                 log.info("change display to teacher: roomId={}, display={}", roomId, display);
             }
         } else if (displayEnum.equals(DisplayEnum.Assistant)) {
-            List<RoomMember> assistants = roomMemberDao.findByRidAndRole(roomId, RoleEnum.RoleAssistant.getValue());
+            List<RoomMember> assistants = roomMemberDao.queryRoomMember(roomId,null, RoleEnum.RoleAssistant.getValue());
             if (assistants.isEmpty()) {
                 throw new ApiException(ErrorEnum.ERR_ASSISTANT_NOT_EXIST_IN_ROOM);
             } else {
                 display += "?userId=" + assistants.get(0).getUid() + "?uri=";
-                roomDao.updateDisplayByRid(roomId, display);
+                roomDao.updateRoom(roomId, display,null,null);
                 DisplayMessage displayMessage = new DisplayMessage(display);
                 imHelper.publishMessage(userId, roomId, displayMessage);
                 log.info("change display to assistant: roomId={}, display={}", roomId, display);
             }
         } else if (displayEnum.equals(DisplayEnum.Screen)) {
             display += "?userId=" + userId + "?uri=";
-            roomDao.updateDisplayByRid(roomId, display);
+            roomDao.updateRoom(roomId, display,null,null);
             DisplayMessage displayMessage = new DisplayMessage(display);
             imHelper.publishMessage(userId, roomId, displayMessage);
             log.info("change display to screen: roomId={}, display={}", roomId, display);
         } else if (displayEnum.equals(DisplayEnum.STUDENT)) {
             display += "?userId=" + targetUserId + "?uri=" + uri;
-            roomDao.updateDisplayByRid(roomId, display);
+            roomDao.updateRoom(roomId, display,null,null);
             DisplayMessage displayMessage = new DisplayMessage(display);
             imHelper.publishMessage(userId, roomId, displayMessage);
             log.info("change display to screen: roomId={}, display={}", roomId, display);
@@ -679,7 +687,7 @@ public class RoomServiceImpl implements RoomService {
             display += "?userId=" + userId + "?uri=" + uri;
 //            CheckUtils.checkArgument(uri != null, "uri must't be null");
 //            CheckUtils.checkArgument(whiteboardDao.findByRidAndWbid(roomId, uri).size() > 0, "whiteboard not exist");
-            roomDao.updateDisplayByRid(roomId, display);
+            roomDao.updateRoom(roomId, display,null,null);
             DisplayMessage displayMessage = new DisplayMessage(display);
             imHelper.publishMessage(userId, roomId, displayMessage);
         }
@@ -701,10 +709,10 @@ public class RoomServiceImpl implements RoomService {
         if (resultInfo.isSuccess()) {
             String wbId = resultInfo.getData();
             Date date = DateTimeUtils.currentUTC();
-            Room room = roomDao.findByRid(roomId);
+            Room room = roomDao.findOne(roomId);
             int whiteboardNameIndex = room.getWhiteboardNameIndex() + 1;
             String name = "白板" + whiteboardNameIndex;
-            roomDao.updateWhiteboardNameIndexByRid(roomId, whiteboardNameIndex);
+            roomDao.updateRoom(roomId,null,null, whiteboardNameIndex);
             Whiteboard wb = new Whiteboard();
             wb.setRid(roomId);
             wb.setWbRoom(wbRoom);
@@ -713,13 +721,13 @@ public class RoomServiceImpl implements RoomService {
             wb.setCreator(userId);
             wb.setCreateDt(date);
             wb.setCurPg(0);
-            whiteboardDao.save(wb);
+            whiteboardDao.insert(wb);
             WhiteboardMessage wbmsg = new WhiteboardMessage(WhiteboardMessage.Create);
             wbmsg.setWhiteboardId(wbId);
             wbmsg.setWhiteboardName(name);
             imHelper.publishMessage(userId, roomId, wbmsg);
             String display = "display://type=2?userId=" + userId + "?uri=" + wbId;
-            roomDao.updateDisplayByRid(roomId, display);
+            roomDao.updateRoom(roomId, display,null,null);
             DisplayMessage displayMessage = new DisplayMessage(display);
             imHelper.publishMessage(userId, roomId, displayMessage, 1);
 
@@ -737,17 +745,17 @@ public class RoomServiceImpl implements RoomService {
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
-        List<Whiteboard> whiteboardList = whiteboardDao.findByRidAndWbid(roomId, whiteBoardId);
+        List<Whiteboard> whiteboardList = whiteboardDao.queryWhiteboard(roomId,null, whiteBoardId);
         CheckUtils.checkArgument(whiteboardList.size() > 0, "whiteboard not exist");
 
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         CheckUtils.checkArgument(room != null, "room not exist");
 
         log.info("deleteWhiteboard: room={}, whiteBoardId={}", room, whiteBoardId);
 
         String display = room.getDisplay();
         if (display.contains("uri=" + whiteBoardId)) {
-            int result = roomDao.updateDisplayByRid(roomId, "");
+            int result = roomDao.updateRoom(roomId, "",null,null);
             log.info("clear room display, room: {}, result: {}", roomId, result);
             DisplayMessage displayMessage = new DisplayMessage("");
             imHelper.publishMessage(userId, roomId, displayMessage, 1);
@@ -758,7 +766,7 @@ public class RoomServiceImpl implements RoomService {
         String wbRoom = whiteboardList.get(0).getWbRoom();
         WhiteBoardApiResultInfo resultInfo = whiteBoardHelper.destroy(wbRoom);
         if (resultInfo.isSuccess()) {
-            int result = whiteboardDao.deleteByWbid(whiteBoardId);
+            int result = whiteboardDao.deleteWhiteboard(null,null,whiteBoardId);
             log.info("delete whiteboard: roomId = {}, whiteBoardId = {}, result = {}", roomId, whiteBoardId, result);
             WhiteboardMessage wbmsg = new WhiteboardMessage(WhiteboardMessage.Delete);
             wbmsg.setWhiteboardId(whiteBoardId);
@@ -773,9 +781,12 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class)
     public List<RoomResult.WhiteboardResult> getWhiteboard(String roomId) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-        CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
+        Room room = roomDao.findOne(roomId);
+        if(room == null){
+            throw new BizException("房间信息不存在");
+        }
 
-        List<Whiteboard> whiteboards = whiteboardDao.findByRid(roomId);
+        List<Whiteboard> whiteboards = whiteboardDao.queryWhiteboard(roomId,null,null);
         List<RoomResult.WhiteboardResult> result = new ArrayList<>();
         for (Whiteboard wb : whiteboards) {
             RoomResult.WhiteboardResult r = new RoomResult.WhiteboardResult();
@@ -794,7 +805,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(whiteBoardId != null, "whiteBoardId must't be null");
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         CheckUtils.checkArgument(room != null, "room not exist");
 
         int result = whiteboardDao.updatePageByRidAndWbid(roomId, whiteBoardId, page);
@@ -832,14 +843,14 @@ public class RoomServiceImpl implements RoomService {
             enable = data.getMusicScoreOn();
             if(enable){
                 //保存伴奏音量
-                roomDao.updateSoundVolumeById(roomId,data.getSoundVolume());
+                roomDao.updateRoom(roomId,null,data.getSoundVolume(),null);
             }
         }else if (data.getAccompanimentOn() != null) {
             typeEnum = DeviceTypeEnum.MusicScoreAccompaniment;
             enable = data.getAccompanimentOn();
             if(enable){
                 //保存伴奏音量
-                roomDao.updateSoundVolumeById(roomId,data.getSoundVolume());
+                roomDao.updateRoom(roomId,null,data.getSoundVolume(),null);
             }
         } else {
             throw new ApiException(ErrorEnum.ERR_REQUEST_PARA_ERR);
@@ -901,12 +912,13 @@ public class RoomServiceImpl implements RoomService {
                 imHelper.publishMessage(authUser.getId().toString(), userId, roomId, msg);
             }
         } else {
+            RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
             if (typeEnum.equals(DeviceTypeEnum.Camera)) {
-                roomMemberDao.updateCameraByRidAndUid(roomId, userId, false);
+                roomMember.setCamera(false);
             } else if (typeEnum.equals(DeviceTypeEnum.Microphone)){
-                roomMemberDao.updateMicByRidAndUid(roomId, userId, false);
+                roomMember.setMic(false);
             } else if (typeEnum.equals(DeviceTypeEnum.HandUp)){
-                roomMemberDao.updateHandByRidAndUid(roomId, userId, false);
+                roomMember.setHand(false);
             } else if (typeEnum.equals(DeviceTypeEnum.ExamSong)){
                 long scheduleId = Long.parseLong(roomId.substring(1));
                 ExamSongDownloadData msg;
@@ -927,11 +939,12 @@ public class RoomServiceImpl implements RoomService {
                 //关闭所有曲目播放
                 courseScheduleStudentMusicScoreDao.closePlayStatus(scheduleId,Integer.parseInt(userId),null);
             }else {
-                roomMemberDao.updateMusicByRidAndUid(roomId, userId, false);
+                roomMember.setMusicMode(false);
             }
+            roomMemberDao.update(roomMember);
             DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(typeEnum.ordinal(), false);
             deviceResourceMessage.setUserId(userId);
-            UserInfo userInfo = userDao.findByUid(userId);
+            UserInfo userInfo = userDao.findOne(userId);
             if (userInfo != null) {
                 deviceResourceMessage.setUserName(userInfo.getName());
             }
@@ -959,7 +972,7 @@ public class RoomServiceImpl implements RoomService {
                 roomMembers.add(new RoomMember(split[i]));
             }
         }else {
-            roomMembers = roomMemberDao.findByRidAndRole(data.getRoomId(), RoleStudent.getValue());
+            roomMembers = roomMemberDao.queryRoomMember(data.getRoomId(),null, RoleStudent.getValue());
         }
         if(roomMembers.size() == 0){
             return false;
@@ -981,8 +994,9 @@ public class RoomServiceImpl implements RoomService {
         String userId = authUser.getId().toString();
         log.info("approveControlDevice: ticket={}", ticket);
         ControlDeviceTaskInfo taskInfo = (ControlDeviceTaskInfo) scheduleManager.executeTask(ticket);
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if (taskInfo.getTypeEnum().equals(DeviceTypeEnum.Camera)) {
-            roomMemberDao.updateCameraByRidAndUid(roomId, userId, taskInfo.isOnOff());
+            roomMember.setCamera(taskInfo.isOnOff());
         }else if (taskInfo.getTypeEnum().equals(DeviceTypeEnum.ExamSong)) {
             long scheduleId = Long.parseLong(roomId.substring(1));
             ExamSongDownloadData msg;
@@ -995,8 +1009,9 @@ public class RoomServiceImpl implements RoomService {
             }
             courseScheduleStudentPaymentDao.adjustExamSong(scheduleId,authUser.getId(),JSON.toJSONString(msg));
         }else {
-            roomMemberDao.updateMicByRidAndUid(roomId, userId, taskInfo.isOnOff());
+            roomMember.setMic(taskInfo.isOnOff());
         }
+        roomMemberDao.update(roomMember);
         ControlDeviceNotifyMessage msg = new ControlDeviceNotifyMessage(ActionEnum.Approve.ordinal());
         msg.setType(taskInfo.getTypeEnum().ordinal());
         msg.setOpUserId(userId);
@@ -1054,12 +1069,14 @@ public class RoomServiceImpl implements RoomService {
         String userId = authUser.getId().toString();
 
         DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(type.ordinal(), enable);
+
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if (type.equals(DeviceTypeEnum.Camera)) {
-            roomMemberDao.updateCameraByRidAndUid(roomId, userId, enable);
+            roomMember.setCamera(enable);
         } else if (type.equals(DeviceTypeEnum.Microphone)){
-            roomMemberDao.updateMicByRidAndUid(roomId, userId, enable);
+            roomMember.setMic(enable);
         } else if (type.equals(DeviceTypeEnum.HandUp)){
-            roomMemberDao.updateHandByRidAndUid(roomId, userId, enable);
+            roomMember.setHand(enable);
         } else if (type.equals(DeviceTypeEnum.ExamSong)){
             long scheduleId = Long.parseLong(roomId.substring(1));
             ExamSongDownloadData msg;
@@ -1072,9 +1089,10 @@ public class RoomServiceImpl implements RoomService {
             }
             courseScheduleStudentPaymentDao.adjustExamSong(scheduleId,authUser.getId(),JSON.toJSONString(msg));
         }else {
-            roomMemberDao.updateMusicByRidAndUid(roomId, userId, enable);
+            roomMember.setMusicMode(enable);
         }
-        Room room = roomDao.findByRid(roomId);
+        roomMemberDao.update(roomMember);
+        Room room = roomDao.findOne(roomId);
         deviceResourceMessage.setSoundVolume(room.getSoundVolume());
         deviceResourceMessage.setUserId(userId);
         imHelper.publishMessage(userId, roomId, deviceResourceMessage, 1);
@@ -1086,7 +1104,7 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class)
     public List<RoomResult.MemberResult> getMembers(String roomId) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-        List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
+        List<RoomMember> roomMemberList = roomMemberDao.queryRoomMember(roomId,null,null);
         if(roomMemberList != null && roomMemberList.size() > 0){
             List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores = courseScheduleStudentMusicScoreDao.queryByScoreIdAndCourseId(null, Long.parseLong(roomId.substring(1)), null, null, null);
             RoomResult roomResult = new RoomResult();
@@ -1103,10 +1121,13 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean applySpeech(String roomId) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-        CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
+        Room room = roomDao.findOne(roomId);
+        if(room == null){
+            throw new BizException("房间信息不存在");
+        }
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
-        List<RoomMember> assistants = roomMemberDao.findByRidAndRole(roomId, RoleEnum.RoleAssistant.getValue());
+        List<RoomMember> assistants = roomMemberDao.queryRoomMember(roomId,null, RoleEnum.RoleAssistant.getValue());
         if (assistants.isEmpty()) {
             throw new ApiException(ErrorEnum.ERR_ASSISTANT_NOT_EXIST_IN_ROOM);
         }
@@ -1138,11 +1159,14 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean approveSpeech(String roomId, String ticket) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-        CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
+        Room room = roomDao.findOne(roomId);
+        if(room == null){
+            throw new BizException("房间信息不存在");
+        }
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
-        int count = roomMemberDao.countByRidAndExcludeRole(roomId, RoleEnum.RoleAudience.getValue());
+        int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
         if (count == roomProperties.getMaxCount()) {
             log.error("approveSpeech error: roomId = {}, ticket={}", roomId, ticket);
             throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
@@ -1150,10 +1174,10 @@ public class RoomServiceImpl implements RoomService {
 
         ScheduledTaskInfo taskInfo = scheduleManager.executeTask(ticket);
         log.info("approveSpeech: task = {}", taskInfo);
-        roomMemberDao.updateRoleByRidAndUid(roomId, taskInfo.getApplyUserId(), RoleStudent.getValue());
+        roomMemberDao.updateByRidAndUid(roomId, taskInfo.getApplyUserId(), RoleStudent.getValue());
 
         SpeechResultMessage msg = new SpeechResultMessage(SpeechResultMessage.Action_Approve);
-        UserInfo userInfo = userDao.findByUid(taskInfo.getApplyUserId());
+        UserInfo userInfo = userDao.findOne(taskInfo.getApplyUserId());
         msg.setOpUserId(userId);
         msg.setOpUserName(authUser.getUsername());
         msg.setReqUserId(taskInfo.getApplyUserId());
@@ -1183,7 +1207,10 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(rollbackFor = Exception.class)
     public Boolean rejectSpeech(String roomId, String ticket) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-        CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
+        Room room = roomDao.findOne(roomId);
+        if(room == null){
+            throw new BizException("房间信息不存在");
+        }
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         ScheduledTaskInfo taskInfo = scheduleManager.executeTask(ticket);
@@ -1203,7 +1230,7 @@ public class RoomServiceImpl implements RoomService {
 
     public void checkOverMax(String roomId, RoomMember targetUser, int targetRole) {
         if (RoleEnum.getEnumByValue(targetUser.getRole()).equals(RoleEnum.RoleAudience)) {
-            int count = roomMemberDao.countByRidAndExcludeRole(roomId, RoleEnum.RoleAudience.getValue());
+            int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
             if (count == roomProperties.getMaxCount()) {
                 log.error("assign error: roomId = {}, userId = {}, role = {}", roomId, targetUser.getRid(), targetUser.getRole());
                 throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
@@ -1221,13 +1248,13 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(!userId.equals(userId), "can't set self role");
 
         log.info("transfer: roomId = {}, userId = {}", roomId, userId);
-        RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
         if (roomMember == null) {
             log.error("assistant transfer error: {} toUser = {}, opUser={}", roomId, userId, userId);
             throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
         }
 
-        Room room = roomDao.findByRid(roomId);
+        Room room = roomDao.findOne(roomId);
         if (room == null) {
             log.error("assistant transfer error: {} toUser = {}, opUser={}", roomId, userId, userId);
             throw new ApiException(ErrorEnum.ERR_ROOM_NOT_EXIST);
@@ -1239,8 +1266,8 @@ public class RoomServiceImpl implements RoomService {
             log.info("don't update display: room={}", room);
         }
 
-        roomMemberDao.updateRoleByRidAndUid(roomId, userId, RoleStudent.getValue());
-        roomMemberDao.updateRoleByRidAndUid(roomId, userId, RoleEnum.RoleAssistant.getValue());
+//        roomMemberDao.updateRoleByRidAndUid(roomId, userId, RoleStudent.getValue());
+//        roomMemberDao.updateRoleByRidAndUid(roomId, userId, RoleEnum.RoleAssistant.getValue());
 
         AssistantTransferMessage msg = new AssistantTransferMessage();
         msg.setOpUserId(userId);
@@ -1258,12 +1285,15 @@ public class RoomServiceImpl implements RoomService {
     public Boolean inviteUpgradeRole(String roomId, String targetUserId, int targetRole) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(targetUserId != null, "userId must't be null");
-        CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
+        RoomMember roomMember = roomMemberDao.findOne(roomId, targetUserId);
+        if(roomMember == null){
+            throw new BizException("用户不在房间");
+        }
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
         log.info("inviteUpgradeRole roomId = {}, targetUserId = {}, targetRole = {}", roomId, targetUserId, targetRole);
 
-        RoomMember targetUser = roomMemberDao.findByRidAndUid(roomId, targetUserId);
+        RoomMember targetUser = roomMemberDao.findOne(roomId, targetUserId);
         if (targetUser == null) {
             throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
         }