<?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.stdiet.custom.mapper.SysFoodHeatStatisticsMapper">

    <resultMap type="SysFoodHeatStatistics" id="SysFoodHeatStatisticsResult">
        <result property="id"    column="id"    />
        <result property="customerHeatId"    column="customer_heat_id"    />
        <result property="ingredient"    column="ingredient"    />
        <result property="unit"    column="unit"    />
        <result property="number"    column="number"    />
        <result property="quantity"    column="quantity"    />
        <result property="edibleType"    column="edible_type"    />
        <result property="proteinQuality"    column="protein_quality"    />
        <result property="heatValue"    column="heat_value"    />
        <result property="fatQuality"    column="fat_quality"    />
        <result property="carbonWaterQuality"    column="carbon_water_quality"    />
        <result property="createTime"    column="create_time"    />
        <result property="createBy"    column="create_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="delFlag"    column="del_flag"    />

        <result property="unitName" column="unitName"></result>
    </resultMap>

    <sql id="selectSysFoodHeatStatisticsVo">
        select id, customer_heat_id, ingredient, unit, number, quantity, edible_type, protein_quality, heat_value, fat_quality, carbon_water_quality,create_time, create_by, update_time, update_by, del_flag from sys_food_heat_statistics
    </sql>

    <select id="selectSysFoodHeatStatisticsList" parameterType="SysFoodHeatStatistics" resultMap="SysFoodHeatStatisticsResult">
        select sfhs.id, sfhs.customer_heat_id, sfhs.ingredient, sfhs.unit, sfhs.number, sfhs.quantity, sfhs.edible_type, sfhs.protein_quality, sfhs.fat_quality, sfhs.carbon_water_quality,sfhs.heat_value,cusUnit.dict_label as unitName
        from sys_food_heat_statistics as  sfhs
        LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_cus_unit') AS cusUnit ON cusUnit.dict_value = sfhs.unit
        where sfhs.del_flag = 0
    </select>

    <select id="selectSysFoodHeatStatisticsById" parameterType="Long" resultMap="SysFoodHeatStatisticsResult">
        <include refid="selectSysFoodHeatStatisticsVo"/>
        where id = #{id} and del_flag = 0
    </select>

    <insert id="insertSysFoodHeatStatistics" parameterType="SysFoodHeatStatistics" useGeneratedKeys="true" keyProperty="id">
        insert into sys_food_heat_statistics
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="customerHeatId != null">customer_heat_id,</if>
            <if test="ingredient != null">ingredient,</if>
            <if test="unit != null">unit,</if>
            <if test="number != null">number,</if>
            <if test="quantity != null">quantity,</if>
            <if test="edibleType != null">edible_type,</if>
            <if test="proteinQuality != null">protein_quality,</if>
            <if test="heatValue != null">heat_value,</if>
            <if test="fatQuality != null">fat_quality,</if>
            <if test="carbonWaterQuality != null">carbon_water_quality,</if>
            <if test="createTime != null">create_time,</if>
            <if test="createBy != null">create_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="delFlag != null">del_flag,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="customerHeatId != null">#{customerHeatId},</if>
            <if test="ingredient != null">#{ingredient},</if>
            <if test="unit != null">#{unit},</if>
            <if test="number != null">#{number},</if>
            <if test="quantity != null">#{quantity},</if>
            <if test="edibleType != null">#{edibleType},</if>
            <if test="proteinQuality != null">#{proteinQuality},</if>
            <if test="heatValue != null">#{heatValue},</if>
            <if test="fatQuality != null">#{fatQuality},</if>
            <if test="carbonWaterQuality != null">#{carbonWaterQuality},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="delFlag != null">#{delFlag},</if>
        </trim>
    </insert>

    <update id="updateSysFoodHeatStatistics" parameterType="SysFoodHeatStatistics">
        update sys_food_heat_statistics
        <trim prefix="SET" suffixOverrides=",">
            <if test="customerHeatId != null">customer_heat_id = #{customerHeatId},</if>
            <if test="ingredient != null">ingredient = #{ingredient},</if>
            <if test="unit != null">unit = #{unit},</if>
            <if test="number != null">number = #{number},</if>
            <if test="quantity != null">quantity = #{quantity},</if>
            <if test="edibleType != null">edible_type = #{edibleType},</if>
            <if test="proteinQuality != null">protein_quality = #{proteinQuality},</if>
            <if test="heatValue != null">heat_value = #{heatValue},</if>
            <if test="fatQuality != null">fat_quality = #{fatQuality},</if>
            <if test="carbonWaterQuality != null">carbon_water_quality = #{carbonWaterQuality},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where id = #{id}
    </update>

    <update id="deleteSysFoodHeatStatisticsById" parameterType="Long">
        update sys_food_heat_statistics set del_flag = 1 where id = #{id}
    </update>

    <update id="deleteSysFoodHeatStatisticsByIds" parameterType="String">
        update sys_food_heat_statistics set del_flag = 1 where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </update>

    <insert id="insertFoodHeatBatch"  parameterType="java.util.List">
        insert into sys_food_heat_statistics(customer_heat_id,ingredient,unit,number,quantity) values
        <foreach collection ="list" item="food" index= "index" separator =",">
              (#{food.customerHeatId}, #{food.ingredient},#{food.unit},#{food.number},#{food.quantity})
        </foreach >
    </insert>

</mapper>