<?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.wisenergy.mapper.MonthAwardMapper">
    <resultMap id="monthMap" type="cn.wisenergy.model.app.MonthAward">
        <id column="id" property="id"/>
        <result column="growth_award" property="growthAward"/>
        <result column="award_total" property="awardTotal"/>
        <result column="month_award_total" property="monthAwardTotal"/>
        <result column="month_increased" property="monthIncreased"/>
        <result column="gold_award" property="goldAward"/>
        <result column="farmer_award" property="farmerAward"/>
        <result column="forest_start_award" property="forestStartAward"/>
        <result column="partner_award" property="partnerAward"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>

    <sql id="table">
        month_award
    </sql>

    <sql id="cols_all">
        id,
        <include refid="cols_exclude_id"/>
    </sql>

    <sql id="cols_exclude_id">
        growth_award,award_total,month_award_total,month_increased,gold_award,farmer_award, forest_start_award,
        partner_award,create_time,update_time
    </sql>

    <sql id="vals">
        #{growthAward},#{awardTotal},#{monthAwardTotal},#{monthIncreased},#{goldAward},#{farmerAward},
        #{forestStartAward}, #{partnerAward},now(),now()
    </sql>

    <sql id="updateCondition">
        <if test="growthAward != null">growth_award =#{growthAward},</if>
        <if test="awardTotal != null">award_total = #{awardTotal},</if>
        <if test="monthAwardTotal != null">month_award_total = #{monthAwardTotal},</if>
        <if test="monthIncreased != null">month_increased =#{monthIncreased},</if>
        <if test="goldAward != null">gold_award =#{goldAward},</if>
        <if test="farmerAward != null">farmer_award =#{farmerAward},</if>
        <if test="forestStartAward != null">forest_start_award =#{forestStartAward},</if>
        <if test="partnerAward != null">partner_award =#{partnerAward},</if>
        update_time =now()
    </sql>

    <sql id="criteria">
        <if test="id != null">id = #{id}</if>
        <if test="growthAward != null">and growth_award =#{growthAward}</if>
        <if test="awardTotal != null">and award_total = #{awardTotal}</if>
        <if test="monthAwardTotal != null">and month_award_total = #{monthAwardTotal}</if>
        <if test="monthIncreased != null">and month_increased =#{monthIncreased}</if>
        <if test="goldAward != null">and gold_award =#{goldAward}</if>
        <if test="farmerAward != null">and farmer_award =#{farmerAward}</if>
        <if test="forestStartAward != null">and forest_start_award =#{forestStartAward}</if>
        <if test="partnerAward != null">and partner_award =#{partnerAward}</if>
        <if test="createTime != null">and create_time &gt;= #{createTime}</if>
        <if test="updateTime != null">and #{updateTime} &gt;= update_time</if>
    </sql>

    <insert id="add" parameterType="cn.wisenergy.model.app.MonthAward" keyProperty="id" useGeneratedKeys="true">
        insert into
        <include refid="table"/>
        (<include refid="cols_exclude_id"/>)
        value(
        <include refid="vals"/>
        )
    </insert>

    <update id="edit" parameterType="cn.wisenergy.model.app.MonthAward">
        UPDATE
        <include refid="table"/>
        <set>
            <include refid="updateCondition"/>
        </set>
        <where>
            id = #{id}
        </where>
    </update>

    <delete id="delById" parameterType="java.lang.Integer">
        delete from
        <include refid="table"/>
        where id = #{id}
    </delete>

    <select id="getByTime" resultType="cn.wisenergy.model.app.MonthAward">
        select
        <include refid="cols_all"/>
        from
        <include refid="table"/>
        <where>
            <if test="yearMonth != null">
                YEAR(create_time) = YEAR(#{yearMonth})
                AND MONTH(create_time) = MONTH(#{yearMonth})
            </if>
            order by create_time desc
            limit 1
        </where>
    </select>

</mapper>