<?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.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao">

	<resultMap
		type="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings"
		id="MusicGroupPaymentCalenderCourseSettings">
		<result column="id_" property="id" />
		<result column="music_group_payment_calender_id_" property="musicGroupPaymentCalenderId" />
		<result column="course_type_" property="courseType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
		<result column="course_total_minuties_" property="courseTotalMinuties" />
		<result column="unit_price_" property="unitPrice" />
		<result column="course_original_price_" property="courseOriginalPrice" />
		<result column="course_current_price_" property="courseCurrentPrice" />
		<result column="is_student_optional_" property="isStudentOptional" />
		<result column="name_" property="name" />
		<result column="create_time_" property="createTime" />
		<result column="update_time_" property="updateTime" />
	</resultMap>

	<!-- 根据主键查询一条记录 -->
	<select id="get" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings WHERE id_ = #{id}
	</select>

	<!-- 全查询 -->
	<select id="findAll" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings ORDER BY id_
	</select>

	<!-- 向数据库增加一条记录 -->
	<insert id="insert"
		parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings"
		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
		INSERT INTO music_group_payment_calender_course_settings
		(music_group_payment_calender_id_,course_type_,course_total_minuties_,unit_price_,course_original_price_,
		course_current_price_,is_student_optional_,create_time_,update_time_,name_)
		VALUES(#{musicGroupPaymentCalenderId},#{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseTotalMinuties},
		#{unitPrice},#{courseOriginalPrice},#{courseCurrentPrice},#{isStudentOptional},#{createTime},#{updateTime},#{name})
	</insert>
	
	<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
            keyProperty="id">
		INSERT INTO music_group_payment_calender_course_settings
		(music_group_payment_calender_id_,course_type_,course_total_minuties_,unit_price_,course_original_price_,
		course_current_price_,is_student_optional_,create_time_,update_time_,name_)
		VALUES
		<foreach collection="list" item="item" separator=",">
		(#{item.musicGroupPaymentCalenderId},#{item.courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
		#{item.courseTotalMinuties},#{item.unitPrice},#{item.courseOriginalPrice},#{item.courseCurrentPrice},
		#{item.isStudentOptional},NOW(),NOW(),#{item.name})
		</foreach>
	</insert>

	<!-- 根据主键查询一条记录 -->
	<update id="update"
		parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings">
		UPDATE music_group_payment_calender_course_settings
		<set>
			<if test="name != null and name != ''">
				name_ = #{name},
			</if>
			<if test="isStudentOptional != null">
				is_student_optional_ = #{isStudentOptional},
			</if>
			<if test="unitPrice != null">
				unit_price_ = #{unitPrice},
			</if>
			<if test="courseCurrentPrice != null">
				course_current_price_ = #{courseCurrentPrice},
			</if>
			<if test="musicGroupPaymentCalenderId != null">
				music_group_payment_calender_id_ = #{musicGroupPaymentCalenderId},
			</if>
			<if test="courseType != null">
				course_type_ = #{courseType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
			</if>
			<if test="courseOriginalPrice != null">
				course_original_price_ = #{courseOriginalPrice},
			</if>
			<if test="courseTotalMinuties != null">
				course_total_minuties_ = #{courseTotalMinuties},
			</if>
				update_time_ = NOW()
		</set>
		WHERE id_ = #{id}
	</update>

	<!-- 根据主键删除一条记录 -->
	<delete id="delete">
		DELETE FROM music_group_payment_calender_course_settings WHERE id_ = #{id}
	</delete>

	<!-- 分页查询 -->
	<select id="queryPage" resultMap="MusicGroupPaymentCalenderCourseSettings"
		parameterType="map">
		SELECT * FROM music_group_payment_calender_course_settings ORDER BY id_
		<include refid="global.limit" />
	</select>

	<!-- 查询当前表的总记录数 -->
	<select id="queryCount" resultType="int">
		SELECT COUNT(*) FROM music_group_payment_calender_course_settings
	</select>

    <select id="getWithPaymentCalender" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings WHERE music_group_payment_calender_id_=#{calenderId}
	</select>

	<select id="getWithPaymentCalenderAndCourseType" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings WHERE music_group_payment_calender_id_=#{calenderId} AND course_type_=#{courseType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
	</select>

	<delete id="deleteByMusicGroupPaymentCalenderId">
		DELETE FROM music_group_payment_calender_course_settings WHERE music_group_payment_calender_id_ = #{musicGroupPaymentCalenderId}
	</delete>

	<select id="getMusicGroupRegCalenderCourseSettings" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT mgpccs.*
		FROM music_group_payment_calender mgpc
		LEFT JOIN music_group_payment_calender_course_settings mgpccs
		ON mgpccs.music_group_payment_calender_id_ = mgpc.id_
		WHERE mgpc.music_group_id_ = #{musicGroupId}
		AND mgpc.payment_type_ = 'MUSIC_APPLY'
		AND mgpc.pay_user_type_='STUDENT'
	</select>

    <select id="getCalenderCourseSettings" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings WHERE id_ IN
		<foreach collection="ids" item="id" open="(" close=")" separator=",">
			#{id}
		</foreach>
	</select>
	<select id="queryCalenderCourseSettings" resultMap="MusicGroupPaymentCalenderCourseSettings">
		SELECT * FROM music_group_payment_calender_course_settings mgpccs
		WHERE mgpccs.music_group_payment_calender_id_ = #{calenderId}
	</select>
</mapper>
