<?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.fuxi.ws.data.dao.QVisitorMapper" >
  <resultMap id="BaseResultMap" type="com.fuxi.ws.data.entity.QVisitor" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    <id column="VisitorID" property="visitorid" jdbcType="VARCHAR" />
    <result column="OpendId" property="opendid" jdbcType="VARCHAR" />
    <result column="VName" property="vname" jdbcType="VARCHAR" />
    <result column="VMobile" property="vmobile" jdbcType="VARCHAR" />
    <result column="IdCard" property="idcard" jdbcType="VARCHAR" />
    <result column="Company" property="company" jdbcType="VARCHAR" />
    <result column="CreateTime" property="createtime" jdbcType="TIMESTAMP" />
    <result column="PhotoUrl" property="photourl" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    VisitorID, OpendId, VName, VMobile, IdCard, Company, CreateTime, PhotoUrl
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.fuxi.ws.data.entity.QVisitorExample" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    select
    <if test="distinct" >
      distinct
    </if>
    'false' as QUERYID,
    <include refid="Base_Column_List" />
    from Q_Visitor
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    select 
    <include refid="Base_Column_List" />
    from Q_Visitor
    where VisitorID = #{visitorid,jdbcType=VARCHAR}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    delete from Q_Visitor
    where VisitorID = #{visitorid,jdbcType=VARCHAR}
  </delete>
  <insert id="insert" parameterType="com.fuxi.ws.data.entity.QVisitor" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    insert into Q_Visitor (VisitorID, OpendId, VName, 
      VMobile, IdCard, Company, 
      CreateTime, PhotoUrl)
    values (#{visitorid,jdbcType=VARCHAR}, #{opendid,jdbcType=VARCHAR}, #{vname,jdbcType=VARCHAR}, 
      #{vmobile,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR}, #{company,jdbcType=VARCHAR}, 
      #{createtime,jdbcType=TIMESTAMP}, #{photourl,jdbcType=VARCHAR})
  </insert>
  <insert id="insertSelective" parameterType="com.fuxi.ws.data.entity.QVisitor" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    insert into Q_Visitor
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="visitorid != null" >
        VisitorID,
      </if>
      <if test="opendid != null" >
        OpendId,
      </if>
      <if test="vname != null" >
        VName,
      </if>
      <if test="vmobile != null" >
        VMobile,
      </if>
      <if test="idcard != null" >
        IdCard,
      </if>
      <if test="company != null" >
        Company,
      </if>
      <if test="createtime != null" >
        CreateTime,
      </if>
      <if test="photourl != null" >
        PhotoUrl,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="visitorid != null" >
        #{visitorid,jdbcType=VARCHAR},
      </if>
      <if test="opendid != null" >
        #{opendid,jdbcType=VARCHAR},
      </if>
      <if test="vname != null" >
        #{vname,jdbcType=VARCHAR},
      </if>
      <if test="vmobile != null" >
        #{vmobile,jdbcType=VARCHAR},
      </if>
      <if test="idcard != null" >
        #{idcard,jdbcType=VARCHAR},
      </if>
      <if test="company != null" >
        #{company,jdbcType=VARCHAR},
      </if>
      <if test="createtime != null" >
        #{createtime,jdbcType=TIMESTAMP},
      </if>
      <if test="photourl != null" >
        #{photourl,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.fuxi.ws.data.entity.QVisitorExample" resultType="java.lang.Integer" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    select count(*) from Q_Visitor
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByPrimaryKeySelective" parameterType="com.fuxi.ws.data.entity.QVisitor" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    update Q_Visitor
    <set >
      <if test="opendid != null" >
        OpendId = #{opendid,jdbcType=VARCHAR},
      </if>
      <if test="vname != null" >
        VName = #{vname,jdbcType=VARCHAR},
      </if>
      <if test="vmobile != null" >
        VMobile = #{vmobile,jdbcType=VARCHAR},
      </if>
      <if test="idcard != null" >
        IdCard = #{idcard,jdbcType=VARCHAR},
      </if>
      <if test="company != null" >
        Company = #{company,jdbcType=VARCHAR},
      </if>
      <if test="createtime != null" >
        CreateTime = #{createtime,jdbcType=TIMESTAMP},
      </if>
      <if test="photourl != null" >
        PhotoUrl = #{photourl,jdbcType=VARCHAR},
      </if>
    </set>
    where VisitorID = #{visitorid,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.fuxi.ws.data.entity.QVisitor" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Sep 09 17:25:32 CST 2016.
    -->
    update Q_Visitor
    set OpendId = #{opendid,jdbcType=VARCHAR},
      VName = #{vname,jdbcType=VARCHAR},
      VMobile = #{vmobile,jdbcType=VARCHAR},
      IdCard = #{idcard,jdbcType=VARCHAR},
      Company = #{company,jdbcType=VARCHAR},
      CreateTime = #{createtime,jdbcType=TIMESTAMP},
      PhotoUrl = #{photourl,jdbcType=VARCHAR}
    where VisitorID = #{visitorid,jdbcType=VARCHAR}
  </update>
  
  <select id="VisitorAndRecord" resultType="java.util.LinkedHashMap">
  	select top 1 a.visitorid,a.vname,a.vmobile,a.company,a.photourl,b.id,b.employeeid,b.number,
		case b.reason when 1 then '公务' when 2 then '亲友访问' when 3 then '面试' 
		else '其他' end as reason,b.statc
		from Q_Visitor as a left join Q_VisitorRecord as b on a.VisitorID=b.VisitorID
	where ${conditions}
  </select>
  
  <select id="selectVisitor" resultType="java.util.LinkedHashMap">
  	select VName,VMobile,IdCard,Company,PhotoUrl,
  	convert(varchar(19),CreateTime,120) as CreateTime
  	 from Q_Visitor
  	
  	<if test="conditions != null and conditions != ''">
  		where ${conditions}
  	</if>
  
  </select>
  
</mapper>