<?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.WVipticketMapper">
  <resultMap id="BaseResultMap" type="com.fuxi.ws.data.entity.WVipticket">
    <id column="TicketNo" jdbcType="BIGINT" property="ticketno" />
    <result column="Vipid" jdbcType="VARCHAR" property="vipid" />
    <result column="EmployeeID" jdbcType="VARCHAR" property="employeeid" />
    <result column="TicketID" jdbcType="BIGINT" property="ticketid" />
    <result column="BeginTime" jdbcType="TIMESTAMP" property="begintime" />
    <result column="EndTime" jdbcType="TIMESTAMP" property="endtime" />
    <result column="GetTime" jdbcType="TIMESTAMP" property="gettime" />
    <result column="UseTime" jdbcType="TIMESTAMP" property="usetime" />
    <result column="EShopOrderID" jdbcType="INTEGER" property="eshoporderid" />
    <result column="TicketStyle" jdbcType="VARCHAR" property="ticketstyle" />
    <result column="GuideID" jdbcType="VARCHAR" property="guideid" />
    <result column="DepartmentID" jdbcType="VARCHAR" property="departmentid" />
    <result column="Status" jdbcType="TINYINT" property="status" />
    <result column="ERPTicketNo" jdbcType="VARCHAR" property="erpticketno" />
    <result column="Interfacememo" jdbcType="TINYINT" property="interfacememo" />
    <result column="EepOrderNo" jdbcType="VARCHAR" property="eeporderno" />
    <result column="CashPaper" jdbcType="DECIMAL" property="cashpaper" />
    <result column="PresentFlag" jdbcType="TINYINT" property="presentflag" />
    <result column="PresentVipid" jdbcType="VARCHAR" property="presentvipid" />
    <result column="PresentDate" jdbcType="TIMESTAMP" property="presentdate" />
    <result column="GiftCardNo" jdbcType="VARCHAR" property="giftcardno" />
  </resultMap>
  <sql id="Example_Where_Clause">
    <where>
      <foreach collection="oredCriteria" item="criteria" separator="or">
        <if test="criteria.valid">
          <trim prefix="(" prefixOverrides="and" suffix=")">
            <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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause">
    <where>
      <foreach collection="example.oredCriteria" item="criteria" separator="or">
        <if test="criteria.valid">
          <trim prefix="(" prefixOverrides="and" suffix=")">
            <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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List">
    TicketNo, Vipid, EmployeeID, TicketID, BeginTime, EndTime, GetTime, UseTime, EShopOrderID, 
    TicketStyle, GuideID, DepartmentID, Status, ERPTicketNo, Interfacememo, EepOrderNo, 
    CashPaper, PresentFlag, PresentVipid, PresentDate, GiftCardNo
  </sql>
  <select id="selectByExample" parameterType="com.fuxi.ws.data.entity.WVipticketExample" resultMap="BaseResultMap">
    select
    <if test="distinct">
      distinct
    </if>
    'true' as QUERYID,
    <include refid="Base_Column_List" />
    from W_VipTicket
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null">
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from W_VipTicket
    where TicketNo = #{ticketno,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
    delete from W_VipTicket
    where TicketNo = #{ticketno,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByExample" parameterType="com.fuxi.ws.data.entity.WVipticketExample">
    delete from W_VipTicket
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.fuxi.ws.data.entity.WVipticket">
    insert into W_VipTicket (TicketNo, Vipid, EmployeeID, 
      TicketID, BeginTime, EndTime, 
      GetTime, UseTime, EShopOrderID, 
      TicketStyle, GuideID, DepartmentID, 
      Status, ERPTicketNo, Interfacememo, 
      EepOrderNo, CashPaper, PresentFlag, 
      PresentVipid, PresentDate, GiftCardNo
      )
    values (#{ticketno,jdbcType=BIGINT}, #{vipid,jdbcType=VARCHAR}, #{employeeid,jdbcType=VARCHAR}, 
      #{ticketid,jdbcType=BIGINT}, #{begintime,jdbcType=TIMESTAMP}, #{endtime,jdbcType=TIMESTAMP}, 
      #{gettime,jdbcType=TIMESTAMP}, #{usetime,jdbcType=TIMESTAMP}, #{eshoporderid,jdbcType=INTEGER}, 
      #{ticketstyle,jdbcType=VARCHAR}, #{guideid,jdbcType=VARCHAR}, #{departmentid,jdbcType=VARCHAR}, 
      #{status,jdbcType=TINYINT}, #{erpticketno,jdbcType=VARCHAR}, #{interfacememo,jdbcType=TINYINT}, 
      #{eeporderno,jdbcType=VARCHAR}, #{cashpaper,jdbcType=DECIMAL}, #{presentflag,jdbcType=TINYINT}, 
      #{presentvipid,jdbcType=VARCHAR}, #{presentdate,jdbcType=TIMESTAMP}, #{giftcardno,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.fuxi.ws.data.entity.WVipticket">
    insert into W_VipTicket
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="ticketno != null">
        TicketNo,
      </if>
      <if test="vipid != null">
        Vipid,
      </if>
      <if test="employeeid != null">
        EmployeeID,
      </if>
      <if test="ticketid != null">
        TicketID,
      </if>
      <if test="begintime != null">
        BeginTime,
      </if>
      <if test="endtime != null">
        EndTime,
      </if>
      <if test="gettime != null">
        GetTime,
      </if>
      <if test="usetime != null">
        UseTime,
      </if>
      <if test="eshoporderid != null">
        EShopOrderID,
      </if>
      <if test="ticketstyle != null">
        TicketStyle,
      </if>
      <if test="guideid != null">
        GuideID,
      </if>
      <if test="departmentid != null">
        DepartmentID,
      </if>
      <if test="status != null">
        Status,
      </if>
      <if test="erpticketno != null">
        ERPTicketNo,
      </if>
      <if test="interfacememo != null">
        Interfacememo,
      </if>
      <if test="eeporderno != null">
        EepOrderNo,
      </if>
      <if test="cashpaper != null">
        CashPaper,
      </if>
      <if test="presentflag != null">
        PresentFlag,
      </if>
      <if test="presentvipid != null">
        PresentVipid,
      </if>
      <if test="presentdate != null">
        PresentDate,
      </if>
      <if test="giftcardno != null">
        GiftCardNo,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="ticketno != null">
        #{ticketno,jdbcType=BIGINT},
      </if>
      <if test="vipid != null">
        #{vipid,jdbcType=VARCHAR},
      </if>
      <if test="employeeid != null">
        #{employeeid,jdbcType=VARCHAR},
      </if>
      <if test="ticketid != null">
        #{ticketid,jdbcType=BIGINT},
      </if>
      <if test="begintime != null">
        #{begintime,jdbcType=TIMESTAMP},
      </if>
      <if test="endtime != null">
        #{endtime,jdbcType=TIMESTAMP},
      </if>
      <if test="gettime != null">
        #{gettime,jdbcType=TIMESTAMP},
      </if>
      <if test="usetime != null">
        #{usetime,jdbcType=TIMESTAMP},
      </if>
      <if test="eshoporderid != null">
        #{eshoporderid,jdbcType=INTEGER},
      </if>
      <if test="ticketstyle != null">
        #{ticketstyle,jdbcType=VARCHAR},
      </if>
      <if test="guideid != null">
        #{guideid,jdbcType=VARCHAR},
      </if>
      <if test="departmentid != null">
        #{departmentid,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        #{status,jdbcType=TINYINT},
      </if>
      <if test="erpticketno != null">
        #{erpticketno,jdbcType=VARCHAR},
      </if>
      <if test="interfacememo != null">
        #{interfacememo,jdbcType=TINYINT},
      </if>
      <if test="eeporderno != null">
        #{eeporderno,jdbcType=VARCHAR},
      </if>
      <if test="cashpaper != null">
        #{cashpaper,jdbcType=DECIMAL},
      </if>
      <if test="presentflag != null">
        #{presentflag,jdbcType=TINYINT},
      </if>
      <if test="presentvipid != null">
        #{presentvipid,jdbcType=VARCHAR},
      </if>
      <if test="presentdate != null">
        #{presentdate,jdbcType=TIMESTAMP},
      </if>
      <if test="giftcardno != null">
        #{giftcardno,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.fuxi.ws.data.entity.WVipticketExample" resultType="java.lang.Integer">
    select count(*) from W_VipTicket
    <if test="_parameter != null">
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map">
    update W_VipTicket
    <set>
      <if test="record.ticketno != null">
        TicketNo = #{record.ticketno,jdbcType=BIGINT},
      </if>
      <if test="record.vipid != null">
        Vipid = #{record.vipid,jdbcType=VARCHAR},
      </if>
      <if test="record.employeeid != null">
        EmployeeID = #{record.employeeid,jdbcType=VARCHAR},
      </if>
      <if test="record.ticketid != null">
        TicketID = #{record.ticketid,jdbcType=BIGINT},
      </if>
      <if test="record.begintime != null">
        BeginTime = #{record.begintime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.endtime != null">
        EndTime = #{record.endtime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.gettime != null">
        GetTime = #{record.gettime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.usetime != null">
        UseTime = #{record.usetime,jdbcType=TIMESTAMP},
      </if>
      <if test="record.eshoporderid != null">
        EShopOrderID = #{record.eshoporderid,jdbcType=INTEGER},
      </if>
      <if test="record.ticketstyle != null">
        TicketStyle = #{record.ticketstyle,jdbcType=VARCHAR},
      </if>
      <if test="record.guideid != null">
        GuideID = #{record.guideid,jdbcType=VARCHAR},
      </if>
      <if test="record.departmentid != null">
        DepartmentID = #{record.departmentid,jdbcType=VARCHAR},
      </if>
      <if test="record.status != null">
        Status = #{record.status,jdbcType=TINYINT},
      </if>
      <if test="record.erpticketno != null">
        ERPTicketNo = #{record.erpticketno,jdbcType=VARCHAR},
      </if>
      <if test="record.interfacememo != null">
        Interfacememo = #{record.interfacememo,jdbcType=TINYINT},
      </if>
      <if test="record.eeporderno != null">
        EepOrderNo = #{record.eeporderno,jdbcType=VARCHAR},
      </if>
      <if test="record.cashpaper != null">
        CashPaper = #{record.cashpaper,jdbcType=DECIMAL},
      </if>
      <if test="record.presentflag != null">
        PresentFlag = #{record.presentflag,jdbcType=TINYINT},
      </if>
      <if test="record.presentvipid != null">
        PresentVipid = #{record.presentvipid,jdbcType=VARCHAR},
      </if>
      <if test="record.presentdate != null">
        PresentDate = #{record.presentdate,jdbcType=TIMESTAMP},
      </if>
      <if test="record.giftcardno != null">
        GiftCardNo = #{record.giftcardno,jdbcType=VARCHAR},
      </if>
    </set>
    <if test="_parameter != null">
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map">
    update W_VipTicket
    set TicketNo = #{record.ticketno,jdbcType=BIGINT},
      Vipid = #{record.vipid,jdbcType=VARCHAR},
      EmployeeID = #{record.employeeid,jdbcType=VARCHAR},
      TicketID = #{record.ticketid,jdbcType=BIGINT},
      BeginTime = #{record.begintime,jdbcType=TIMESTAMP},
      EndTime = #{record.endtime,jdbcType=TIMESTAMP},
      GetTime = #{record.gettime,jdbcType=TIMESTAMP},
      UseTime = #{record.usetime,jdbcType=TIMESTAMP},
      EShopOrderID = #{record.eshoporderid,jdbcType=INTEGER},
      TicketStyle = #{record.ticketstyle,jdbcType=VARCHAR},
      GuideID = #{record.guideid,jdbcType=VARCHAR},
      DepartmentID = #{record.departmentid,jdbcType=VARCHAR},
      Status = #{record.status,jdbcType=TINYINT},
      ERPTicketNo = #{record.erpticketno,jdbcType=VARCHAR},
      Interfacememo = #{record.interfacememo,jdbcType=TINYINT},
      EepOrderNo = #{record.eeporderno,jdbcType=VARCHAR},
      CashPaper = #{record.cashpaper,jdbcType=DECIMAL},
      PresentFlag = #{record.presentflag,jdbcType=TINYINT},
      PresentVipid = #{record.presentvipid,jdbcType=VARCHAR},
      PresentDate = #{record.presentdate,jdbcType=TIMESTAMP},
      GiftCardNo = #{record.giftcardno,jdbcType=VARCHAR}
    <if test="_parameter != null">
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.fuxi.ws.data.entity.WVipticket">
    update W_VipTicket
    <set>
      <if test="vipid != null">
        Vipid = #{vipid,jdbcType=VARCHAR},
      </if>
      <if test="employeeid != null">
        EmployeeID = #{employeeid,jdbcType=VARCHAR},
      </if>
      <if test="ticketid != null">
        TicketID = #{ticketid,jdbcType=BIGINT},
      </if>
      <if test="begintime != null">
        BeginTime = #{begintime,jdbcType=TIMESTAMP},
      </if>
      <if test="endtime != null">
        EndTime = #{endtime,jdbcType=TIMESTAMP},
      </if>
      <if test="gettime != null">
        GetTime = #{gettime,jdbcType=TIMESTAMP},
      </if>
      <if test="usetime != null">
        UseTime = #{usetime,jdbcType=TIMESTAMP},
      </if>
      <if test="eshoporderid != null">
        EShopOrderID = #{eshoporderid,jdbcType=INTEGER},
      </if>
      <if test="ticketstyle != null">
        TicketStyle = #{ticketstyle,jdbcType=VARCHAR},
      </if>
      <if test="guideid != null">
        GuideID = #{guideid,jdbcType=VARCHAR},
      </if>
      <if test="departmentid != null">
        DepartmentID = #{departmentid,jdbcType=VARCHAR},
      </if>
      <if test="status != null">
        Status = #{status,jdbcType=TINYINT},
      </if>
      <if test="erpticketno != null">
        ERPTicketNo = #{erpticketno,jdbcType=VARCHAR},
      </if>
      <if test="interfacememo != null">
        Interfacememo = #{interfacememo,jdbcType=TINYINT},
      </if>
      <if test="eeporderno != null">
        EepOrderNo = #{eeporderno,jdbcType=VARCHAR},
      </if>
      <if test="cashpaper != null">
        CashPaper = #{cashpaper,jdbcType=DECIMAL},
      </if>
      <if test="presentflag != null">
        PresentFlag = #{presentflag,jdbcType=TINYINT},
      </if>
      <if test="presentvipid != null">
        PresentVipid = #{presentvipid,jdbcType=VARCHAR},
      </if>
      <if test="presentdate != null">
        PresentDate = #{presentdate,jdbcType=TIMESTAMP},
      </if>
      <if test="giftcardno != null">
        GiftCardNo = #{giftcardno,jdbcType=VARCHAR},
      </if>
    </set>
    where TicketNo = #{ticketno,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.fuxi.ws.data.entity.WVipticket">
    update W_VipTicket
    set Vipid = #{vipid,jdbcType=VARCHAR},
      EmployeeID = #{employeeid,jdbcType=VARCHAR},
      TicketID = #{ticketid,jdbcType=BIGINT},
      BeginTime = #{begintime,jdbcType=TIMESTAMP},
      EndTime = #{endtime,jdbcType=TIMESTAMP},
      GetTime = #{gettime,jdbcType=TIMESTAMP},
      UseTime = #{usetime,jdbcType=TIMESTAMP},
      EShopOrderID = #{eshoporderid,jdbcType=INTEGER},
      TicketStyle = #{ticketstyle,jdbcType=VARCHAR},
      GuideID = #{guideid,jdbcType=VARCHAR},
      DepartmentID = #{departmentid,jdbcType=VARCHAR},
      Status = #{status,jdbcType=TINYINT},
      ERPTicketNo = #{erpticketno,jdbcType=VARCHAR},
      Interfacememo = #{interfacememo,jdbcType=TINYINT},
      EepOrderNo = #{eeporderno,jdbcType=VARCHAR},
      CashPaper = #{cashpaper,jdbcType=DECIMAL},
      PresentFlag = #{presentflag,jdbcType=TINYINT},
      PresentVipid = #{presentvipid,jdbcType=VARCHAR},
      PresentDate = #{presentdate,jdbcType=TIMESTAMP},
      GiftCardNo = #{giftcardno,jdbcType=VARCHAR}
    where TicketNo = #{ticketno,jdbcType=BIGINT}
  </update>
  <select id="vipticketlist" resultType="java.util.LinkedHashMap">
	select
	CONVERT(varchar(10),t.UseTime, 121) AS UseTime,t.EepOrderNo as OrderNo,tk.Parvalue,tk.TicketName,t.TicketNo,
	v.VIP,v.MobilePhone,d.Department,e.Name,tk.BuyPrice,isnull(t.CashPaper,eo.CashPaper) CashPaper,eo.AllotSales
	from W_VipTicket
	as t inner join W_Ticket AS tk
	on t.TicketID=tk.TicketID
	inner join VIP as v on t.Vipid=v.VIPID
	left join Employee as e on e.EmployeeID=t.GuideID
	left join Department as d on t.DepartmentID=d.DepartmentID
	LEFT JOIN WD_Orders as eo on eo.SourceOrderID=t.EepOrderNo
	where 1=1
	<if test="conditions != null and conditions != ''">
			  ${conditions}  
	</if>
	 order by t.UseTime desc
	</select>
		
	<select id="getUsableTicket" resultType="java.util.LinkedHashMap">
		select * from (select a.TicketNo,c.MinConsumption,c.Parvalue,''
		GoodsID,c.UseScene,c.UseShop,d.DepartmentID from W_VipTicket a
		inner
		join W_Ticket c on a.TicketID=c.TicketID
		left join W_TicketDept d on
		a.TicketID=d.TicketID and d.DepartmentID in
		(select ItemValue from
		W_Config where ConfigID=30)
		where a.Status=0 and
		isnull(a.BeginTime,c.BeginTime)<![CDATA[<]]>=GETDATE()
		and isnull(a.EndTime,c.EndTime)<![CDATA[>]]>=GETDATE()
		and a.Vipid=#{ vipid } and c.UseScene='1'
		union
		select
		a.TicketNo,c.MinConsumption,c.Parvalue,b.GoodsID,c.UseScene,c.UseShop,d.DepartmentID
		from W_VipTicket a
		join W_TicketGoods b on a.TicketID=b.TicketID
		inner
		join W_Ticket c on a.TicketID=c.TicketID
		left join W_TicketDept d on
		a.TicketID=d.TicketID and d.DepartmentID in
		(select ItemValue from
		W_Config where ConfigID=30)
		where a.Status=0 and
		isnull(a.BeginTime,c.BeginTime)<![CDATA[<]]>=GETDATE()
		and isnull(a.EndTime,c.EndTime)<![CDATA[>]]>=GETDATE()
		and a.Vipid=#{ vipid } and c.UseScene in ('2','3')
		<if test="list.size() &gt;0">
			and b.GoodsID in
			<foreach close=")" collection="list" index="index" item="list" open="(" separator=",">
				#{list}
			</foreach>
		</if>
		)t
		order
		by
		t.TicketNo
	</select>

	<select id="getOrderTicket" resultType="java.util.HashMap">
		select
		a.TicketNo,b.TicketID,b.DepartmentID,b.BeginTime,b.Created,b.Creater,b.Viptype,b.EndTime,
		b.GoodsID,b.GoodsType,b.Memo,b.MinConsumption,b.ParUse,b.ParVIP,b.Parvalue,b.Pringting,b.SendOut,
		b.TicketName,b.TicketNo as
		TicketCode,b.TicketType,b.UseScene,b.UseType,b.UsedFlag,b.Used
		from
		W_VipTicket a
		join W_Ticket b on a.TicketID=b.TicketID
		where
		a.EShopOrderID=#{orderid}
	</select>

	<!-- 我的优惠券 -->
	<select id="mycoupons" resultType="java.util.LinkedHashMap">
		${paramSQL}
	</select>

	<!-- 扫码优惠券 -->
	<select id="getbuycoupon" resultType="java.util.LinkedHashMap">
  	<![CDATA[
  		select a.TicketNo,(case when GETDATE() between b.BeginTime and b.EndTime then 0 else 1 end) Flag,
  		b.* 
		from W_VipTicket a
		inner join W_Ticket as b on a.TicketID=b.TicketID
		where a.Status='0' and a.VipID=#{ vipid } and b.TicketID=#{ ticketid }
		order by a.GetTime desc
  	]]>
	</select>

	<!-- 优惠券发放列表 -->
	<select id="vipTicketList" resultType="java.util.LinkedHashMap">
		SELECT a.Vipid, a.EmployeeID,
		a.TicketID,b.TicketName,CONVERT(varchar(10),a.GetTime, 121) + '<![CDATA[<br/>]]>'
		+ CONVERT(varchar(10), a.GetTime, 108) AS GetTime, d.Name, c.VIP,
		SUM(case a.Status when 1 then 1 else 0 end) as UsedQty,
		SUM((case
		a.Status when 1 then 1 else 0 end)* b.Parvalue) as UsedMoney,
		Count(*)
		as SendQty,
		Count(*)* b.Parvalue as SendMoney
		FROM W_VipTicket AS a
		INNER JOIN
		VIP AS c ON
		a.Vipid = c.VIPID INNER JOIN
		W_Ticket AS b ON
		a.TicketID = b.TicketID
		LEFT OUTER JOIN
		Employee AS d ON a.EmployeeID =
		d.EmployeeID
		where 1=1
		<if test="ticketid != '' and ticketid != null ">
			and a.TicketID=#{ ticketid }
		</if>
		<if test="departmentid != '' and departmentid != null ">
			and b.DepartmentID=#{ departmentid }
		</if>
		<if test="bdate != '' and bdate != null ">
			and a.GetTime&gt;=#{bdate,jdbcType=VARCHAR}
		</if>
		<if test="edate != '' and edate != null ">
			and a.GetTime<![CDATA[<=]]>#{edate,jdbcType=VARCHAR}
		</if>
		<if test="vip != '' and vip != null ">
			and (c.MobilePhone like '%'+#{vip,jdbcType=NVARCHAR}+'%'
			or c.vip like
			'%'+#{vip,jdbcType=NVARCHAR}+'%')
		</if>
		<if test="emp != '' and emp != null ">
			and (d.MobilPhone like '%'+#{emp,jdbcType=NVARCHAR}+'%' or
			d.Name like
			'%'+#{emp,jdbcType=NVARCHAR}+'%')
		</if>
		group by a.Vipid, a.EmployeeID, a.TicketID,b.TicketName, a.GetTime,
		d.Name,
		c.VIP,b.Parvalue
		order by a.GetTime desc
	</select>

	<!-- 优惠券使用列表 -->
	<select id="useTicketList" resultType="java.util.LinkedHashMap">
		SELECT a.Vipid,a.TicketID,b.TicketName,CONVERT(varchar(10),a.UseTime,
		121) + '<![CDATA[<br/>]]>'
		+ CONVERT(varchar(10), a.UseTime, 108) AS UseTime,c.VIP,
		count(*) as
		UsedQty,
		count(*) * b.Parvalue as UsedMoney
		FROM W_VipTicket AS a INNER
		JOIN
		VIP AS c ON a.Vipid = c.VIPID INNER JOIN
		W_Ticket AS b ON
		a.TicketID = b.TicketID
		where a.Status = 1
		<if test="ticketid != '' and ticketid != null ">
			and a.TicketID=#{ ticketid }
		</if>
		<if test="departmentid != '' and departmentid != null ">
			and b.DepartmentID=#{ departmentid }
		</if>
		<if test="bdate != '' and bdate != null ">
			and a.UseTime&gt;=#{bdate,jdbcType=VARCHAR}
		</if>
		<if test="edate != '' and edate != null ">
			and a.UseTime<![CDATA[<=]]>#{edate,jdbcType=VARCHAR}
		</if>
		<if test="vip != '' and vip != null ">
			and (c.MobilePhone like '%'+#{vip,jdbcType=NVARCHAR}+'%'
			or c.vip like
			'%'+#{vip,jdbcType=NVARCHAR}+'%')
		</if>
		group by a.Vipid, a.TicketID,b.TicketName, a.UseTime, c.VIP,b.Parvalue
		order by
		a.UseTime desc
	</select>
	
	<select id="allvipcoupons" resultType="java.util.LinkedHashMap">
		${textSQL}
	</select>
	
	<update id="updateTicketSendAndUsed" parameterType="java.util.HashMap">
		update W_Ticket set Used=(select COUNT(*) from W_VipTicket t where t.[Status]=1 and t.TicketID=W_Ticket.TicketID),
		 SendOut=(select COUNT(*) from W_VipTicket t where t.TicketID=W_Ticket.TicketID)		
		where TicketID=#{ticketid,jdbcType=BIGINT}
	</update>
	
	<select id="selectShareConfig" resultMap="BaseResultMap">
		select
		<include refid="Base_Column_List" />
		from W_Config
		<if test="list.size() &gt;0">
			where
			Kind in
			<foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
				#{item}
			</foreach>
		</if>
		order by ConfigID
	</select>
	
	<update id="updateTicketSendAndUseds" parameterType="java.util.HashMap">
		update W_Ticket set Used=(select COUNT(*) from W_VipTicket t where t.[Status]=1 and t.TicketID=W_Ticket.TicketID),
		SendOut=(select COUNT(*) from W_VipTicket t where t.TicketID=W_Ticket.TicketID)		
		where ticketid in (select top ${sizes} ticketid from 
			(select top ${pages} a.ticketid from W_Ticket a order by a.ticketid desc) b)
	</update>
</mapper>