Product15DaySalesnumMapper.xml 3.23 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.Product15DaySalesNumMapper" >
  <resultMap id="BaseResultMap" type="com.yoho.search.dal.model.Product15DaySalesNum" >
    <id column="product_skn" property="productSkn" jdbcType="INTEGER" />
    <id column="date_id" property="dateId" jdbcType="INTEGER" />
    <result column="sales_num" property="salesNum" jdbcType="INTEGER" />
  </resultMap>
    <resultMap id="MonitorResultMap" type="com.yoho.search.dal.model.BigdataMonitor">
        <result column="date_id" property="dateId" jdbcType="INTEGER"/>
        <result column="num" property="num" jdbcType="INTEGER"/>
    </resultMap>
  <sql id="Base_Column_List" >
    product_skn, date_id, sales_num
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.yoho.search.dal.model.Product15DaySalesNumKey" >
    select 
    <include refid="Base_Column_List" />
    from product_15day_salesnum
    where product_skn = #{productSkn,jdbcType=INTEGER}
      and date_id = #{dateId,jdbcType=INTEGER}
      limit 1
  </select>
  <delete id="deleteByPrimaryKey" parameterType="com.yoho.search.dal.model.Product15DaySalesNumKey" >
    delete from product_15day_salesnum
    where product_skn = #{productSkn,jdbcType=INTEGER}
      and date_id = #{dateId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.yoho.search.dal.model.Product15DaySalesNum" >
    insert into product_15day_salesnum (product_skn, date_id, sales_num
      )
    values (#{productSkn,jdbcType=INTEGER}, #{dateId,jdbcType=INTEGER}, #{salesNum,jdbcType=INTEGER}
      )
  </insert>

  <update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.Product15DaySalesNum" >
    update product_15day_salesnum
    <set >
      <if test="salesNum != null" >
        sales_num = #{salesNum,jdbcType=INTEGER},
      </if>
    </set>
    where product_skn = #{productSkn,jdbcType=INTEGER}
      and date_id = #{dateId,jdbcType=INTEGER}
  </update>

  <select id="selectSalesNumOfLatestDate" resultMap="BaseResultMap" timeout="20000">
  	<![CDATA[
		select * from product_15day_salesnum p 
		where p.product_skn in
		]]>
		<foreach item="item" index="index" collection="skns"
				 open="(" separator="," close=")">
			#{item}
		</foreach>
		and date_id = #{dateid}
  </select>
  <select id="selectBySkn" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
	select * from product_15day_salesnum 
	where product_skn =#{skn}
	order by date_id desc
	limit 1
  </select>
  <select id="selectBySknAndDate" resultMap="BaseResultMap" parameterType="com.yoho.search.dal.model.Product15DaySalesNumKey" >
	select * from product_15day_salesnum 
	where product_skn = #{productSkn,jdbcType=INTEGER}
      and date_id = #{dateId,jdbcType=INTEGER}
	limit 1
  </select>
  <select id="selectLatestDateId" resultType="java.lang.Integer">
  	select max(date_id) from product_15day_salesnum 
  </select>
    <select id="selectCountGroupByDateId" resultMap="MonitorResultMap">
        SELECT date_id, count(*) num FROM product_15day_salesnum where date_id in (#{yesterday}, #{beforYesterday}) GROUP BY date_id ORDER BY date_id desc
    </select>
</mapper>