ProductModelValueMapper.xml 4.21 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.search.dal.ProductModelValueMapper" >
  <resultMap id="BaseResultMap" type="com.yoho.search.dal.model.ProductModelValue" >
    <id column="product_skn" property="productSkn" jdbcType="INTEGER" />
    <result column="date_id" property="dateId" jdbcType="VARCHAR" />
    <result column="active_value" property="activeValue" jdbcType="INTEGER" />
    <result column="transfer_value" property="transferValue" jdbcType="INTEGER" />
    <result column="give_value" property="giveValue" jdbcType="INTEGER" />
    <result column="profit_value" property="profitValue" jdbcType="INTEGER" />
    <result column="last_update_time" property="lastUpdateTime" jdbcType="INTEGER" />
  </resultMap>

  <resultMap id="MonitorResultMap" type="com.yoho.search.dal.model.BigdataMonitor">
    <result column="date_id" property="dateId" jdbcType="VARCHAR"/>
    <result column="num" property="num" jdbcType="INTEGER"/>
  </resultMap>

  <sql id="Base_Column_List" >
    product_skn, date_id, active_value, transfer_value, give_value, profit_value, last_update_time
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from product_model_value
    where product_skn = #{productSkn,jdbcType=INTEGER}
    limit 1
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from product_model_value
    where product_skn = #{productSkn,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.yoho.search.dal.model.ProductModelValue" >
    insert into product_model_value (product_skn, date_id, active_value, 
      transfer_value, give_value, profit_value, 
      last_update_time)
    values (#{productSkn,jdbcType=INTEGER}, #{dateId,jdbcType=VARCHAR}, #{activeValue,jdbcType=INTEGER}, 
      #{transferValue,jdbcType=INTEGER}, #{giveValue,jdbcType=INTEGER}, #{profitValue,jdbcType=INTEGER}, 
      #{lastUpdateTime,jdbcType=INTEGER})
  </insert>

  <update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.ProductModelValue" >
    update product_model_value
    <set >
      <if test="dateId != null" >
        date_id = #{dateId,jdbcType=VARCHAR},
      </if>
      <if test="activeValue != null" >
        active_value = #{activeValue,jdbcType=INTEGER},
      </if>
      <if test="transferValue != null" >
        transfer_value = #{transferValue,jdbcType=INTEGER},
      </if>
      <if test="giveValue != null" >
        give_value = #{giveValue,jdbcType=INTEGER},
      </if>
      <if test="profitValue != null" >
        profit_value = #{profitValue,jdbcType=INTEGER},
      </if>
      <if test="lastUpdateTime != null" >
        last_update_time = #{lastUpdateTime,jdbcType=INTEGER},
      </if>
    </set>
    where product_skn = #{productSkn,jdbcType=INTEGER}
  </update>
    <select id="selectLatestDateId" resultType="java.lang.Integer">
        select max(date_id) from product_model_value
    </select>
    <select id="selectLatestDateBySkn" resultMap="BaseResultMap" timeout="20000">
        <![CDATA[
		select * from product_model_value p
		where
		date_id = #{dateId}
		and
		p.product_skn in
		]]>
        <foreach item="item" index="index" collection="sknList"
                 open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    <select id="selectSknByDate" resultType="java.lang.Long" timeout="20000">
        SELECT product_skn FROM product_model_value where date_id = #{dateId,jdbcType=VARCHAR} limit #{pageSize}
    </select>
    <delete id="deleteBatch">
        <![CDATA[
        DELETE FROM product_model_value
        WHERE
        date_id = #{dateId,jdbcType=VARCHAR}
        AND
        ]]>
        product_skn in
        <foreach item="item" index="index" collection="sknList" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

  <select id="selectCountGroupByDateId" resultMap="MonitorResultMap">
    SELECT date_id, count(*) num FROM product_model_value where date_id in (#{yesterday}, #{beforYesterday}) GROUP BY date_id ORDER BY date_id desc
  </select>
</mapper>