<?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.UserDataInfoMapper">
    <resultMap id="UserDataInfoMap" type="cn.wisenergy.model.app.UserDataInfo">
        <id column="id" property="id"/>
        <result column="user_id" property="userId"/>
        <result column="invite_code" property="inviteCode"/>
        <result column="be_invited_code" property="beInvitedCode"/>
        <result column="level_status" property="levelStatus"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>

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

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

    <sql id="cols_exclude_id">
        user_id,invite_code,be_invited_code,level_status,create_time,update_time
    </sql>

    <sql id="vals">
        #{userId},#{inviteCode},#{beInvitedCode},#{levelStatus},now(),now()
    </sql>

    <sql id="updateCondition">
        <if test="userId != null">user_id = #{userId},</if>
        <if test="inviteCode != null">invite_code = #{inviteCode},</if>
        <if test="beInvitedCode != null">be_invited_code = #{beInvitedCode},</if>
        <if test="levelStatus != null">level_status = #{levelStatus},</if>
        update_time =now()
    </sql>

    <sql id="criteria">
        <if test="id != null">id = #{id}</if>
        <if test="userId != null">and user_id = #{userId}</if>
        <if test="inviteCode != null">and invite_code = #{inviteCode}</if>
        <if test="beInvitedCode != null">and be_invited_code = #{beInvitedCode}</if>
        <if test="levelStatus != null">and level_status = #{levelStatus}</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.UserDataInfo" keyProperty="id" useGeneratedKeys="true">
        insert into
        <include refid="table"/>
        (<include refid="cols_exclude_id"/>)
        value(
        <include refid="vals"/>
        )
    </insert>

    <select id="getALl" resultType="cn.wisenergy.model.app.UserDataInfo">
        select
        <include refid="cols_all"/>
        from
        <include refid="table"/>
    </select>

    <select id="getListByLevelStatus" resultType="cn.wisenergy.model.app.UserDataInfo">
        select
        <include refid="cols_all"/>
        from
        <include refid="table"/>
        where
        level_status = #{levelStatus}
    </select>

</mapper>