<?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.wugui.datax.admin.mapper.JobUserMapper">

    <resultMap id="JobUser" type="com.wugui.datax.admin.entity.JobUser">
        <result column="id" property="id"/>
        <result column="username" property="username"/>
        <result column="password" property="password"/>
        <result column="role" property="role" />
        <result column="permission" property="permission" />
    </resultMap>

    <sql id="Base_Column_List">
		t.id,
		t.username,
		t.password,
		t.role,
		t.permission
	</sql>

    <sql id="Show_Column_List">
		t.id,
		t.username,
		t.role,
		t.permission
	</sql>

    <select id="pageList" parameterType="java.util.HashMap" resultMap="JobUser">
        SELECT <include refid="Show_Column_List" />
        FROM job_user AS t
        <trim prefix="WHERE" prefixOverrides="AND | OR">
            <if test="username != null and username != ''">
                AND t.username like CONCAT(CONCAT('%', #{username}), '%')
            </if>
        </trim>
        ORDER BY username ASC
        LIMIT #{offset}, #{pagesize}
    </select>

    <select id="findAll" parameterType="java.util.HashMap" resultMap="JobUser">
        SELECT <include refid="Show_Column_List" />
        FROM job_user AS t
        <trim prefix="WHERE" prefixOverrides="AND | OR" >
            <if test="username != null and username != ''">
                AND t.username like CONCAT(CONCAT('%', #{username}), '%')
            </if>
        </trim>
        ORDER BY id ASC
    </select>

    <select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
        SELECT count(1)
        FROM job_user AS t
        <trim prefix="WHERE" prefixOverrides="AND | OR">
            <if test="username != null and username != ''">
                AND t.username like CONCAT(CONCAT('%', #{username}), '%')
            </if>
        </trim>
    </select>

    <select id="loadByUserName" parameterType="java.util.HashMap" resultMap="JobUser">
        SELECT
        <include refid="Base_Column_List"/>
        FROM job_user AS t
        WHERE t.username = #{username}
    </select>

    <select id="getUsersByIds" parameterType="java.util.HashMap" resultMap="JobUser">
        SELECT <include refid="Base_Column_List" />
        FROM job_user AS t
        WHERE t.username = #{username}
        WHERE t.id in
        <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </select>

    <select id="getUserById" parameterType="java.util.HashMap" resultMap="JobUser">
        SELECT
        t.id,
        t.username
        FROM job_user AS t
        WHERE t.id = #{userId}
    </select>

    <insert id="save" parameterType="com.wugui.datax.admin.entity.JobUser" useGeneratedKeys="true" keyProperty="id" >
		INSERT INTO job_user (
			username,
			password,
			role,
			permission
		) VALUES (
			#{username},
			#{password},
			#{role},
			#{permission}
		);
	</insert>

    <update id="update" parameterType="com.wugui.datax.admin.entity.JobUser" >
        UPDATE job_user
        SET
        <if test="password != null and password != ''">
            password = #{password},
        </if>
        role = #{role},
        permission = #{permission}
        WHERE id = #{id}
    </update>

    <delete id="delete" parameterType="java.util.HashMap">
		DELETE
		FROM job_user
		WHERE id = #{id}
	</delete>

</mapper>