<?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="cn.iocoder.mall.product.dao.ProductAttrValueMapper">

    <sql id="FIELDS">
        id, attr_id, name, status, create_time
    </sql>

    <!--<select id="selectList" resultType="ProductCategoryDO">-->
        <!--SELECT-->
        <!--<include refid="FIELDS" />-->
        <!--FROM product_category-->
        <!--WHERE deleted = 0-->
    <!--</select>-->

    <select id="selectById" parameterType="Integer" resultType="ProductAttrValueDO">
        SELECT
            <include refid="FIELDS" />
        FROM product_attr_value
        WHERE id = #{id}
        AND deleted = 0
    </select>

    <!--<insert id="insert" parameterType="ProductCategoryDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">-->
        <!--INSERT INTO product_category (-->
          <!--pid, name, description, pic_url, sort,-->
          <!--status, create_time, deleted-->
        <!--) VALUES (-->
          <!--#{pid}, #{name}, #{description}, #{picUrl}, #{sort},-->
          <!--#{status}, #{createTime}, #{deleted}-->
        <!--)-->
    <!--</insert>-->

    <!--<update id="update" parameterType="ProductCategoryDO">-->
        <!--UPDATE product_category-->
        <!--<set>-->
            <!--<if test="pid != null">-->
                <!--pid = #{pid},-->
            <!--</if>-->
            <!--<if test="name != null">-->
                <!--name = #{name},-->
            <!--</if>-->
            <!--<if test="description != null">-->
                <!--description = #{description},-->
            <!--</if>-->
            <!--<if test="picUrl != null">-->
                <!--pic_url = #{picUrl},-->
            <!--</if>-->
            <!--<if test="sort != null">-->
                <!--sort = #{sort},-->
            <!--</if>-->
            <!--<if test="status != null">-->
                <!--status = #{status},-->
            <!--</if>-->
            <!--<if test="deleted != null">-->
                <!--deleted = #{deleted}-->
            <!--</if>-->
        <!--</set>-->
        <!--WHERE id = #{id}-->
    <!--</update>-->

    <select id="selectListByIds" resultType="ProductAttrValueDO">
        SELECT
            <include refid="FIELDS" />
        FROM product_attr_value
        WHERE id IN
            <foreach item="id" collection="ids" separator="," open="(" close=")" index="">
                #{id}
            </foreach>
        AND deleted = 0
    </select>

    <select id="selectListByAttrIds" resultType="ProductAttrValueDO">
        SELECT
            <include refid="FIELDS" />
        FROM product_attr_value
        WHERE attr_id IN
            <foreach item="attrId" collection="attrIds" separator="," open="(" close=")" index="">
                #{attrId}
            </foreach>
        AND deleted = 0
    </select>

    <select id="selectListByStatus" resultType="ProductAttrValueDO">
        SELECT
            <include refid="FIELDS" />
        FROM product_attr_value
        <where>
            <if test="status != null">
                status = #{status}
            </if>
            AND deleted = 0
        </where>
    </select>

    <select id="selectByAttrIdAndName"  resultType="ProductAttrValueDO">
        SELECT
        <include refid="FIELDS" />
        FROM product_attr_value
        WHERE name = #{name}
        AND deleted = 0
        LIMIT 1
    </select>

    <insert id="insert" parameterType="ProductAttrValueDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
        INSERT INTO product_attr_value (
          attr_id, name, status, create_time, deleted
        ) VALUES (
          #{attrId}, #{name}, #{status}, #{createTime}, #{deleted}
        )
    </insert>

    <update id="update" parameterType="ProductAttrValueDO">
        UPDATE product_attr_value
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="status != null">
                status = #{status},
            </if>
            <if test="deleted != null">
                deleted = #{deleted}
            </if>
        </set>
        WHERE id = #{id}
    </update>


</mapper>