UfoProductPoolDetailMapper.xml 2.77 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.ufo.dal.UfoProductPoolDetailMapper">

    <resultMap id="productPoolDetails" type="com.yoho.ufo.model.goodsmanage.ProductPoolDetails">
    </resultMap>

    <sql id="queryColumns">
        product.id, product.product_code, product.product_name, product.product_code, brand.brand_name, product_sort.sort_name
    </sql>

    <sql id="queryParam">
        WHERE product.del_status=0
        <if test="productPoolDetails.productCode != null and productPoolDetails.productCode != ''">
            and product.product_code like concat('%',#{productPoolDetails.productCode}, '%')
        </if>
        <if test="productPoolDetails.productName != null and productPoolDetails.productName != ''">
            and pool.pool_name like concat('%', #{productPoolDetails.productName}, '%')
        </if>
        <if test="productPoolDetails.brandName != null and productPoolDetails.brandName != ''">
            and brand.brand_name like concat('%', #{productPoolDetails.brandName}, '%')
        </if>
        <if test="productPoolDetails.sortName != null and productPoolDetails.sortName != ''">
            and product_sort.sort_name like concat('%', #{productPoolDetails.sortName}, '%')
        </if>
    </sql>

    <sql id="queryTable">
        FROM product_pool pool
        LEFT JOIN product_pool_detail pool_detail
        ON pool.id = pool_detail.pool_id
        LEFT JOIN product
        ON pool_detail.product_id = product.id
        LEFT JOIN brand
        ON product.brand_id = brand.id
        LEFT JOIN product_sort
        ON product.series_id = product_sort.id
    </sql>

    <select id="selectProductPoolDetailsCount" resultType="integer">
        SELECT COUNT(*)
        <include refid="queryTable"/>
        <include refid="queryParam"/>
    </select>

    <select id="getProductPoolDetailsPageList" resultMap="productPoolDetails">
        select <include refid="queryColumns"/>
        <include refid="queryTable"/>
        <include refid="queryParam"/>
        limit #{page.startIndex}, #{page.pageSize}
    </select>


    <insert id="batchInsertProductPoolDetails" parameterType="list">
        insert into product_pool_detail(pool_id, product_id, create_time) values
        <foreach collection="list" item="item" separator="," index="index">
            (#{item.poolId}, #{item.productId}, #{item.createTime})
        </foreach>
    </insert>

    <delete id="deleteProductPoolDetailsByPoolId">
        delete from product_pool_detail where pool_id = #{poolId}
    </delete>

    <delete id="deleteProductPoolDetail">
        DELETE FROM product_pool_detail WHERE pool_id = #{productPoolId} AND product_id = #{productId}
    </delete>
</mapper>