<?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.iformall.mapper.WxGameActionLogMapper">
	<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxGameActionLog">
		<id column="id" jdbcType="BIGINT" property="id" />
		<result column="tenant_id" jdbcType="VARCHAR" property="tenantId" />
		<result column="game_id" jdbcType="BIGINT" property="gameId" />
		<result column="user_id" jdbcType="BIGINT" property="userId" />
		<result column="coupon_order_id" jdbcType="BIGINT" property="couponOrderId" />
		<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
	</resultMap>
	
	<sql id="allColumns">
	    `id`,`tenant_id`,`coupon_id`,`coupon_order_id`,`channel_type`,`channel_id`,`create_time`
	</sql>

	<sql id="dynamicWhereConditions">
	        where 1 = 1
	    
		<if test=" null != id "> 
		and `id` = #{id} 
       	
		</if>    
	    
		<if test=" null != tenantId "> 
		and `tenant_id`  = #{tenantId}
       	
		</if>    
	    
		<if test=" null != gameId ">
		and `game_id` = #{gameId}
       	
		</if>

		<if test=" null != userId ">
		and `user_id` = #{userId}

		</if>

		<if test=" null != couponOrderId ">
		and `coupon_order_id` = #{couponOrderId}

		</if>
	    
		<if test=" null != createTime ">
		and `create_time` = #{createTime}

		</if>

		<if test=" null != startTime ">
		and `start_time` &gt;= #{startTime}

		</if>

		<if test=" null != endTime ">
		and `end_time` &lt;= #{endTime}

		</if>

		<if test=" null != ids ">
		 	and id in  
			<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
			#{idItem}
			</foreach>
		</if>		
		<if test=" null != sortColumns"> order by ${sortColumns} </if>
	</sql>
	
	<select id="findList" parameterType="com.iformall.domain.po.WxGameActionLog" resultMap="BaseResultMap">
		select <include refid="allColumns" /> from wx_game_action_log
		<include refid="dynamicWhereConditions" />
	</select>


	<sql id="dynamicCountWhereConditions">
		where 1 = 1

		<if test=" null != id ">
			and `id` = #{id}

		</if>

		<if test=" null != tenantId ">
			and `tenant_id`  = #{tenantId}

		</if>

		<if test=" null != gameId ">
			and `game_id` = #{gameId}

		</if>

		<if test=" null != userId ">
			and `user_id` = #{userId}

		</if>

		<if test=" null != couponOrderId ">
			and `coupon_order_id` = #{couponOrderId}

		</if>

		<if test=" null != createTime ">
			and `create_time` = #{createTime}

		</if>

		<if test=" null != startTime ">
			and `start_time` &gt;= #{startTime}

		</if>

		<if test=" null != endTime ">
			and `end_time` &lt;= #{endTime}

		</if>


	</sql>

	<select id="getPlayCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog">
		select COUNT(*) FROM wx_game_action_log a
		<include refid="dynamicCountWhereConditions" />
	</select>

	<select id="getAwardCount" resultType="java.lang.Integer" parameterType="com.iformall.domain.po.WxGameActionLog">
		select COUNT(*) FROM wx_game_action_log a
		<include refid="dynamicCountWhereConditions" />
		and coupon_order_id != 0
	</select>

</mapper>
