Explorar el Código

Merge branch 'im_update' of http://git.dayaedu.com/yonge/mec

zouxuan hace 3 años
padre
commit
958ba067c2
Se han modificado 31 ficheros con 1275 adiciones y 517 borrados
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/HereWhiteDao.java
  2. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RoomDao.java
  3. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RoomMemberDao.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/UserDao.java
  5. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/WhiteboardDao.java
  6. 136 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/HereWhite.java
  7. 99 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Room.java
  8. 145 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/RoomMember.java
  9. 65 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/UserInfo.java
  10. 96 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Whiteboard.java
  11. 92 0
      mec-biz/src/main/resources/config/mybatis/HereWhiteMapper.xml
  12. 94 0
      mec-biz/src/main/resources/config/mybatis/RoomMapper.xml
  13. 118 0
      mec-biz/src/main/resources/config/mybatis/RoomMemberMapper.xml
  14. 70 0
      mec-biz/src/main/resources/config/mybatis/UserMapper.xml
  15. 110 0
      mec-biz/src/main/resources/config/mybatis/WhiteboardMapper.xml
  16. 0 4
      mec-im/pom.xml
  17. 0 11
      mec-im/src/main/java/com/ym/dao/HereWhiteDao.java
  18. 0 40
      mec-im/src/main/java/com/ym/dao/RoomDao.java
  19. 0 61
      mec-im/src/main/java/com/ym/dao/RoomMemberDao.java
  20. 0 21
      mec-im/src/main/java/com/ym/dao/UserDao.java
  21. 0 35
      mec-im/src/main/java/com/ym/dao/WhiteboardDao.java
  22. 2 2
      mec-im/src/main/java/com/ym/job/ScheduleManager.java
  23. 0 48
      mec-im/src/main/java/com/ym/pojo/HereWhite.java
  24. 0 42
      mec-im/src/main/java/com/ym/pojo/Room.java
  25. 0 59
      mec-im/src/main/java/com/ym/pojo/RoomMember.java
  26. 2 0
      mec-im/src/main/java/com/ym/pojo/RoomResult.java
  27. 0 21
      mec-im/src/main/java/com/ym/pojo/UserInfo.java
  28. 0 30
      mec-im/src/main/java/com/ym/pojo/Whiteboard.java
  29. 2 3
      mec-im/src/main/java/com/ym/service/HereWhiteService.java
  30. 4 5
      mec-im/src/main/java/com/ym/service/Impl/HereWhiteServiceImpl.java
  31. 163 135
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.HereWhite;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface HereWhiteDao extends BaseDAO<Integer, HereWhite> {
+
+    HereWhite findByCourseScheduleId(Integer courseScheduleId);
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/RoomDao.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dao;
+
+
+import com.ym.mec.biz.dal.entity.Room;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+public interface RoomDao extends BaseDAO<Long,Room> {
+    Room findOne(String roomId);
+
+    Room getLock(String roomId);
+
+    int deleteRoom(String roomId);
+
+    int updateRoom(@Param("roomId") String roomId,
+                   @Param("display") String display,
+                   @Param("soundVolume") Integer soundVolume,
+                   @Param("whiteboardNameIndex") Integer whiteboardNameIndex);
+
+}

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

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.dal.dao;
+
+
+import com.ym.mec.biz.dal.entity.RoomMember;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface RoomMemberDao extends BaseDAO<Integer, RoomMember> {
+    List<RoomMember> queryRoomMember(@Param("roomId") String roomId,
+                                     @Param("userId") String userId,
+                                     @Param("role") Integer role);
+
+    RoomMember findOne(@Param("roomId") String roomId, @Param("userId") String userId);
+
+    int countRoomMember(@Param("roomId") String roomId);
+
+    int deleteRoomMember(@Param("roomId") String roomId, @Param("userId") String userId);
+
+    int updateByRidAndUid(@Param("roomId") String roomId, @Param("userId") String userId, @Param("role") Integer role);
+}

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

@@ -0,0 +1,11 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.UserInfo;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface UserDao extends BaseDAO<Integer,UserInfo> {
+
+    UserInfo findOne(String userId);
+
+    int deleteUser(String userId);
+}

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/WhiteboardDao.java

@@ -0,0 +1,15 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.Whiteboard;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface WhiteboardDao extends BaseDAO<Integer,Whiteboard> {
+    List<Whiteboard> queryWhiteboard(@Param("roomId") String roomId, @Param("creator") String creator, @Param("wbid") String wbid);
+
+    int deleteWhiteboard(@Param("roomId") String roomId, @Param("creator") String creator, @Param("wbid") String wbid);
+
+    int updatePageByRidAndWbid(@Param("roomId") String roomId, @Param("wbid") String wbid, @Param("page") Integer page);
+}

+ 136 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/HereWhite.java

@@ -0,0 +1,136 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class HereWhite implements Serializable {
+    private Integer id;
+
+    private int courseScheduleId;
+
+    private String name;
+
+    private int limit;
+
+    private int teamId;
+
+    private int adminId;
+
+    private String mode;
+
+    private String template;
+
+    private String region;
+
+    private String uuid;
+
+    private String roomToken;
+
+    private Date updatedAt;
+
+    private Date createdAt;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public int getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(int courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getLimit() {
+        return limit;
+    }
+
+    public void setLimit(int limit) {
+        this.limit = limit;
+    }
+
+    public int getTeamId() {
+        return teamId;
+    }
+
+    public void setTeamId(int teamId) {
+        this.teamId = teamId;
+    }
+
+    public int getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(int adminId) {
+        this.adminId = adminId;
+    }
+
+    public String getMode() {
+        return mode;
+    }
+
+    public void setMode(String mode) {
+        this.mode = mode;
+    }
+
+    public String getTemplate() {
+        return template;
+    }
+
+    public void setTemplate(String template) {
+        this.template = template;
+    }
+
+    public String getRegion() {
+        return region;
+    }
+
+    public void setRegion(String region) {
+        this.region = region;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public String getRoomToken() {
+        return roomToken;
+    }
+
+    public void setRoomToken(String roomToken) {
+        this.roomToken = roomToken;
+    }
+
+    public Date getUpdatedAt() {
+        return updatedAt;
+    }
+
+    public void setUpdatedAt(Date updatedAt) {
+        this.updatedAt = updatedAt;
+    }
+
+    public Date getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(Date createdAt) {
+        this.createdAt = createdAt;
+    }
+}

+ 99 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Room.java

@@ -0,0 +1,99 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Room implements Serializable {
+    private long id;
+
+    private String rid;
+
+    private String name;
+
+    private String portrait;
+
+    private Date createDt;
+
+    private String display;
+
+    private int whiteboardNameIndex;
+
+    private int soundVolume = 100;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getRid() {
+        return rid;
+    }
+
+    public void setRid(String rid) {
+        this.rid = rid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPortrait() {
+        return portrait;
+    }
+
+    public void setPortrait(String portrait) {
+        this.portrait = portrait;
+    }
+
+    public Date getCreateDt() {
+        return createDt;
+    }
+
+    public void setCreateDt(Date createDt) {
+        this.createDt = createDt;
+    }
+
+    public String getDisplay() {
+        return display;
+    }
+
+    public void setDisplay(String display) {
+        this.display = display;
+    }
+
+    public int getWhiteboardNameIndex() {
+        return whiteboardNameIndex;
+    }
+
+    public void setWhiteboardNameIndex(int whiteboardNameIndex) {
+        this.whiteboardNameIndex = whiteboardNameIndex;
+    }
+
+    public int getSoundVolume() {
+        return soundVolume;
+    }
+
+    public void setSoundVolume(int soundVolume) {
+        this.soundVolume = soundVolume;
+    }
+
+    @Override
+    public String toString() {
+        return "Room{" +
+                "rid='" + rid + '\'' +
+                ", name='" + name + '\'' +
+                ", portrait='" + portrait + '\'' +
+                ", createDt=" + createDt +
+                ", display='" + display + '\'' +
+                ", soundVolume='" + soundVolume + '\'' +
+                ", whiteboardNameIndex='" + whiteboardNameIndex + '\'' +
+                '}';
+    }
+}

+ 145 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/RoomMember.java

@@ -0,0 +1,145 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.util.Date;
+
+public class RoomMember {
+    private long id;
+
+    private String uid;
+
+    private String rid;
+
+    private String headUrl;
+
+    private int role;
+
+    private Date joinDt;
+
+    private String name;
+
+    private boolean camera = true;
+
+    private boolean musicMode = true;
+
+    private boolean mic = true;
+
+    private boolean hand = false;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public String getRid() {
+        return rid;
+    }
+
+    public void setRid(String rid) {
+        this.rid = rid;
+    }
+
+    public String getHeadUrl() {
+        return headUrl;
+    }
+
+    public void setHeadUrl(String headUrl) {
+        this.headUrl = headUrl;
+    }
+
+    public int getRole() {
+        return role;
+    }
+
+    public void setRole(int role) {
+        this.role = role;
+    }
+
+    public Date getJoinDt() {
+        return joinDt;
+    }
+
+    public void setJoinDt(Date joinDt) {
+        this.joinDt = joinDt;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public boolean isCamera() {
+        return camera;
+    }
+
+    public void setCamera(boolean camera) {
+        this.camera = camera;
+    }
+
+    public boolean isMusicMode() {
+        return musicMode;
+    }
+
+    public void setMusicMode(boolean musicMode) {
+        this.musicMode = musicMode;
+    }
+
+    public boolean isMic() {
+        return mic;
+    }
+
+    public void setMic(boolean mic) {
+        this.mic = mic;
+    }
+
+    public boolean isHand() {
+        return hand;
+    }
+
+    public void setHand(boolean hand) {
+        this.hand = hand;
+    }
+
+    public RoomMember() {
+    }
+
+    public RoomMember(String uid, String rid) {
+        this.uid = uid;
+        this.rid = rid;
+    }
+
+    public RoomMember(String uid) {
+        this.uid = uid;
+    }
+
+    @Override
+    public String toString() {
+        return "RoomMember{" +
+                "uid='" + uid + '\'' +
+                ", rid='" + rid + '\'' +
+                ", role=" + role +
+                ", joinDt=" + joinDt +
+                ", name='" + name + '\'' +
+                ", camera=" + camera +
+                ", musicMode=" + musicMode +
+                ", mic=" + mic +
+                '}';
+    }
+//
+//    @ManyToOne(fetch = FetchType.LAZY)
+//    @JoinColumn(name = "room_id", referencedColumnName = "rid")
+//    private Room room;
+}

+ 65 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/UserInfo.java

@@ -0,0 +1,65 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.util.Date;
+
+public class UserInfo {
+    private Long id;
+
+    private String uid;
+
+    private String name;
+
+    private String portrait;
+
+    private Date createDt;
+
+    private Date updateDt;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPortrait() {
+        return portrait;
+    }
+
+    public void setPortrait(String portrait) {
+        this.portrait = portrait;
+    }
+
+    public Date getCreateDt() {
+        return createDt;
+    }
+
+    public void setCreateDt(Date createDt) {
+        this.createDt = createDt;
+    }
+
+    public Date getUpdateDt() {
+        return updateDt;
+    }
+
+    public void setUpdateDt(Date updateDt) {
+        this.updateDt = updateDt;
+    }
+}

+ 96 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Whiteboard.java

@@ -0,0 +1,96 @@
+package com.ym.mec.biz.dal.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Whiteboard implements Serializable {
+    private long id;
+
+    private String rid;
+
+    private String wbid;
+
+    private String wbRoom;
+
+    private String name;
+
+    private String creator;
+
+    private Date createDt;
+
+    private int pgCount;
+
+    private int curPg;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getRid() {
+        return rid;
+    }
+
+    public void setRid(String rid) {
+        this.rid = rid;
+    }
+
+    public String getWbid() {
+        return wbid;
+    }
+
+    public void setWbid(String wbid) {
+        this.wbid = wbid;
+    }
+
+    public String getWbRoom() {
+        return wbRoom;
+    }
+
+    public void setWbRoom(String wbRoom) {
+        this.wbRoom = wbRoom;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public Date getCreateDt() {
+        return createDt;
+    }
+
+    public void setCreateDt(Date createDt) {
+        this.createDt = createDt;
+    }
+
+    public int getPgCount() {
+        return pgCount;
+    }
+
+    public void setPgCount(int pgCount) {
+        this.pgCount = pgCount;
+    }
+
+    public int getCurPg() {
+        return curPg;
+    }
+
+    public void setCurPg(int curPg) {
+        this.curPg = curPg;
+    }
+}

+ 92 - 0
mec-biz/src/main/resources/config/mybatis/HereWhiteMapper.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.HereWhiteDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.HereWhite" id="HereWhite">
+		<result column="id_" property="id" />
+		<result column="course_schedule_id_" property="courseScheduleId" />
+		<result column="name_" property="name" />
+		<result column="limit_" property="limit" />
+		<result column="team_id_" property="teamId" />
+		<result column="admin_id_" property="adminId" />
+		<result column="mode_" property="mode" />
+		<result column="template_" property="template" />
+		<result column="region_" property="region" />
+		<result column="room_token_" property="roomToken" />
+		<result column="uuid_" property="uuid" />
+		<result column="updated_at_" property="updatedAt" />
+		<result column="created_at_" property="createdAt" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="HereWhite" >
+		SELECT * FROM rongyun_here_white WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="HereWhite">
+		SELECT * FROM rongyun_here_white ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.HereWhite" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO rongyun_here_white (id_,course_schedule_id_,name_,limit_,team_id_,admin_id_,mode_,template_,region_,room_token_,uuid_,updated_at_,created_at_)
+		VALUES(#{id},#{courseScheduleId},#{name},#{limit},#{teamId},#{adminId},#{mode},#{template},#{region},#{roomToken},#{uuid},#{updatedAt},#{createdAt})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.HereWhite">
+		UPDATE rongyun_here_white <set>
+		<if test="limit != null">
+		limit_ = #{limit},
+		</if>
+		<if test="uuid != null">
+		uuid_ = #{uuid},
+		</if>
+		<if test="adminId != null">
+		admin_id_ = #{adminId},
+		</if>
+		<if test="roomToken != null">
+		room_token_ = #{roomToken},
+		</if>
+		<if test="updatedAt != null">
+		updated_at_ = #{updatedAt},
+		</if>
+		<if test="name != null">
+		name_ = #{name},
+		</if>
+		<if test="mode != null">
+		mode_ = #{mode},
+		</if>
+		<if test="teamId != null">
+		team_id_ = #{teamId},
+		</if>
+		<if test="courseScheduleId != null">
+		course_schedule_id_ = #{courseScheduleId},
+		</if>
+		<if test="region != null">
+		region_ = #{region},
+		</if>
+		<if test="template != null">
+		template_ = #{template},
+		</if>
+		</set> WHERE id_ = #{id}
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM rongyun_here_white WHERE id_ = #{id} 
+	</delete>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM rongyun_here_white
+	</select>
+	<select id="findByCourseScheduleId" resultMap="HereWhite">
+		SELECT * FROM rongyun_here_white WHERE course_schedule_id_ = #{courseScheduleId}
+	</select>
+</mapper>

+ 94 - 0
mec-biz/src/main/resources/config/mybatis/RoomMapper.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.RoomDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.Room" id="Room">
+		<result column="id" property="id" />
+		<result column="rid" property="rid" />
+		<result column="name" property="name" />
+		<result column="portrait" property="portrait" />
+		<result column="create_dt" property="createDt" />
+		<result column="display" property="display" />
+		<result column="whiteboard_name_index" property="whiteboardNameIndex" />
+		<result column="sound_volume" property="soundVolume" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="Room" >
+		SELECT * FROM rongyun_room WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="Room">
+		SELECT * FROM rongyun_room ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Room" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO rongyun_room (id,rid,name,portrait,create_dt,display,whiteboard_name_index,sound_volume)
+		VALUES(#{id},#{rid},#{name},#{portrait},#{createDt},#{display},#{whiteboardNameIndex},#{soundVolume})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.Room">
+		UPDATE rongyun_room <set>
+		<if test="whiteboardNameIndex != null">
+		whiteboard_name_index = #{whiteboardNameIndex},
+		</if>
+		<if test="soundVolume != null">
+		sound_volume = #{soundVolume},
+		</if>
+		<if test="display != null">
+		display = #{display},
+		</if>
+		<if test="name != null">
+		name = #{name},
+		</if>
+		<if test="rid != null">
+		rid = #{rid},
+		</if>
+		<if test="portrait != null">
+		portrait = #{portrait},
+		</if>
+		</set> WHERE id = #{id}
+	</update>
+	<update id="updateRoom">
+		UPDATE rongyun_room
+		<set>
+			<if test="display">
+				display = #{display}
+			</if>
+			<if test="soundVolume">
+				sound_volume = #{soundVolume}
+			</if>
+			<if test="whiteboardNameIndex">
+				whiteboard_name_index = #{whiteboardNameIndex}
+			</if>
+		</set>
+		WHERE rid = #{roomId}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM rongyun_room WHERE id = #{roomId}
+	</delete>
+	<delete id="deleteRoom">
+		DELETE FROM rongyun_room WHERE rid = #{roomId}
+	</delete>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM rongyun_room
+	</select>
+
+	<select id="findOne" resultMap="Room">
+		SELECT * FROM rongyun_room WHERE rid = #{roomId}
+	</select>
+	<select id="getLock" resultMap="Room">
+		SELECT * FROM rongyun_room WHERE rid = #{roomId} FOR UPDATE
+	</select>
+</mapper>

+ 118 - 0
mec-biz/src/main/resources/config/mybatis/RoomMemberMapper.xml

@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.RoomMemberDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.RoomMember" id="RoomMember">
+		<result column="id" property="id" />
+		<result column="rid" property="rid" />
+		<result column="uid" property="uid" />
+		<result column="join_dt" property="joinDt" />
+		<result column="role" property="role" />
+		<result column="head_url" property="headUrl" />
+		<result column="name" property="name" />
+		<result column="camera" property="camera" />
+		<result column="mic" property="mic" />
+		<result column="music_mode" property="musicMode" />
+		<result column="hand" property="hand" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="RoomMember" >
+		SELECT * FROM rongyun_room_member WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="RoomMember">
+		SELECT * FROM rongyun_room_member ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.RoomMember" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO rongyun_room_member (id,rid,uid,join_dt,role,head_url,name,camera,mic,music_mode,play_midi_json,hand)
+		VALUES(#{id},#{rid},#{uid},#{joinDt},#{role},#{headUrl},#{name},#{camera},#{mic},#{musicMode},#{playMidiJson},#{hand})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.RoomMember">
+		UPDATE rongyun_room_member <set>
+		<if test="uid != null">
+		uid = #{uid},
+		</if>
+		<if test="musicMode != null">
+		music_mode = #{musicMode},
+		</if>
+		<if test="role != null">
+		role = #{role},
+		</if>
+		<if test="headUrl != null">
+		head_url = #{headUrl},
+		</if>
+		<if test="playMidiJson != null">
+		play_midi_json = #{playMidiJson},
+		</if>
+		<if test="mic != null">
+		mic = #{mic},
+		</if>
+		<if test="name != null">
+		name = #{name},
+		</if>
+		<if test="rid != null">
+		rid = #{rid},
+		</if>
+		<if test="joinDt != null">
+		join_dt = #{joinDt},
+		</if>
+		<if test="camera != null">
+		camera = #{camera},
+		</if>
+		<if test="hand != null">
+		hand = #{hand},
+		</if>
+		</set> WHERE id = #{id}
+	</update>
+	<update id="updateByRidAndUid">
+		UPDATE rongyun_room_member SET role = #{role}
+		WHERE rid = #{roomId} AND uid = #{userId}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM rongyun_room_member WHERE id = #{id}
+	</delete>
+	<delete id="deleteRoomMember">
+		DELETE FROM rongyun_room_member
+		WHERE rid = #{roomId}
+		<if test="userId != null">
+			AND uid = #{userId}
+		</if>
+	</delete>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM rongyun_room_member
+	</select>
+	<select id="queryRoomMember" resultMap="RoomMember">
+		SELECT * FROM rongyun_room_member
+		WHERE rid = #{roomId}
+		<if test="role != null">
+			AND role = #{role}
+		</if>
+		<if test="userId != null">
+			AND uid = #{userId}
+		</if>
+	</select>
+	<select id="findOne" resultMap="RoomMember">
+		SELECT * FROM rongyun_room_member WHERE rid = #{roomId}
+		<if test="userId != null">
+			AND uid = #{userId}
+		</if>
+		LIMIT 1
+	</select>
+	<select id="countRoomMember" resultType="java.lang.Integer">
+		SELECT COUNT(id) FROM rongyun_room_member WHERE rid = #{roomId}
+	</select>
+</mapper>

+ 70 - 0
mec-biz/src/main/resources/config/mybatis/UserMapper.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.UserDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.UserInfo" id="UserInfo">
+		<result column="id" property="id" />
+		<result column="uid" property="uid" />
+		<result column="name" property="name" />
+		<result column="portrait" property="portrait" />
+		<result column="create_dt" property="createDt" />
+		<result column="update_dt" property="updateDt" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="UserInfo" >
+		SELECT * FROM rongyun_user WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="UserInfo">
+		SELECT * FROM rongyun_user ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.UserInfo" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO rongyun_user (id,uid,name,portrait,create_dt,update_dt)
+		VALUES(#{id},#{uid},#{name},#{portrait},#{createDt},#{updateDt})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.UserInfo">
+		UPDATE rongyun_user <set>
+		<if test="uid != null">
+		uid = #{uid},
+		</if>
+		<if test="updateDt != null">
+		update_dt = #{updateDt},
+		</if>
+		<if test="name != null">
+		name = #{name},
+		</if>
+		<if test="createDt != null">
+		create_dt = #{createDt},
+		</if>
+		<if test="portrait != null">
+		portrait = #{portrait},
+		</if>
+		</set> WHERE id = #{id}
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM rongyun_user WHERE id = #{id} 
+	</delete>
+	<delete id="deleteUser">
+		DELETE FROM rongyun_user WHERE uid = #{userId}
+	</delete>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM rongyun_user
+	</select>
+	<select id="findOne" resultMap="UserInfo">
+		SELECT * FROM rongyun_user WHERE uid = #{userId}
+	</select>
+</mapper>

+ 110 - 0
mec-biz/src/main/resources/config/mybatis/WhiteboardMapper.xml

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.WhiteboardDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.Whiteboard" id="Whiteboard">
+		<result column="id" property="id" />
+		<result column="rid" property="rid" />
+		<result column="wb_room" property="wbRoom" />
+		<result column="wbid" property="wbid" />
+		<result column="name" property="name" />
+		<result column="creator" property="creator" />
+		<result column="pg_count" property="pgCount" />
+		<result column="cur_pg" property="curPg" />
+		<result column="create_dt" property="createDt" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="Whiteboard" >
+		SELECT * FROM rongyun_whiteboard WHERE id = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="Whiteboard">
+		SELECT * FROM rongyun_whiteboard ORDER BY id
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Whiteboard" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO rongyun_whiteboard (id,rid,wb_room,wbid,name,creator,pg_count,cur_pg,create_dt)
+		VALUES(#{id},#{rid},#{wbRoom},#{wbid},#{name},#{creator},#{pgCount},#{curPg},#{createDt})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.Whiteboard">
+		UPDATE rongyun_whiteboard <set>
+		<if test="wbid != null">
+		wbid = #{wbid},
+		</if>
+		<if test="creator != null">
+		creator = #{creator},
+		</if>
+		<if test="curPg != null">
+		cur_pg = #{curPg},
+		</if>
+		<if test="name != null">
+		name = #{name},
+		</if>
+		<if test="createDt != null">
+		create_dt = #{createDt},
+		</if>
+		<if test="id != null">
+		id = #{id},
+		</if>
+		<if test="rid != null">
+		rid = #{rid},
+		</if>
+		<if test="pgCount != null">
+		pg_count = #{pgCount},
+		</if>
+		<if test="wbRoom != null">
+		wb_room = #{wbRoom},
+		</if>
+		</set> WHERE id = #{id}
+	</update>
+	<update id="updatePageByRidAndWbid">
+		UPDATE rongyun_whiteboard SET cur_pg = #{page} WHERE rid = #{roomId} AND wbid = #{whiteBoardId}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM rongyun_whiteboard WHERE id = #{id} 
+	</delete>
+	<delete id="deleteWhiteboard">
+		DELETE FROM rongyun_whiteboard
+		<where>
+			<if test="roomId != null">
+				rid = #{roomId},
+			</if>
+			<if test="wbid != null">
+				wbid = #{wbid},
+			</if>
+			<if test="creator != null">
+				creator = #{creator},
+			</if>
+		</where>
+	</delete>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM rongyun_whiteboard
+	</select>
+	<select id="queryWhiteboard" resultMap="Whiteboard">
+		SELECT * FROM rongyun_whiteboard
+		<where>
+			<if test="roomId != null">
+				rid = #{roomId},
+			</if>
+			<if test="wbid != null">
+				wbid = #{wbid},
+			</if>
+			<if test="creator != null">
+				creator = #{creator},
+			</if>
+		</where>
+	</select>
+</mapper>

+ 0 - 4
mec-im/pom.xml

@@ -27,10 +27,6 @@
 		</dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-data-jpa</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
     </dependency>
 

+ 0 - 11
mec-im/src/main/java/com/ym/dao/HereWhiteDao.java

@@ -1,11 +0,0 @@
-package com.ym.dao;
-
-import com.ym.pojo.HereWhite;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface HereWhiteDao extends JpaRepository<HereWhite, Long> {
-
-    HereWhite findByCourseScheduleId(Integer id);
-}

+ 0 - 40
mec-im/src/main/java/com/ym/dao/RoomDao.java

@@ -1,40 +0,0 @@
-package com.ym.dao;
-
-import com.ym.pojo.Room;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.persistence.LockModeType;
-import java.util.List;
-
-/**
- * Created by weiqinxiao on 2019/2/25.
- */
-@Repository
-public interface RoomDao extends JpaRepository<Room, Long> {
-    Room findByRid(String rid);
-
-    @Query(value = "select * from rongyun_room where rid=?1 FOR UPDATE", nativeQuery = true)
-    Room findByLockRid(String rid);
-
-    @Modifying
-    int deleteByRid(String rid);
-
-    boolean existsByRid(String rid);
-
-    @Modifying
-    @Query(value = "update rongyun_room set display=?2 where rid=?1", nativeQuery = true)
-    int updateDisplayByRid(String rid, String display);
-
-    @Modifying
-    @Query(value = "update rongyun_room set sound_volume=?2 where rid=?1", nativeQuery = true)
-    int updateSoundVolumeById(String rid, Integer soundVolume);
-
-    @Modifying
-    @Query(value = "update rongyun_room set whiteboard_name_index=?2 where rid=?1", nativeQuery = true)
-    int updateWhiteboardNameIndexByRid(String rid, int whiteboardNameIndex);
-}

+ 0 - 61
mec-im/src/main/java/com/ym/dao/RoomMemberDao.java

@@ -1,61 +0,0 @@
-package com.ym.dao;
-
-import com.ym.pojo.RoomMember;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-import javax.persistence.LockModeType;
-import java.util.List;
-
-/**
- * Created by weiqinxiao on 2019/2/25.
- */
-@Repository
-public interface RoomMemberDao extends JpaRepository<RoomMember, Long> {
-    List<RoomMember> findByRid(String rid);
-
-    @Lock(value = LockModeType.PESSIMISTIC_WRITE)
-    RoomMember findByRidAndUid(String rid, String uid);
-
-    List<RoomMember> findByRidAndRole(String rid, int role);
-
-    List<RoomMember> findByUid(String uid);
-
-    @Modifying
-    int deleteByRid(String roomId);
-
-    @Query(value = "select count(*) from rongyun_room_member where rid=?1", nativeQuery = true)
-    int countByRid(String roomId);
-
-    @Query(value = "select count(*) from rongyun_room_member where rid=?1 and role!=?2", nativeQuery = true)
-    int countByRidAndExcludeRole(String roomId, int excludeRole);
-
-    @Modifying
-    @Query(value = "delete from rongyun_room_member where rid=?1 and uid=?2", nativeQuery = true)
-    int deleteUserByRidAndUid(String rid, String uid);
-
-    @Modifying
-    @Query(value = "update rongyun_room_member set role=?3 where rid=?1 and uid=?2", nativeQuery = true)
-    int updateRoleByRidAndUid(String rid, String uid, int role);
-
-    @Modifying
-    @Query(value = "update rongyun_room_member set camera=?3 where rid=?1 and uid=?2", nativeQuery = true)
-    int updateCameraByRidAndUid(String rid, String uid, boolean camera);
-
-    @Modifying
-    @Query(value = "update rongyun_room_member set mic=?3 where rid=?1 and uid=?2", nativeQuery = true)
-    int updateMicByRidAndUid(String rid, String uid, boolean mic);
-
-    @Modifying
-    @Query(value = "update rongyun_room_member set hand=?3 where rid=?1 and uid=?2", nativeQuery = true)
-    int updateHandByRidAndUid(String rid, String uid, boolean hand);
-
-    @Modifying
-    @Query(value = "update rongyun_room_member set music_mode=?3 where rid=?1 and uid=?2", nativeQuery = true)
-    int updateMusicByRidAndUid(String rid, String uid, boolean musicMode);
-
-    boolean existsByRidAndUid(String rid, String uid);
-}

+ 0 - 21
mec-im/src/main/java/com/ym/dao/UserDao.java

@@ -1,21 +0,0 @@
-package com.ym.dao;
-
-import com.ym.pojo.UserInfo;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-/**
- * Created by weiqinxiao on 2019/2/25.
- */
-@Repository
-public interface UserDao extends JpaRepository<UserInfo, Long> {
-
-    UserInfo findByUid(String uid);
-
-    @Modifying
-    int deleteByUid(String uid);
-}

+ 0 - 35
mec-im/src/main/java/com/ym/dao/WhiteboardDao.java

@@ -1,35 +0,0 @@
-package com.ym.dao;
-
-import com.ym.pojo.Whiteboard;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-/**
- * Created by weiqinxiao on 2019/2/25.
- */
-@Repository
-public interface WhiteboardDao extends JpaRepository<Whiteboard, Long> {
-    List<Whiteboard> findByRid(String rid);
-
-    List<Whiteboard> findByRidAndCreator(String rid, String creator);
-
-    List<Whiteboard> findByRidAndWbid(String rid, String wbid);
-
-    int deleteByRid(String rid);
-
-    @Modifying
-    int deleteByWbid(String wbid);
-
-    @Modifying
-    @Query(value = "delete from rongyun_whiteboard where rid=?1 and creator=?2", nativeQuery = true)
-    int deleteByRidAndCreator(String rid, String creator);
-
-    @Modifying
-    @Query(value = "update rongyun_whiteboard set cur_pg=?3 where wbid=?2 and rid=?1", nativeQuery = true)
-    int updatePageByRidAndWbid(String rid, String wbid, int page);
-}

+ 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;

+ 0 - 48
mec-im/src/main/java/com/ym/pojo/HereWhite.java

@@ -1,48 +0,0 @@
-package com.ym.pojo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * Created by weiqinxiao on 2019/2/28.
- */
-@Entity
-@Table(name = "rongyun_here_white")
-public class HereWhite implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    @Column(name = "id_")
-    private Integer id;
-
-    @Column(name = "course_schedule_id_")
-    private @Getter @Setter int courseScheduleId;
-    @Column(name = "name_")
-    private @Getter @Setter String name;
-    @Column(name = "limit_")
-    private @Getter @Setter int limit;
-    @Column(name = "team_id_")
-    private @Getter @Setter int teamId;
-    @Column(name = "admin_id_")
-    private @Getter @Setter int adminId;
-    @Column(name = "mode_")
-    private @Getter @Setter String mode;
-    @Column(name = "template_")
-    private @Getter @Setter String template;
-    @Column(name = "region_")
-    private @Getter @Setter String region;
-    @Column(name = "uuid_")
-    private @Getter @Setter String uuid;
-    @Column(name = "room_token_")
-    private @Getter @Setter String roomToken;
-    @Column(name = "updated_at_")
-    private @Getter @Setter Date updatedAt;
-    @Column(name = "created_at_")
-    private @Getter @Setter Date createdAt;
-
-}

+ 0 - 42
mec-im/src/main/java/com/ym/pojo/Room.java

@@ -1,42 +0,0 @@
-package com.ym.pojo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * Created by weiqinxiao on 2019/2/28.
- */
-@Entity
-@Table(name = "rongyun_room")
-public class Room implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private long id;
-
-    private @Getter @Setter String rid;
-    private @Getter @Setter String name;
-    private @Getter @Setter String portrait;
-    private @Getter @Setter Date createDt;
-    private @Getter @Setter String display;
-    private @Getter @Setter int whiteboardNameIndex;
-    private @Getter @Setter int soundVolume = 100;
-
-    @Override
-    public String toString() {
-        return "Room{" +
-                "rid='" + rid + '\'' +
-                ", name='" + name + '\'' +
-                ", portrait='" + portrait + '\'' +
-                ", createDt=" + createDt +
-                ", display='" + display + '\'' +
-                ", soundVolume='" + soundVolume + '\'' +
-                ", whiteboardNameIndex='" + whiteboardNameIndex + '\'' +
-                '}';
-    }
-}

+ 0 - 59
mec-im/src/main/java/com/ym/pojo/RoomMember.java

@@ -1,59 +0,0 @@
-package com.ym.pojo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.persistence.*;
-import java.util.Date;
-
-/**
- * Created by weiqinxiao on 2019/2/28.
- */
-@Entity
-@Table(name = "rongyun_room_member")
-public class RoomMember {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private long id;
-
-    private @Getter @Setter String uid;
-    private @Getter @Setter String rid;
-    private @Getter @Setter String headUrl;
-    private @Getter @Setter int role;
-    private @Getter @Setter Date joinDt;
-    private @Getter @Setter String name;
-    private @Getter @Setter boolean camera = true;
-    private @Getter @Setter boolean musicMode = true;
-    private @Getter @Setter boolean mic = true;
-    private @Getter @Setter boolean hand = false;
-
-    public RoomMember() {
-    }
-
-    public RoomMember(String uid, String rid) {
-        this.uid = uid;
-        this.rid = rid;
-    }
-
-    public RoomMember(String uid) {
-        this.uid = uid;
-    }
-
-    @Override
-    public String toString() {
-        return "RoomMember{" +
-                "uid='" + uid + '\'' +
-                ", rid='" + rid + '\'' +
-                ", role=" + role +
-                ", joinDt=" + joinDt +
-                ", name='" + name + '\'' +
-                ", camera=" + camera +
-                ", musicMode=" + musicMode +
-                ", mic=" + mic +
-                '}';
-    }
-//
-//    @ManyToOne(fetch = FetchType.LAZY)
-//    @JoinColumn(name = "room_id", referencedColumnName = "rid")
-//    private @Getter @Setter Room room;
-}

+ 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.

+ 0 - 21
mec-im/src/main/java/com/ym/pojo/UserInfo.java

@@ -1,21 +0,0 @@
-package com.ym.pojo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.persistence.*;
-import java.util.Date;
-
-@Entity
-@Table(name = "rongyun_user")
-public class UserInfo {
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    private @Getter @Setter String uid;
-    private @Getter @Setter String name;
-    private @Getter @Setter String portrait;
-    private @Getter @Setter Date createDt;
-    private @Getter @Setter Date updateDt;
-}

+ 0 - 30
mec-im/src/main/java/com/ym/pojo/Whiteboard.java

@@ -1,30 +0,0 @@
-package com.ym.pojo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.persistence.*;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * Created by weiqinxiao on 2019/2/28.
- */
-@Entity
-@Table(name = "rongyun_whiteboard")
-public class Whiteboard implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private @Getter long id;
-
-    private @Getter @Setter String rid;
-    private @Getter @Setter String wbid;
-    private @Getter @Setter String wbRoom;
-    private @Getter @Setter String name;
-    private @Getter @Setter String creator;
-    private @Getter @Setter Date createDt;
-    private @Getter @Setter int pgCount;
-    private @Getter @Setter int curPg;
-}

+ 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 - 5
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;
@@ -12,7 +12,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
-
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -32,7 +31,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 +57,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 {

+ 163 - 135
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -4,19 +4,20 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.ym.common.ApiException;
-import com.ym.common.BaseResponse;
 import com.ym.common.DisplayEnum;
 import com.ym.common.ErrorEnum;
 import com.ym.config.IMProperties;
 import com.ym.config.RoomProperties;
-import com.ym.dao.*;
 import com.ym.job.ScheduleManager;
 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.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.RongyunBasicUserDto;
+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.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
@@ -123,13 +124,10 @@ public class RoomServiceImpl implements RoomService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
     public RoomResult joinRoom(String roomId) throws Exception {
-        CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         String userId = sysUser.getId().toString();
         log.info("joinRoom: roomId={}, userId={}", roomId, userId);
 
-        Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
         if(courseSchedule.getTeachMode() == TeachModeEnum.OFFLINE){
             throw new ApiException(ErrorEnum.JOIN_ROOM_ERROR);
@@ -171,49 +169,44 @@ public class RoomServiceImpl implements RoomService {
         Date curTime = DateTimeUtils.currentUTC();
 
         RoleEnum roleEnum;
-
+        String userName;
+        if(sysUser.getId().equals(courseSchedule.getActualTeacherId())){
+            roleEnum = RoleTeacher;
+            userName = sysUser.getRealName();
+        }else {
+            roleEnum = RoleStudent;
+            userName = sysUser.getUsername();
+        }
 
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
-        RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
-        String userName;
-        if (member == null) {
-            int count = roomMemberDao.countByRidAndExcludeRole(roomId, RoleEnum.RoleAudience.getValue());
+        RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
+        if (roomMember == null) {
+            int count = roomMemberDao.countRoomMember(roomId);
             if (count == roomProperties.getMaxCount()) {
                 log.info("join error Over max count: roomId = {}, userId = {}", roomId,userId);
                 throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
             }
-            if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
-                roleEnum = RoleTeacher;
-                userName = sysUser.getRealName();
-            }else {
-                roleEnum = RoleStudent;
-                userName = sysUser.getUsername();
-            }
             userResult.setMicrophone(true);
             userResult.setCamera(true);
             userResult.setHandUpOn(false);
             userResult.setJoinTime(curTime);
             saveRoomMember(userId,sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime);
         } else {
-            roleEnum = RoleEnum.getEnumByValue(member.getRole());
             if(roleEnum == RoleTeacher){
                 courseScheduleStudentPaymentDao.adjustPlayMidi(courseId,null,null);
             }
-            userName = member.getName();
-            userResult.setCamera(member.isCamera());
-            userResult.setHandUpOn(member.isHand());
-            userResult.setJoinTime(member.getJoinDt());
+            userResult.setCamera(roomMember.isCamera());
+            userResult.setHandUpOn(roomMember.isHand());
+            userResult.setJoinTime(roomMember.getJoinDt());
         }
         imHelper.joinGroup(new String[]{userId}, roomId, roomId);
 
         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=";
-        } else if (roleEnum == RoleEnum.RoleAssistant && display.isEmpty()) {
-            display = "display://type=0?userId=" + userId + "?uri=";
         }else {
             ExamSongDownloadData examSongDownloadData;
             String json = courseScheduleStudentPaymentDao.getExamJsonByCourseIdAndUserId(courseId, sysUser.getId());
@@ -224,9 +217,11 @@ public class RoomServiceImpl implements RoomService {
             }
             //获取学员曲目下载状态
             userResult.setExamSongDownloadJson(examSongDownloadData);
-            if (room != null) {
-                display = room.getDisplay();
-            }
+        }
+        if(room != null){
+            display = room.getDisplay();
+        }else {
+            room = saveRoom(roomId,roomId,curTime,display);
         }
         //已下载的伴奏列表
         if(scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0){
@@ -252,14 +247,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 +271,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 +290,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 +330,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 +344,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);
@@ -412,14 +407,15 @@ public class RoomServiceImpl implements RoomService {
         redisTemplate.delete(roomId + userId);
     }
 
-    public void saveRoom(String roomId, String roomName, Date createTime, String display) {
+    public Room saveRoom(String roomId, String roomName, Date createTime, String display) {
         Room room = new Room();
         room.setRid(roomId);
         room.setName(roomName);
         room.setCreateDt(createTime);
         room.setDisplay(display);
         room.setWhiteboardNameIndex(0);
-        roomDao.save(room);
+        roomDao.insert(room);
+        return room;
     }
 
     public RoomMember saveRoomMember(String userId, String headUrl, String userName, String roomId, int role, Date joinTime) {
@@ -432,7 +428,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 +473,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) <= 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 +513,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 +525,7 @@ public class RoomServiceImpl implements RoomService {
                     e.printStackTrace();
                 }
             }
-            roomMemberDao.deleteByRid(roomId);
+            roomMemberDao.deleteRoomMember(roomId,null);
             log.info("destroyRoom: {}", roomId);
         }
     }
@@ -541,7 +537,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 +551,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 +590,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 +600,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 +626,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 +638,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 +675,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 +697,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 +709,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 +733,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 +754,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 +769,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 +793,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 +831,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 +900,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 +927,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 +960,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 +982,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 +997,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 +1057,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 +1077,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 +1092,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 +1109,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 +1147,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);
         if (count == roomProperties.getMaxCount()) {
             log.error("approveSpeech error: roomId = {}, ticket={}", roomId, ticket);
             throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
@@ -1150,10 +1162,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 +1195,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 +1218,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);
             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 +1236,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 +1254,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 +1273,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);
         }
@@ -1298,13 +1316,16 @@ public class RoomServiceImpl implements RoomService {
     public Boolean approveUpgradeRole(String roomId, String ticket) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(ticket != null, "ticket 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();
         UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
         log.info("approveUpgradeRole roomId = {}, task={}", roomId, taskInfo);
 
-        RoomMember targetUser = roomMemberDao.findByRidAndUid(roomId, userId);
+        RoomMember targetUser = roomMemberDao.findOne(roomId, userId);
         if (targetUser == null) {
             throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
         }
@@ -1313,7 +1334,7 @@ public class RoomServiceImpl implements RoomService {
         }
 
         checkOverMax(roomId, targetUser, taskInfo.getRole().getValue());
-        roomMemberDao.updateRoleByRidAndUid(roomId, userId, taskInfo.getRole().getValue());
+        roomMemberDao.updateByRidAndUid(roomId, userId, taskInfo.getRole().getValue());
 
         UpgradeRoleMessage msg = new UpgradeRoleMessage(ActionEnum.Approve.ordinal());
 
@@ -1341,7 +1362,10 @@ public class RoomServiceImpl implements RoomService {
     public Boolean rejectUpgradeRole(String roomId, String ticket) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(ticket != null, "ticket 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();
         UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
@@ -1363,13 +1387,18 @@ public class RoomServiceImpl implements RoomService {
 
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         CheckUtils.checkArgument(targetUserId != null, "userId must't be null");
-        CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
+        Room room = roomDao.findOne(roomId);
+        if(room == null){
+            throw new BizException("房间信息不存在");
+        }
         CheckUtils.checkArgument(RoleEnum.getEnumByValue(targetRole).equals(RoleTeacher), "only set to teacher");
-        CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
+        RoomMember targetUser = roomMemberDao.findOne(roomId, targetUserId);
+        if(targetUser == null){
+            throw new BizException("用户不在房间");
+        }
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 
-        RoomMember targetUser = roomMemberDao.findByRidAndUid(roomId, targetUserId);
         if (targetUser == null) {
             throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
         } else {
@@ -1383,11 +1412,11 @@ public class RoomServiceImpl implements RoomService {
         List<RoleChangedMessage.ChangedUser> changedUserList = new ArrayList<>();
         RoleChangedMessage msg = new RoleChangedMessage(userId);
 
-        List<RoomMember> teachers = roomMemberDao.findByRidAndRole(roomId, RoleTeacher.getValue());
+        List<RoomMember> teachers = roomMemberDao.queryRoomMember(roomId,null, RoleTeacher.getValue());
         if (!teachers.isEmpty()) {
-            roomMemberDao.updateRoleByRidAndUid(roomId, teachers.get(0).getUid(), RoleStudent.getValue());
+            roomMemberDao.updateByRidAndUid(roomId, teachers.get(0).getUid(), RoleStudent.getValue());
             RoleChangedMessage.ChangedUser user = new RoleChangedMessage.ChangedUser(teachers.get(0).getUid(), RoleStudent.getValue());
-            UserInfo userInfo = userDao.findByUid(teachers.get(0).getUid());
+            UserInfo userInfo = userDao.findOne(teachers.get(0).getUid());
             if (userInfo != null) {
                 user.setUserName(userInfo.getName());
             }
@@ -1396,9 +1425,9 @@ public class RoomServiceImpl implements RoomService {
             log.info("change directly cause no teacher exist in room, roomId={}", roomId);
         }
 
-        roomMemberDao.updateRoleByRidAndUid(roomId, targetUserId, targetRole);
+        roomMemberDao.updateByRidAndUid(roomId, targetUserId, targetRole);
         RoleChangedMessage.ChangedUser user = new RoleChangedMessage.ChangedUser(targetUserId, targetRole);
-        UserInfo userInfo = userDao.findByUid(targetUserId);
+        UserInfo userInfo = userDao.findOne(targetUserId);
         if (userInfo != null) {
             user.setUserName(userInfo.getName());
         }
@@ -1408,10 +1437,9 @@ public class RoomServiceImpl implements RoomService {
 
         String display = "display://type=1?userId=" + targetUserId + "?uri=";
         DisplayMessage displayMessage = new DisplayMessage(display);
-        roomDao.updateDisplayByRid(roomId, display);
+        roomDao.updateRoom(roomId, display,null,null);
         imHelper.publishMessage(userId, roomId, displayMessage, 1);
         log.info("changeRole, display changed: roomId={}, {}, targetUserId={}", roomId, display, targetUserId);
-
         return true;
     }
 
@@ -1432,7 +1460,7 @@ public class RoomServiceImpl implements RoomService {
             log.info("memberOnlineStatus, userId={}, status={}", userId, status);
             //1:offline 离线; 0: online 在线
             if (s == 1) {
-                List<RoomMember> members = roomMemberDao.findByUid(userId);
+                List<RoomMember> members = roomMemberDao.queryRoomMember(null,userId,null);
                 if (!members.isEmpty()) {
                     scheduleManager.userIMOffline(userId);
                 }
@@ -1447,13 +1475,13 @@ public class RoomServiceImpl implements RoomService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void userIMOfflineKick(String userId) {
-        List<RoomMember> members = roomMemberDao.findByUid(userId);
+        List<RoomMember> members = roomMemberDao.queryRoomMember(null,userId,null);
         for (RoomMember member : members) {
             int userRole = member.getRole();
             log.info("userIMOfflineKick: roomId={}, {}, role={}", member.getRid(), userId, RoleEnum.getEnumByValue(userRole));
             try {
                 if (userRole == RoleTeacher.getValue() || userRole == RoleEnum.RoleAssistant.getValue()) {
-                    Room room = roomDao.findByRid(member.getRid());
+                    Room room = roomDao.findOne(member.getRid());
                     if (room == null) {
                         break;
                     }
@@ -1462,12 +1490,12 @@ public class RoomServiceImpl implements RoomService {
                         log.info("memberOnlineStatus offline: roomId={}, {}", member.getRid(), member.getUid());
                     }
                 }
-                if (roomMemberDao.countByRid(member.getRid()) == 1) {
+                if (roomMemberDao.countRoomMember(member.getRid()) == 1) {
                     IMApiResultInfo apiResultInfo = null;
                     apiResultInfo = imHelper.dismiss(member.getUid(), member.getRid());
                     if (apiResultInfo.getCode() == 200) {
-                        roomMemberDao.deleteUserByRidAndUid(member.getRid(), member.getUid());
-                        roomDao.deleteByRid(member.getRid());
+                        roomMemberDao.deleteRoomMember(member.getRid(), member.getUid());
+                        roomDao.deleteRoom(member.getRid());
                         deleteWhiteboardByUser(member.getRid(), member.getUid());
                         log.info("dismiss the room: {},userId: {}", member.getRid(),userId);
                     } else {
@@ -1477,7 +1505,7 @@ public class RoomServiceImpl implements RoomService {
                     IMApiResultInfo apiResultInfo = null;
                     apiResultInfo = imHelper.quit(new String[]{member.getUid()}, member.getRid());
                     if (apiResultInfo.isSuccess()) {
-                        roomMemberDao.deleteUserByRidAndUid(member.getRid(), member.getUid());
+                        roomMemberDao.deleteRoomMember(member.getRid(), member.getUid());
                         MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, member.getUid(), userRole);
                         msg.setUserName(member.getName());
                         imHelper.publishMessage(member.getUid(), member.getRid(), msg);
@@ -1487,7 +1515,7 @@ public class RoomServiceImpl implements RoomService {
                         log.error("{} exit {} room error: {}", member.getUid(), member.getRid(), apiResultInfo.getErrorMessage());
                     }
                 }
-                userDao.deleteByUid(member.getUid());
+                userDao.deleteUser(member.getUid());
             } catch (Exception e) {
                 log.error("userIMOfflineKick error: userId={}", userId);
             }
@@ -1639,7 +1667,7 @@ public class RoomServiceImpl implements RoomService {
     }
 
     public void updateDisplay(String roomId, String senderId, String display, Integer isIncludeSender) throws Exception {
-        roomDao.updateDisplayByRid(roomId, display);
+        roomDao.updateRoom(roomId, display,null,null);
         DisplayMessage displayMessage = new DisplayMessage(display);
         imHelper.publishMessage(senderId, roomId, displayMessage, isIncludeSender);
     }