<?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.stylefeng.guns.modular.system.dao.UserMgrDao">

	<sql id="Base_Column_List">
		id, account, name, birthday, sex, email, avatar,
		phone, roleid,
		deptid, status,
		createtime, version
	</sql>

	<sql id="Base_Column_List_With_Pwd">
		id, account, name, birthday,password, sex, email, avatar,
		phone, roleid,salt,
		deptid, status,
		createtime, version
	</sql>

	<select id="selectUsers" resultType="map">
		select
		<include refid="Base_Column_List" />
		from sys_user
		where status != 3
		<if test="name != null and name != ''">
			and (phone like CONCAT('%',#{name},'%')
			or account like CONCAT('%',#{name},'%')
			or name like CONCAT('%',#{name},'%'))
		</if>
		<if test="deptid != null and deptid != 0">
			and (deptid = #{deptid} or deptid in ( select id from sys_dept where pids like CONCAT('%[', #{deptid}, ']%') ))
		</if>
		<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
			and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
		</if>
	</select>

	<update id="setStatus">
		update sys_user set status = #{status} where id =
		#{userId}
	</update>

	<update id="changePwd">
		update sys_user set password = #{pwd} where id =
		#{userId}
	</update>

	<update id="setRoles">
		update sys_user set roleid = #{roleIds} where id =
		#{userId}
	</update>

	<select id="getByAccount" resultType="user">
		select
		<include refid="Base_Column_List_With_Pwd" />
		from sys_user where account = #{account} and status != 3
	</select>

</mapper>