DrawlineUserQueueMapper.xml 6.4 KB
<?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.yoho.queue.dal.IDrawlineUserQueueDAO">
	<resultMap id="BaseResultMap" type="com.yoho.queue.dal.model.DrawlineUserQueue">
		<id column="id" property="id" jdbcType="INTEGER" />
		<result column="uid" property="uid" jdbcType="INTEGER" />
		<result column="user_type" property="userType" jdbcType="TINYINT" />
		<result column="activity_id" property="activityId" jdbcType="INTEGER" />
		<result column="sort" property="sort" jdbcType="INTEGER" />
		<result column="status" property="status" jdbcType="TINYINT" />
		<result column="open_id" property="openId" jdbcType="VARCHAR" />
		<result column="create_time" property="createTime" jdbcType="INTEGER" />
		<result column="update_time" property="updateTime" jdbcType="INTEGER" />
	</resultMap>
	<sql id="Base_Column_List">
		id, uid, user_type, activity_id, sort, status, open_id, create_time, update_time
	</sql>
	<select id="selectByActIdAndUids" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where activity_id = #{activityId,jdbcType=INTEGER}
		<if test="uidList != null and uidList.size() > 0">
			and uid in
			<foreach collection="uidList" item="item" open="(" close=")" separator=",">
				#{item}
			</foreach>
		</if>
	</select>
	<insert id="insertSelective" parameterType="com.yoho.queue.dal.model.DrawlineUserQueue">
		insert into drawline_user_queue
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="id != null">
				id,
			</if>
			<if test="uid != null">
				uid,
			</if>
			<if test="userType != null">
				user_type,
			</if>
			<if test="activityId != null">
				activity_id,
			</if>
			<if test="sort != null">
				sort,
			</if>
			<if test="status != null">
				status,
			</if>
			<if test="openId != null">
				open_id,
			</if>
			<if test="createTime != null">
				create_time,
			</if>
			<if test="updateTime != null">
				update_time,
			</if>
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="id != null">
				#{id,jdbcType=INTEGER},
			</if>
			<if test="uid != null">
				#{uid,jdbcType=INTEGER},
			</if>
			<if test="userType != null">
				#{userType,jdbcType=TINYINT},
			</if>
			<if test="activityId != null">
				#{activityId,jdbcType=INTEGER},
			</if>
			<if test="sort != null">
				#{sort,jdbcType=INTEGER},
			</if>
			<if test="status != null">
				#{status,jdbcType=TINYINT},
			</if>
			<if test="openId != null">
				#{openId,jdbcType=VARCHAR},
			</if>
			<if test="createTime != null">
				#{createTime,jdbcType=INTEGER},
			</if>
			<if test="updateTime != null">
				#{updateTime,jdbcType=INTEGER},
			</if>
		</trim>
	</insert>

	<select id="selectByUidAndActivityIdAndUserType" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where uid = #{uid,jdbcType=INTEGER} and activity_id = #{activityId,jdbcType=INTEGER} and user_type = #{userType,jdbcType=TINYINT} and status = 1
		order by create_time limit 1
	</select>
	<select id="selectBy" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		<where>
			activity_id = #{activityId,jdbcType=INTEGER} and status = 1
			<if test="sort > 0">
				and sort &lt;= #{sort,jdbcType=INTEGER}
			</if>
		</where>
		order by sort desc limit 0, #{limit,jdbcType=INTEGER}
	</select>
	<select id="selectMyQueueList" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		<where>
			activity_id = #{activityId,jdbcType=INTEGER} and status = 1 AND uid = #{uid,jdbcType=INTEGER}
			<if test="sort > 0">
				and sort &lt;= #{sort,jdbcType=INTEGER}
			</if>
		</where>
		order by sort desc limit 0, #{limit,jdbcType=INTEGER}
	</select>
	<select id="selectRealUserQueueByActIdAndUids" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where activity_id = #{activityId,jdbcType=INTEGER} and uid in (${uids}) and user_type = 1 and status = 1
	</select>
	<select id="selectRealUserQueueByRand" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where activity_id = #{activityId,jdbcType=INTEGER} and user_type = 1 and status = 1
		<if test="uids != null and uids != ''">
			and uid not in (${uids})
		</if>
		ORDER BY RAND() LIMIT #{limit,jdbcType=INTEGER}
	</select>
	<select id="selectByRand" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where activity_id = #{activityId,jdbcType=INTEGER} and user_type = #{userType,jdbcType=TINYINT} and status = 1
		ORDER BY RAND() LIMIT #{limit,jdbcType=INTEGER}
	</select>

	<select id="selectByTypeAndActivityIds" resultMap="BaseResultMap">
		select * from drawline_user_queue where status=1 and user_type=#{userType} and activity_id in (${activityIds})
	</select>
	<select id="selectRealUserCountByActivityIds" resultType="java.util.Map">
		select activity_id, count(activity_id) nums from drawline_user_queue where status=1 and user_type=1
		and create_time between #{beginTime}
		and #{endTime}
		and activity_id in (${activityIds}) group by activity_id
	</select>
	
	<select id="selectMaxSortByActivityId" resultType="java.lang.Integer">
		select ifnull(max(sort),0) from drawline_user_queue where activity_id=#{activityId}
	</select>
	<insert id="insertBatch">
		insert into drawline_user_queue (uid, user_type,activity_id, sort, status,create_time, update_time)
		values
		<foreach collection="list" item="item" index="index" separator=",">
			(#{item.uid},#{item.userType},#{item.activityId},#{item.sort},#{item.status},#{item.createTime},#{item.updateTime})
		</foreach>
	</insert>

	<select id="selectHelpUserCount" resultType="java.lang.Integer">
		select
		count(1)
		from drawline_user_queue
		where activity_id = #{activityId,jdbcType=INTEGER} and uid = #{uid,jdbcType=INTEGER}
		<if test="openId != null">
		  and open_id = #{openId,jdbcType=VARCHAR}
		</if>
		and user_type = 1 and status = 1
	</select>

	<select id="selectByActIdListAndUid" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where uid = #{uid,jdbcType=INTEGER}
		<if test="list != null and list.size() > 0">
			and activity_id in
			<foreach collection="list" item="item" open="(" close=")" separator=",">
				#{item}
			</foreach>
		</if>
	</select>
</mapper>