<?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.lyms.etl.dao.ICouponInfoDao">

	<resultMap type="CouponInfo" id="couponInfoMap">
		<result column="id" property="id"/>
		<result column="sequence_id" property="sequenceId"/>
		<result column="create_date" property="createDate"/>
		<result column="use_date" property="useDate"/>
		<result column="user_id" property="userId"/>
		<result column="create_user_Id" property="createUserId"/>
		<result column="coupon_template_id" property="couponTemplateId"/>
		<result column="create_hospital_id" property="createHospitalId"/>
		<result column="used_hospital_id" property="usedHospitalId"/>
		<result column="status" property="status"/>
		<result column="operator_use_id" property="operatorUseId"/>
	</resultMap>

	<resultMap type="HospitalCouponTemplateGroup" id="hospitalCouponTemplateGroupMap">
		<result column="id" property="id"/>
		<result column="hospital_id" property="hospitalId"/>
		<result column="coupon_template_group_id" property="couponTemplateGroupId"/>
	</resultMap>

	<sql id="columnList">
		sequence_id,create_date,use_date,user_id,create_user_id,coupon_template_id,create_hospital_id,used_hospital_id,status
	</sql>

	<select id="find" resultMap="couponInfoMap">
		select id, <include refid="columnList" /> from coupon_info where id = #{id}
	</select>

	<insert id="save" parameterType="CouponInfo">
		insert into coupon_info(id, <include refid="columnList" />) values(#{id},#{sequenceId},#{createDate},#{useDate},#{userId},#{createUserId},#{couponTemplateId},#{createHospitalId},#{usedHospitalId},#{status})
	</insert>

	<select id="findTempId" parameterType="map" resultType="string">
		SELECT a.id FROM
		coupon_template a, coupon_type b, hospital_coupon_template_group c
		WHERE a.type_id = b.id and b.type = 2 and a.coupon_order = #{number} and c.hospital_id = #{hospitalId} and c.coupon_template_group_id = a.group_id
		and a.group_id = b.template_group_id
		order by a.coupon_order
	</select>

	<select id="findHospital" parameterType="string" resultMap="hospitalCouponTemplateGroupMap">
		select id,hospital_id,coupon_template_group_id  from hospital_coupon_template_group where hospital_id = #{id}
	</select>

	<insert id="saveHospitalGroup" parameterType="HospitalCouponTemplateGroup">
		insert into hospital_coupon_template_group values(#{id}, #{hospitalId},#{couponTemplateGroupId})
	</insert>

	<insert id="batchSave" parameterType="list">
		insert into coupon_info(id, <include refid="columnList" />) values
		<foreach collection="list" item="item" index="index" separator="," >
			(#{item.id}, #{item.sequenceId}, #{item.createDate}, #{item.useDate}, #{item.userId}, #{item.createUserId}, #{item.couponTemplateId}, #{item.createHospitalId}, #{item.usedHospitalId}, #{item.status})
		</foreach>
	</insert>

	<select id="findDistinctUserId" resultType="string">
		select distinct(user_id) from coupon_info
	</select>
</mapper>