DrawlineUserQueueMapper.xml 7.89 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="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, create_time, update_time
	</sql>
	<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
		select
		<include refid="Base_Column_List" />
		from drawline_user_queue
		where id = #{id,jdbcType=INTEGER}
	</select>
	<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>
	<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
		delete from drawline_user_queue
		where id = #{id,jdbcType=INTEGER}
	</delete>
	<insert id="insert" parameterType="com.yoho.queue.dal.model.DrawlineUserQueue">
		insert into drawline_user_queue (id, uid, user_type,
		activity_id, sort, status,
		create_time, update_time)
		values (#{id,jdbcType=INTEGER},
		#{uid,jdbcType=INTEGER}, #{userType,jdbcType=TINYINT},
		#{activityId,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{status,jdbcType=TINYINT},
		#{createTime,jdbcType=INTEGER},
		#{updateTime,jdbcType=INTEGER})
	</insert>
	<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="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="createTime != null">
				#{createTime,jdbcType=INTEGER},
			</if>
			<if test="updateTime != null">
				#{updateTime,jdbcType=INTEGER},
			</if>
		</trim>
	</insert>
	<update id="updateByPrimaryKeySelective" parameterType="com.yoho.queue.dal.model.DrawlineUserQueue">
		update drawline_user_queue
		<set>
			<if test="uid != null">
				uid = #{uid,jdbcType=INTEGER},
			</if>
			<if test="userType != null">
				user_type = #{userType,jdbcType=TINYINT},
			</if>
			<if test="activityId != null">
				activity_id = #{activityId,jdbcType=INTEGER},
			</if>
			<if test="sort != null">
				sort = #{sort,jdbcType=INTEGER},
			</if>
			<if test="status != null">
				status = #{status,jdbcType=TINYINT},
			</if>
			<if test="createTime != null">
				create_time = #{createTime,jdbcType=INTEGER},
			</if>
			<if test="updateTime != null">
				update_time = #{updateTime,jdbcType=INTEGER},
			</if>
		</set>
		where id = #{id,jdbcType=INTEGER}
	</update>
	<update id="updateByPrimaryKey" parameterType="com.yoho.queue.dal.model.DrawlineUserQueue">
		update drawline_user_queue
		set uid = #{uid,jdbcType=INTEGER},
		user_type = #{userType,jdbcType=TINYINT},
		activity_id = #{activityId,jdbcType=INTEGER},
		sort = #{sort,jdbcType=INTEGER},
		status = #{status,jdbcType=TINYINT},
		create_time = #{createTime,jdbcType=INTEGER},
		update_time = #{updateTime,jdbcType=INTEGER}
		where id = #{id,jdbcType=INTEGER}
	</update>

	<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
	</select>
	<insert id="insertAutoSort" parameterType="com.yoho.queue.dal.model.DrawlineUserQueue">
		insert into drawline_user_queue (uid, user_type,
		activity_id, sort, status,
		create_time, update_time)
		select #{uid,jdbcType=INTEGER},
		#{userType,jdbcType=TINYINT}, #{activityId,jdbcType=INTEGER}, ifnull(max(sort), 0) + 1, #{status,jdbcType=TINYINT}, #{createTime,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER} from
		drawline_user_queue where activity_id = #{activityId,jdbcType=INTEGER}
	</insert>
	<select id="selectCountBy" resultType="java.lang.Integer">
		select count(1) 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>
	</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="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>
</mapper>