ImGroupMemberMapper.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
  5. <id column="id_" jdbcType="INTEGER" property="id"/>
  6. <result column="group_id_" jdbcType="VARCHAR" property="groupId"/>
  7. <result column="user_id_" jdbcType="INTEGER" property="userId"/>
  8. <result column="nickname_" jdbcType="VARCHAR" property="nickname"/>
  9. <result column="is_admin_" jdbcType="VARCHAR" property="isAdmin"/>
  10. <result column="role_type_" jdbcType="VARCHAR" property="roleType"/>
  11. <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
  12. <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
  13. </resultMap>
  14. <!-- 表字段 -->
  15. <sql id="baseColumns">
  16. t.id_ AS id
  17. , t.group_id_ AS groupId
  18. , t.user_id_ AS userId
  19. , t.avatar_ AS avatar
  20. , t.nickname_ AS nickname
  21. , t.is_admin_ AS isAdmin
  22. , t.role_type_ AS roleType
  23. , t.create_time_ AS createTime
  24. , t.update_time_ AS updateTime
  25. , t.group_role_type_ AS groupRoleType
  26. , t.group_mute_ AS groupMute
  27. </sql>
  28. <sql id="Base_Column_List">
  29. id_ , group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_,group_role_type_,group_mute_
  30. </sql>
  31. <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
  32. parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
  33. insert into im_group_member(group_id_, user_id_,avatar_, nickname_, is_admin_, role_type_, create_time_,
  34. update_time_,group_role_type_)
  35. values
  36. <foreach collection="entities" item="entity" separator=",">
  37. (#{entity.groupId}, #{entity.userId}, #{entity.avatar}, #{entity.nickname}, #{entity.isAdmin}, #{entity.roleType},NOW(), NOW(),#{entity.groupRoleType})
  38. </foreach>
  39. ON DUPLICATE KEY UPDATE
  40. group_id_ = VALUES(group_id_),
  41. user_id_ = VALUES(user_id_),
  42. role_type_ = VALUES(role_type_)
  43. </insert>
  44. <delete id="delByGroupId">
  45. DELETE FROM im_group_member WHERE group_id_ = #{groupId}
  46. </delete>
  47. <delete id="delByGroupIdAndUserId">
  48. DELETE FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId} AND role_type_ = #{roleType}
  49. </delete>
  50. <select id="findOne" resultMap="BaseResultMap">
  51. SELECT <include refid="Base_Column_List"/> FROM im_group_member
  52. <where>
  53. <if test="groupId != null">
  54. AND group_id_ = #{groupId}
  55. </if>
  56. <if test="userId != null">
  57. AND user_id_ = #{userId}
  58. </if>
  59. <if test="roleType != null">
  60. AND role_type_ = #{roleType}
  61. </if>
  62. </where>
  63. LIMIT 1
  64. </select>
  65. <select id="queryGroupMember" resultType="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
  66. SELECT user_id_,group_id_,role_type_ FROM im_group_member WHERE group_id_ = #{groupId}
  67. </select>
  68. <resultMap id="ImGroupMember" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
  69. <result property="groupId" column="group_id_"/>
  70. <result property="userId" column="user_id_"/>
  71. <result property="isAdmin" column="is_admin_"/>
  72. <result property="nickname" column="nick_name_"/>
  73. <result property="avatar" column="avatar_"/>
  74. <result property="roleType" column="role_type_"/>
  75. <result property="createTime" column="create_time_"/>
  76. <result property="updateTime" column="update_time_"/>
  77. <result property="groupRoleType" column="group_role_type_"/>
  78. <result property="groupMute" column="group_mute_"/>
  79. </resultMap>
  80. <select id="initImGroupMember" resultMap="ImGroupMember">
  81. SELECT #{imGroupId} group_id_,su.id_ user_id_, 0 is_admin_,su.username_ nick_name_,
  82. #{roleType} role_type_,NOW() now_,su.avatar_
  83. FROM sys_user su
  84. WHERE su.id_ IN
  85. <foreach collection="userIds" open="(" close=")" item="userId" separator=",">
  86. #{userId}
  87. </foreach>
  88. </select>
  89. <select id="findByUserIdAndGroupId" resultMap="ImGroupMember">
  90. SELECT <include refid="Base_Column_List"/> FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId} AND role_type_ = #{clientType} LIMIT 1
  91. </select>
  92. <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper$ImGroupMember">
  93. SELECT
  94. <include refid="baseColumns" />
  95. , t.role_type_ AS clientType
  96. FROM im_group_member t
  97. <where>
  98. <if test="param.groupId != null">
  99. AND t.group_id_ = #{param.groupId}
  100. </if>
  101. <if test="param.keyword != null">
  102. AND t.nickname_ LIKE concat('%',#{param.keyword},'%')
  103. </if>
  104. <if test="param.groupMute != null">
  105. AND t.group_mute_ = #{param.groupMute}
  106. </if>
  107. <if test="param.groupRoleTypes != null">
  108. AND t.group_role_type_ IN (<foreach collection="param.groupRoleTypes" separator="," item="item">#{item}</foreach>)
  109. </if>
  110. </where>
  111. ORDER BY t.id_ DESC
  112. </select>
  113. </mapper>