<?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.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao">

	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
	     <id column="id_" jdbcType="BIGINT" property="id" />
		 <result column="music_sheet_id_" jdbcType="BIGINT" property="musicSheetId" />
		 <result column="music_subject_" jdbcType="VARCHAR" property="musicSubject" />
		 <result column="audio_file_url_" jdbcType="VARCHAR" property="audioFileUrl" />
		 <result column="sort_number_" jdbcType="TINYINT" property="sortNumber" />
		 <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
		 <result column="create_by_" jdbcType="BIGINT" property="createBy" />
	</resultMap>

	<sql id="Base_Column_List">
		id_, music_sheet_id_, music_subject_, audio_file_url_, sort_number_, create_time_, create_by_
	</sql>

	<select id="get" parameterType="Long" resultMap="BaseResultMap">
		 select
		 <include refid="Base_Column_List" />
		 from music_sheet_accompaniment
		 where id_ = #{id}
	</select>

	<delete id="delete" parameterType="Long">
		 delete from music_sheet_accompaniment
		 where id_ = #{id}
	</delete>
	
	<delete id="delete" parameterType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
		 delete from music_sheet_accompaniment
		 where 1=1
		 	<if test="musicSheetId != null and musicSheetId != ''">
				 and music_sheet_id_ = #{musicSheetId}
			</if>
		 	<if test="musicSubject != null and musicSubject != ''">
				 and music_subject_ = #{musicSubject}
			</if>
		 	<if test="audioFileUrl != null and audioFileUrl != ''">
				 and audio_file_url_ = #{audioFileUrl}
			</if>
		 	<if test="sortNumber != null and sortNumber != ''">
				 and sort_number_ = #{sortNumber}
			</if>
		 	<if test="createTime != null and createTime != ''">
				 and create_time_ = #{createTime}
			</if>
		 	<if test="createBy != null and createBy != ''">
				 and create_by_ = #{createBy}
			</if>
	</delete>
	
	<insert id="insert" parameterType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
		 insert into music_sheet_accompaniment
 		 (music_sheet_id_,music_subject_,audio_file_url_,sort_number_,create_time_,create_by_)
		 values 
 		 (#{musicSheetId},#{musicSubject},#{audioFileUrl},#{sortNumber},sysdate(),#{createBy})
	</insert>
	
	<update id="update" parameterType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
		 update music_sheet_accompaniment
 		 <set>
		 	   		<if test="musicSheetId != null">
		 	   			 music_sheet_id_ = #{musicSheetId},
					</if>
				 	<if test="musicSubject != null and musicSubject != ''">
						 music_subject_ = #{musicSubject},
					</if>
				 	<if test="audioFileUrl != null and audioFileUrl != ''">
						 audio_file_url_ = #{audioFileUrl},
					</if>
		 	   		<if test="sortNumber != null">
		 	   			 sort_number_ = #{sortNumber},
					</if>
		 	   		<if test="createTime != null">
		 	   			 create_time_ = #{createTime},
					</if>
		 	   		<if test="createBy != null">
		 	   			 create_by_ = #{createBy},
					</if>
 		 </set>
		 where id_ = #{id}
	</update>

	<select id="findAll" resultMap="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
        SELECT * FROM music_sheet_accompaniment
        ORDER BY id_ desc
    </select>

	<select id="findList" parameterType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment" resultMap="BaseResultMap">
		 select
		 <include refid="Base_Column_List" />
		 from music_sheet_accompaniment
		 where 1=1 
                    <if test="musicSheetId != null">
                         and music_sheet_id_ = #{musicSheetId}
                    </if>
                    <if test="musicSubject != null and musicSubject != ''">
                         and music_subject_ = #{musicSubject}
                    </if>
                    <if test="audioFileUrl != null and audioFileUrl != ''">
                         and audio_file_url_ = #{audioFileUrl}
                    </if>
                    <if test="sortNumber != null">
                         and sort_number_ = #{sortNumber}
                    </if>
                    <if test="createTime != null">
                         and create_time_ = #{createTime}
                    </if>
                    <if test="createBy != null">
                         and create_by_ = #{createBy}
                    </if>
	</select>

</mapper>