UnionClickLogsMapper.xml 12.6 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.unions.dal.IUnionClickLogsDAO">
    <resultMap id="BaseResultMap" type="com.yoho.unions.dal.model.UnionClickLogs">
        <id column="id" property="id" jdbcType="INTEGER"/>
        <result column="app_id" property="appId" jdbcType="VARCHAR"/>
        <result column="idfa" property="idfa" jdbcType="VARCHAR"/>
        <result column="imei" property="imei" jdbcType="VARCHAR"/>
        <result column="union_type" property="unionType" jdbcType="BIGINT"/>
        <result column="create_time" property="createTime" jdbcType="INTEGER"/>
        <result column="client_type" property="clientType" jdbcType="VARCHAR"/>
        <result column="td" property="td" jdbcType="VARCHAR"/>
        <result column="app_key" property="appKey" jdbcType="VARCHAR"/>
        <result column="client_ip" property="clientIp" jdbcType="VARCHAR"/>
        <result column="user_agent" property="userAgent" jdbcType="VARCHAR"/>
        <result column="interface_type" property="interfaceType" jdbcType="VARCHAR"/>
        <result column="union_name" property="unionName" jdbcType="VARCHAR"/>
    </resultMap>
    <resultMap id="ClickMap" type="com.yoho.service.model.union.response.ActivateDeviceIdRspBO">
        <result column="union_type" property="unionType" jdbcType="VARCHAR"/>
        <result column="idfa_click" property="idfaClick" jdbcType="INTEGER"/>
        <result column="imei_click" property="imeiClick" jdbcType="INTEGER"/>
    </resultMap>
    <sql id="Base_Column_List">
    id, app_id, idfa, imei, union_type, create_time, client_type, td, app_key, client_ip,user_agent,interface_type,union_name
  </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List"/>
        from union_click_logs
        where id = #{id,jdbcType=INTEGER}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from union_click_logs
    where id = #{id,jdbcType=INTEGER}
  </delete>
    <delete id="deleteLimit" parameterType="java.lang.Integer">
        delete from union_click_logs where create_time &lt;#{endTime} limit 100
    </delete>
    <insert id="insert" parameterType="com.yoho.unions.dal.model.UnionClickLogs">
    insert into union_click_logs (id, app_id, idfa,
    imei, union_type, create_time,
    client_type, td, app_key,
    client_ip,user_agent,interface_type,union_name)
    values (#{id,jdbcType=INTEGER}, #{appId,jdbcType=VARCHAR}, #{idfa,jdbcType=VARCHAR},
    #{imei,jdbcType=VARCHAR}, #{unionType,jdbcType=BIGINT}, #{createTime,jdbcType=INTEGER},
    #{clientType,jdbcType=VARCHAR}, #{td,jdbcType=VARCHAR}, #{appKey,jdbcType=VARCHAR},
    #{clientIp,jdbcType=VARCHAR},#{userAgent,jdbcType=VARCHAR}, #{interfaceType,jdbcType=VARCHAR},#{unionName,jdbcType=VARCHAR})
  </insert>
    <insert id="insertSelective" parameterType="com.yoho.unions.dal.model.UnionClickLogs">
        insert into union_click_logs
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="appId != null">
                app_id,
            </if>
            <if test="idfa != null">
                idfa,
            </if>
            <if test="imei != null">
                imei,
            </if>
            <if test="unionType != null">
                union_type,
            </if>
            <if test="createTime != null">
                create_time,
            </if>
            <if test="clientType != null">
                client_type,
            </if>
            <if test="td != null">
                td,
            </if>
            <if test="appKey != null">
                app_key,
            </if>
            <if test="clientIp != null">
                client_ip,
            </if>
            <if test="userAgent != null">
                user_agent,
            </if>
            <if test="interfaceType != null">
                interface_type,
            </if>
            <if test="unionName != null">
                union_name,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=INTEGER},
            </if>
            <if test="appId != null">
                #{appId,jdbcType=VARCHAR},
            </if>
            <if test="idfa != null">
                #{idfa,jdbcType=VARCHAR},
            </if>
            <if test="imei != null">
                #{imei,jdbcType=VARCHAR},
            </if>
            <if test="unionType != null">
                #{unionType,jdbcType=VARCHAR},
            </if>
            <if test="createTime != null">
                #{createTime,jdbcType=INTEGER},
            </if>
            <if test="clientType != null">
                #{clientType,jdbcType=VARCHAR},
            </if>
            <if test="td != null">
                #{td,jdbcType=VARCHAR},
            </if>
            <if test="appKey != null">
                #{appKey,jdbcType=VARCHAR},
            </if>
            <if test="clientIp != null">
                #{clientIp,jdbcType=VARCHAR},
            </if>
            <if test="userAgent != null">
                #{userAgent,jdbcType=VARCHAR},
            </if>
            <if test="interfaceType != null">
                #{interfaceType,jdbcType=VARCHAR},
            </if>
            <if test="unionName != null">
                #{unionName,jdbcType=VARCHAR},
            </if>
        </trim>
    </insert>
    <select id="selectByIdfa" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        union_click_logs where idfa = #{idfa} and create_time &gt; #{beginTime} and create_time &lt;#{endTime} limit 1
    </select>

    <select id="selectByImei" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        union_click_logs where imei = #{imei} and create_time &gt; #{beginTime} and create_time &lt;#{endTime} limit 1
    </select>

    <select id="selectByTDandIP" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        union_click_logs where td = #{td} and client_ip = #{clientIp} and create_time &gt; #{beginTime} and create_time
        &lt;#{endTime} limit 1

    </select>

    <update id="updateByPrimaryKey" parameterType="com.yoho.unions.dal.model.UnionClickLogs">
    update union_click_logs
    set app_id = #{appId,jdbcType=VARCHAR},
      idfa = #{idfa,jdbcType=VARCHAR},
      imei = #{imei,jdbcType=VARCHAR},
      union_type = #{unionType,jdbcType=BIGINT},
      create_time = #{createTime,jdbcType=INTEGER},
      client_type = #{clientType,jdbcType=VARCHAR},
      td = #{td,jdbcType=VARCHAR},
      app_key = #{appKey,jdbcType=VARCHAR},
      client_ip = #{clientIp,jdbcType=VARCHAR},
      user_agent = #{userAgent,jdbcType=VARCHAR},
      interface_type = #{interfaceType,jdbcType=VARCHAR},
      union_name = #{unionName,jdbcType=VARCHAR}
    where id = #{id,jdbcType=INTEGER}
  </update>
    <select id="selectListByParam" resultMap="ClickMap">
        select union_type,count(idfa) as idfa_click,count(imei) as imei_click
        from union_click_logs
        where union_type in
        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
            #{item.unionType}
        </foreach>
        <if test="bo.interfaceType != null and bo.interfaceType !='' ">
            and interface_type=#{bo.interfaceType}
        </if>
        <if test="bo.activateTimeStr != null and bo.activateTimeStr>0">
            and create_time>=#{bo.activateTimeStr,jdbcType=INTEGER} and create_time-86400 &lt;=#{bo.activateTimeStr,jdbcType=INTEGER}
        </if>
        group by union_type
    </select>
    <select id="queryActivateIdfaCount" resultType="java.lang.Integer"
            parameterType="com.yoho.service.model.union.request.ActivateDeviceIdReqBO">
        select count(1)
        from union_click_logs
        where union_type = #{unionType}
        <if test="interfaceType == null or interfaceType =='' ">
            and interface_type in ('addUnion_ios','addUnion4Jump_ios','addMonitor_ios')
        </if>
        <if test="interfaceType != null and interfaceType !='' ">
            and interface_type=#{interfaceType}
        </if>
        <if test="activateTimeBegin != null and activateTimeBegin>0">
            and create_time>=#{activateTimeBegin,jdbcType=INTEGER}
        </if>
        <if test="activateTimeEnd != null and activateTimeEnd>0">
           and create_time &lt;=#{activateTimeEnd,jdbcType=INTEGER}
        </if>
    </select>
    <select id="queryActivateImeiCount" resultType="java.lang.Integer"
            parameterType="com.yoho.service.model.union.request.ActivateDeviceIdReqBO">
        select count(1)
        from union_click_logs
        where union_type = #{unionType}
        <if test="interfaceType == null or interfaceType =='' ">
            and interface_type in ('addUnion_android','addUnion4Jump_android','addMonitor_android')
        </if>
        <if test="interfaceType != null and interfaceType !='' ">
            and interface_type=#{interfaceType}
        </if>
        <if test="activateTimeBegin != null and activateTimeBegin>0">
            and create_time>=#{activateTimeBegin,jdbcType=INTEGER}
        </if>
        <if test="activateTimeEnd != null and activateTimeEnd>0">
            and create_time &lt;=#{activateTimeEnd,jdbcType=INTEGER}
        </if>
    </select>
    <select id="queryUnionClickLogsByParam" resultMap="BaseResultMap"
            parameterType="com.yoho.service.model.union.request.UnionLogsReqBO">
        select
        <include refid="Base_Column_List"/>
        from union_click_logs
        where 1=1
        <if test="interfaceType != null and interfaceType !='' ">
            and interface_type=#{interfaceType}
        </if>
        <if test="createTimeBegin != null and createTimeBegin>0">
            and create_time>=#{createTimeBegin,jdbcType=INTEGER}
        </if>
        <if test="createTimeEnd != null and createTimeEnd>0">
            and create_time &lt;= #{createTimeEnd,jdbcType=INTEGER}
        </if>
        <if test="unionType !=null and unionType !='' ">
            and union_type = #{unionType}
        </if>
        <if test="unionName !=null and unionName !='' ">
            and union_name LIKE CONCAT('%',#{unionName,jdbcType=VARCHAR},'%')
        </if>
        <if test="idfa !=null and idfa !='' ">
            and idfa = #{idfa}
        </if>
        <if test="imei !=null and imei !='' ">
            and imei = #{imei}
        </if>
        ORDER BY create_time DESC limit #{start,jdbcType=INTEGER}, #{size,jdbcType=INTEGER}
    </select>
    <select id="queryUnionClickLogsCountByParam" resultType="java.lang.Integer"
            parameterType="com.yoho.service.model.union.request.UnionLogsReqBO">
        select count(1)
        from union_click_logs where 1=1
        <if test="interfaceType != null and interfaceType !='' ">
            and interface_type=#{interfaceType}
        </if>
        <if test="createTimeBegin != null and createTimeBegin>0">
            and create_time>=#{createTimeBegin,jdbcType=INTEGER}
        </if>
        <if test="createTimeEnd != null and createTimeEnd>0">
            and create_time &lt;= #{createTimeEnd,jdbcType=INTEGER}
        </if>
        <if test="unionType !=null and unionType !='' ">
            and union_type = #{unionType}
        </if>
        <if test="unionName !=null and unionName !='' ">
            and union_name LIKE CONCAT('%',#{unionName,jdbcType=VARCHAR},'%')
        </if>
        <if test="idfa !=null and idfa !='' ">
            and idfa = #{idfa}
        </if>
        <if test="imei !=null and imei !='' ">
            and imei = #{imei}
        </if>
    </select>
    <select id="queryCountInfoByTime" resultType="com.yoho.unions.dal.model.UnionClickCount" >
        select union_type as unionType,client_type as clientType,count(*) as num from union_click_logs 
        	where 
        		create_time &gt;= #{beginTime,jdbcType=INTEGER} 
        	and create_time &lt; #{endTime,jdbcType=INTEGER}
        	group by 
        		union_type,client_type;
    </select>
    
    <select id="queryCountInfo" resultType="java.lang.Integer">
        select CASE WHEN count(*) is null then 0 else count(*) end from union_click_logs 
        	where union_type = #{unionType,jdbcType=BIGINT} and client_type = #{clientType,jdbcType=VARCHAR} and
        		create_time &gt;= #{beginTime,jdbcType=INTEGER} 
        	and create_time &lt; #{endTime,jdbcType=INTEGER}
    </select>
</mapper>