StorageMapper.xml 8.45 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.StorageMapper">
    <resultMap id="BaseResultMap" type="com.yoho.search.dal.model.Storage">
        <id column="erp_sku_id" property="erpSkuId" jdbcType="INTEGER"/>
        <result column="product_id" property="productId" jdbcType="INTEGER"/>
        <result column="goods_id" property="goodsId" jdbcType="INTEGER"/>
        <result column="goods_dimension_id" property="goodsDimensionId"
                jdbcType="INTEGER"/>
        <result column="storage_num" property="storageNum" jdbcType="INTEGER"/>
        <result column="sales_num" property="salesNum" jdbcType="INTEGER"/>
        <result column="frozen_num" property="frozenNum" jdbcType="INTEGER"/>
        <result column="storeroom" property="storeroom" jdbcType="INTEGER"/>
        <result column="status" property="status" jdbcType="INTEGER"/>
    </resultMap>
    <sql id="Base_Column_List">
		erp_sku_id, product_id, goods_id, goods_dimension_id, storage_num, sales_num,
		frozen_num,
		storeroom, status
	</sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
            parameterType="java.lang.Integer" timeout="20000">
        select
        <include refid="Base_Column_List"/>
        from storage
        where erp_sku_id = #{erpSkuId,jdbcType=INTEGER}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" timeout="20000">
		delete from storage
		where erp_sku_id = #{erpSkuId,jdbcType=INTEGER}
	</delete>
    <insert id="insert" parameterType="com.yoho.search.dal.model.Storage" timeout="20000">
		insert ignore into storage (erp_sku_id, product_id, goods_id,
		goods_dimension_id, storage_num, sales_num,
		frozen_num, storeroom, status
		)
		values (#{erpSkuId,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER},
		#{goodsId,jdbcType=INTEGER},
		#{goodsDimensionId,jdbcType=INTEGER}, #{storageNum,jdbcType=INTEGER}, #{salesNum,jdbcType=INTEGER},
		#{frozenNum,jdbcType=INTEGER}, #{storeroom,jdbcType=INTEGER},
		#{status,jdbcType=INTEGER}
		)
	</insert>
    <insert id="insertSelective" parameterType="com.yoho.search.dal.model.Storage" timeout="20000">
        insert ignore into storage
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="erpSkuId != null">
                erp_sku_id,
            </if>
            <if test="productId != null">
                product_id,
            </if>
            <if test="goodsId != null">
                goods_id,
            </if>
            <if test="goodsDimensionId != null">
                goods_dimension_id,
            </if>
            <if test="storageNum != null">
                storage_num,
            </if>
            <if test="salesNum != null">
                sales_num,
            </if>
            <if test="frozenNum != null">
                frozen_num,
            </if>
            <if test="storeroom != null">
                storeroom,
            </if>
            <if test="status != null">
                status,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="erpSkuId != null">
                #{erpSkuId,jdbcType=INTEGER},
            </if>
            <if test="productId != null">
                #{productId,jdbcType=INTEGER},
            </if>
            <if test="goodsId != null">
                #{goodsId,jdbcType=INTEGER},
            </if>
            <if test="goodsDimensionId != null">
                #{goodsDimensionId,jdbcType=INTEGER},
            </if>
            <if test="storageNum != null">
                #{storageNum,jdbcType=INTEGER},
            </if>
            <if test="salesNum != null">
                #{salesNum,jdbcType=INTEGER},
            </if>
            <if test="frozenNum != null">
                #{frozenNum,jdbcType=INTEGER},
            </if>
            <if test="storeroom != null">
                #{storeroom,jdbcType=INTEGER},
            </if>
            <if test="status != null">
                #{status,jdbcType=INTEGER},
            </if>
        </trim>
    </insert>
    <update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.Storage" timeout="20000">
        update storage
        <set>
            <if test="productId != null">
                product_id = #{productId,jdbcType=INTEGER},
            </if>
            <if test="goodsId != null">
                goods_id = #{goodsId,jdbcType=INTEGER},
            </if>
            <if test="goodsDimensionId != null">
                goods_dimension_id = #{goodsDimensionId,jdbcType=INTEGER},
            </if>
            <if test="storageNum != null">
                storage_num = #{storageNum,jdbcType=INTEGER},
            </if>
            <if test="salesNum != null">
                sales_num = #{salesNum,jdbcType=INTEGER},
            </if>
            <if test="frozenNum != null">
                frozen_num = #{frozenNum,jdbcType=INTEGER},
            </if>
            <if test="storeroom != null">
                storeroom = #{storeroom,jdbcType=INTEGER},
            </if>
            <if test="status != null">
                status = #{status,jdbcType=INTEGER},
            </if>
        </set>
        where erp_sku_id = #{erpSkuId,jdbcType=INTEGER}
    </update>
    <update id="updateByPrimaryKey" parameterType="com.yoho.search.dal.model.Storage" timeout="20000">
		update storage
		set product_id = #{productId,jdbcType=INTEGER},
		goods_id = #{goodsId,jdbcType=INTEGER},
		goods_dimension_id = #{goodsDimensionId,jdbcType=INTEGER},
		storage_num = #{storageNum,jdbcType=INTEGER},
		sales_num = #{salesNum,jdbcType=INTEGER},
		frozen_num = #{frozenNum,jdbcType=INTEGER},
		storeroom = #{storeroom,jdbcType=INTEGER},
		status = #{status,jdbcType=INTEGER}
		where erp_sku_id = #{erpSkuId,jdbcType=INTEGER}
	</update>
    <select id="count" resultType="java.lang.Integer" timeout="20000">
		SELECT count(1) FROM storage
	</select>
    <select id="getPageLists" resultMap="BaseResultMap" timeout="20000">
        select
        <include refid="Base_Column_List"/>
        from storage limit #{offset},#{pageSize}
    </select>
    <select id="getStoragesByProductId" resultMap="BaseResultMap"
            parameterType="java.lang.Integer" timeout="20000">
		SELECT
		t.erp_sku_id, t.product_id, t.goods_id, t.goods_dimension_id, t.storage_num,
		t.sales_num, t.frozen_num,
		t.storeroom, t.status
		FROM storage t,goods g WHERE t.`goods_id`=g.id AND g.`status`=1 and
		t.product_id= #{productId,jdbcType=INTEGER}
	</select>
    <select id="getByGoodsIds" resultMap="BaseResultMap" timeout="20000">
        select
        <include refid="Base_Column_List"/>
        from storage where goods_id in
        <foreach item="item" index="index" collection="list"
                 open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    <select id="getByErpSkuIds" resultMap="BaseResultMap" timeout="20000">
        select
        <include refid="Base_Column_List"/>
        from storage where erp_sku_id in
        <foreach item="item" index="index" collection="list"
                 open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    <select id="getByProductIds" resultMap="BaseResultMap" timeout="20000">
        select
        <include refid="Base_Column_List"/>
        from storage where product_id in
        <foreach item="item" index="index" collection="list"
                 open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    
    <resultMap id="ProductSizes" type="com.yoho.search.dal.model.ProductSizes">
        <result column="product_id" property="productId" jdbcType="INTEGER"/>
        <result column="size_ids" property="sizeIds" jdbcType="VARCHAR"/>
        <result column="sales_num" property="salesNum" jdbcType="INTEGER"/>
        <result column="storage_num" property="storageNum" jdbcType="INTEGER"/>
    </resultMap>
    <select id="getProductSizes" resultMap="ProductSizes"
            parameterType="java.lang.Integer" timeout="20000">
		<![CDATA[
		SELECT
	`t`.`product_id` AS `product_id`,
	group_concat(
		DISTINCT `t`.`goods_dimension_id` SEPARATOR ','
	) AS `size_ids`,
	sum(`t`.`storage_num`) AS `storage_num`
FROM
	`storage` `t`
WHERE
`t`.`erp_sku_id` in]]>
	<foreach item="item" index="index" collection="list"
				 open="(" separator="," close=")">
			#{item}
		</foreach>
      GROUP BY
	`t`.`product_id`
    </select>

</mapper>