| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?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.yonge.cooleshow.biz.dal.dao.ImGroupMemberDao">
- <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
- <id column="id_" jdbcType="INTEGER" property="id"/>
- <result column="group_id_" jdbcType="VARCHAR" property="groupId"/>
- <result column="user_id_" jdbcType="INTEGER" property="userId"/>
- <result column="nickname_" jdbcType="VARCHAR" property="nickname"/>
- <result column="is_admin_" jdbcType="VARCHAR" property="isAdmin"/>
- <result column="role_type_" jdbcType="VARCHAR" property="roleType"/>
- <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
- <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
- </resultMap>
- <!-- 表字段 -->
- <sql id="baseColumns">
- t.id_ AS id
- , t.group_id_ AS groupId
- , t.user_id_ AS userId
- , t.avatar_ AS avatar
- , t.nickname_ AS nickname
- , t.is_admin_ AS isAdmin
- , t.role_type_ AS roleType
- , t.create_time_ AS createTime
- , t.update_time_ AS updateTime
- , t.group_role_type_ AS groupRoleType
- , t.group_mute_ AS groupMute
- </sql>
- <sql id="Base_Column_List">
- id_ , group_id_, user_id_, nickname_, is_admin_, role_type_, create_time_, update_time_,group_role_type_,group_mute_
- </sql>
- <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
- parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
- insert into im_group_member(group_id_, user_id_,avatar_, nickname_, is_admin_, role_type_, create_time_,
- update_time_,group_role_type_)
- values
- <foreach collection="entities" item="entity" separator=",">
- (#{entity.groupId}, #{entity.userId}, #{entity.avatar}, #{entity.nickname}, #{entity.isAdmin}, #{entity.roleType},NOW(), NOW(),#{entity.groupRoleType})
- </foreach>
- ON DUPLICATE KEY UPDATE
- group_id_ = VALUES(group_id_),
- user_id_ = VALUES(user_id_),
- role_type_ = VALUES(role_type_)
- </insert>
- <delete id="delByGroupId">
- DELETE FROM im_group_member WHERE group_id_ = #{groupId}
- </delete>
- <delete id="delByGroupIdAndUserId">
- DELETE FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId} AND role_type_ = #{roleType}
- </delete>
- <select id="findOne" resultMap="BaseResultMap">
- SELECT <include refid="Base_Column_List"/> FROM im_group_member
- <where>
- <if test="groupId != null">
- AND group_id_ = #{groupId}
- </if>
- <if test="userId != null">
- AND user_id_ = #{userId}
- </if>
- <if test="roleType != null">
- AND role_type_ = #{roleType}
- </if>
- </where>
- LIMIT 1
- </select>
- <select id="queryGroupMember" resultType="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
- SELECT user_id_,group_id_,role_type_ FROM im_group_member WHERE group_id_ = #{groupId}
- </select>
- <resultMap id="ImGroupMember" type="com.yonge.cooleshow.biz.dal.entity.ImGroupMember">
- <result property="groupId" column="group_id_"/>
- <result property="userId" column="user_id_"/>
- <result property="isAdmin" column="is_admin_"/>
- <result property="nickname" column="nick_name_"/>
- <result property="avatar" column="avatar_"/>
- <result property="roleType" column="role_type_"/>
- <result property="createTime" column="create_time_"/>
- <result property="updateTime" column="update_time_"/>
- <result property="groupRoleType" column="group_role_type_"/>
- <result property="groupMute" column="group_mute_"/>
- </resultMap>
- <select id="initImGroupMember" resultMap="ImGroupMember">
- SELECT #{imGroupId} group_id_,su.id_ user_id_, 0 is_admin_,su.username_ nick_name_,
- #{roleType} role_type_,NOW() now_,su.avatar_
- FROM sys_user su
- WHERE su.id_ IN
- <foreach collection="userIds" open="(" close=")" item="userId" separator=",">
- #{userId}
- </foreach>
- </select>
- <select id="findByUserIdAndGroupId" resultMap="ImGroupMember">
- SELECT <include refid="Base_Column_List"/> FROM im_group_member WHERE group_id_ = #{groupId} AND user_id_ = #{userId} AND role_type_ = #{clientType} LIMIT 1
- </select>
- <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupMemberWrapper$ImGroupMember">
- SELECT
- <include refid="baseColumns" />
- , t.role_type_ AS clientType
- FROM im_group_member t
- <where>
- <if test="param.groupId != null">
- AND t.group_id_ = #{param.groupId}
- </if>
- <if test="param.keyword != null">
- AND t.nickname_ LIKE concat('%',#{param.keyword},'%')
- </if>
- <if test="param.groupMute != null">
- AND t.group_mute_ = #{param.groupMute}
- </if>
- <if test="param.groupRoleTypes != null">
- AND t.group_role_type_ IN (<foreach collection="param.groupRoleTypes" separator="," item="item">#{item}</foreach>)
- </if>
- </where>
- ORDER BY t.id_ DESC
- </select>
- </mapper>
|