ImLiveBroadcastRoomMemberMapper.xml 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.ym.mec.biz.dal.dao.ImLiveBroadcastRoomMemberDao">
  4. <resultMap id="BaseResultMap" type="com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember">
  5. <id column="id_" jdbcType="INTEGER" property="id"/>
  6. <result column="tenant_id_" jdbcType="INTEGER" property="tenantId"/>
  7. <result column="room_uid_" jdbcType="VARCHAR" property="roomUid"/>
  8. <result column="user_id_" jdbcType="INTEGER" property="userId"/>
  9. <result column="join_time_" jdbcType="TIMESTAMP" property="joinTime"/>
  10. <result column="total_time_" jdbcType="INTEGER" property="totalTime"/>
  11. </resultMap>
  12. <sql id="Base_Column_List">
  13. id
  14. , tenant_id_, room_uid_, user_id_, join_time_, total_time_
  15. </sql>
  16. <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
  17. parameterType="com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember">
  18. insert into im_live_broadcast_room_member(tenant_id_, room_uid_, user_id_, join_time_, total_time_) values
  19. <foreach collection="entities" item="entity" separator=",">
  20. (#{entity.tenantId}, #{entity.roomUid}, #{entity.userId}, #{entity.joinTime}, #{entity.totalTime})
  21. </foreach>
  22. ON DUPLICATE KEY UPDATE join_time_ = VALUES(join_time_), total_time_ = VALUES(total_time_)
  23. </insert>
  24. <select id="queryMemberPage" resultType="com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomMemberVo">
  25. select i.room_uid_ as roomUid,
  26. i.room_title_ as roomTitle,
  27. tu.real_name_ speakerName,
  28. a.user_id_ as studentId,
  29. su.username_ as studentName,
  30. su.avatar_ as avatar,
  31. su.phone_ as phone,
  32. b.name_ as subName,
  33. o.name_ organName,
  34. GROUP_CONCAT(distinct mg.name_) musicGroupName,
  35. a.join_time_ as joinTime,
  36. a.total_time_ as totalViewTime
  37. from im_live_broadcast_room_member as a
  38. left join im_live_broadcast_room as i on a.room_uid_ = i.room_uid_
  39. left join sys_user as su on su.id_ = a.user_id_
  40. left join student st on su.id_ = st.user_id_
  41. LEFT JOIN student_registration sr ON sr.user_id_ = a.user_id_
  42. LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
  43. left join subject as b on st.subject_id_list_ = b.id_
  44. left join `sys_user` tu on tu.`id_` = i.`speaker_id_`
  45. LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`
  46. where a.room_uid_ = #{param.roomUid}
  47. <if test="param.search != null ">
  48. AND (
  49. a.user_id_ LIKE CONCAT('%', #{param.search},'%')
  50. OR su.username_ LIKE CONCAT('%', #{param.search},'%')
  51. )
  52. </if>
  53. <if test="param.onlineStatus != null">
  54. AND a.online_status_ = #{param.onlineStatus}
  55. </if>
  56. group by a.user_id_
  57. </select>
  58. <update id="updateOnlineStatus">
  59. update im_live_broadcast_room_member
  60. set online_status_ = #{onlineStatus}
  61. where room_uid_ = #{groupId} and user_id_ in <foreach collection="userIds" item="userId" open="(" separator="," close=")">#{userId}</foreach>
  62. </update>
  63. <update id="updateLiveRoomStatus">
  64. update im_live_broadcast_room_member
  65. set live_room_status_ = #{onlineStatus}
  66. where room_uid_ = #{groupId} and user_id_ in <foreach collection="userIds" item="userId" open="(" separator="," close=")">#{userId}</foreach>
  67. </update>
  68. <select id="queryMember" resultType="com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember">
  69. select * from im_live_broadcast_room_member
  70. where room_uid_ = #{groupId} and user_id_ in <foreach collection="userIds" item="userId" open="(" separator="," close=")">#{userId}</foreach>
  71. </select>
  72. </mapper>