INSERT INTO sys_music_score (cbs_music_categories_id_,name_,type_,speed_,url_,metronome_url_,midi_url_,create_user_id_,order_,
		                             update_time_,create_time_,client_type_,rank_ids_,render_from_,
		                             enable_evaluation_,show_flag_,play_mode_,muse_score_url_,muse_score_memo_,ext_config_json_,ext_style_config_json_)
		VALUES(#{musicScoreCategoriesId},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
		       #{speed},#{url},#{metronomeUrl},#{midiUrl},#{createUserId},#{order},NOW(),NOW(),#{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
		       #{rankIds},#{renderFrom},#{enableEvaluation},#{showFlag},#{playMode},#{museScoreUrl},#{museScoreMemo},#{extConfigJson},#{extStyleConfigJson})
	
	
	
		UPDATE sys_music_score
		
			
				show_flag_ = #{showFlag},
			
			
				client_type_ = #{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
			
				ext_config_json_ = #{extConfigJson},
				rank_ids_ = #{rankIds},
			
				ext_style_config_json_ = #{extStyleConfigJson},
			
			
				render_from_ = #{renderFrom},
			
			
				enable_evaluation_ = #{enableEvaluation},
			
			
				order_ = #{order},
			
			
				del_flag_ = #{delFlag},
			
			
				cbs_music_categories_id_ = #{musicScoreCategoriesId},
			
			
				create_user_id_ = #{createUserId},
			
			
				midi_url_ = #{midiUrl},
			
			metronome_url_ = #{metronomeUrl},
			url_ = #{url},
			
				subject_ids_ = #{subjectIds},
			
			
				type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
			
			
				name_ = #{name},
			
			
				speed_ = #{speed},
			
			
				play_mode_ = #{playMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
			
			
				muse_score_url_ = #{museScoreUrl},
			
			
				muse_score_memo_ = #{museScoreMemo},
			
				update_time_ = NOW()
		
		WHERE id_ = #{id}
	
	
	
	
		UPDATE sys_music_score SET del_flag_ = 1 WHERE id_ = #{id}
	
	
	
	
	
	
	
	
    
    
	
	
	
	
		
			update sys_music_score set music_score_categories_id_ = #{item.musicSheetCategoryId},
			client_type_ = 'SMART_PRACTICE',type_ = 'COMMON',
			rank_ids_ = CASE WHEN #{item.paymentType} = 'FREE' THEN NULL ELSE '1' END,
			order_ = #{item.sortNo},del_flag_ = 0,client_show_flag_ = #{item.status},
			score_type_ = #{item.scoreType},is_convertible_score_ = #{item.isConvertibleScore}
			
				,name_ = #{item.musicSheetUpdate.name},
				subject_ids_ = #{item.musicSheetUpdate.subjectIds},
				speed_ = #{item.musicSheetUpdate.playSpeed},
				enable_evaluation_ = #{item.musicSheetUpdate.canEvaluate},
				play_mode_ = #{item.musicSheetUpdate.playMode},
				music_sheet_type_ = #{item.musicSheetUpdate.musicSheetType},
				is_all_subject_ = #{item.musicSheetUpdate.isAllSubject},
				cbs_music_categories_id_ = #{item.musicSheetUpdate.musicCategoryId},
				show_flag_ = #{item.musicSheetUpdate.platformStatus},
				alias_ = #{item.musicSheetUpdate.alias},
				sort_num_ = #{item.musicSheetUpdate.sortNum},
				sort_group_ = #{item.musicSheetUpdate.sortGroup},
				sort_num2_ = #{item.musicSheetUpdate.sortNum2}
			
			where cbs_music_sheet_id_ = #{item.musicSheetId}
		
	
	
		update sys_music_score set client_show_flag_ = #{status} where FIND_IN_SET(cbs_music_sheet_id_,#{cbsMusicSheetIds});
	
	
		update sys_music_score set del_flag_ = 1 where FIND_IN_SET(cbs_music_sheet_id_,#{cbsMusicSheetIds});
		update sys_music_score_accompaniment msa
			left join sys_music_score sms ON sms.id_ = msa.exam_song_id_
			set msa.del_flag_ = 1
		where FIND_IN_SET(sms.cbs_music_sheet_id_,#{cbsMusicSheetIds})
	
	
		update sys_music_score set name_ = #{param.name},
		subject_ids_ = #{param.subjectIds},
		speed_ = #{param.playSpeed},
		enable_evaluation_ = #{param.canEvaluate},
		play_mode_ = #{param.playMode},
		music_sheet_type_ = #{param.musicSheetType},
		is_all_subject_ = #{param.isAllSubject},
		show_flag_ = #{param.platformStatus},
		cbs_music_categories_id_ = #{param.musicCategoryId},
		alias_ = #{param.alias},
		sort_num_ = #{param.sortNum},
		sort_group_ = #{param.sortGroup},
		sort_num2_ = #{param.sortNum2}
		where cbs_music_sheet_id_ = #{param.id}
	
	
		insert into sys_music_score
		(cbs_music_categories_id_,client_type_,type_,rank_ids_,order_
		,name_,subject_ids_,speed_,enable_evaluation_,play_mode_,client_show_flag_,show_flag_,cbs_music_sheet_id_,music_sheet_type_,
		score_type_,is_convertible_score_,is_all_subject_,alias_,sort_num_,sort_group_,sort_num2_)
		values
		
			(#{item.musicSheetUpdate.musicCategoryId},
			'SMART_PRACTICE','COMMON',
			CASE WHEN #{item.paymentType} = 'FREE' THEN NULL ELSE '1' END,
			#{item.sortNo},
			#{item.musicSheetUpdate.name},
			#{item.musicSheetUpdate.subjectIds},
			#{item.musicSheetUpdate.playSpeed},
			#{item.musicSheetUpdate.canEvaluate},
			#{item.musicSheetUpdate.playMode},#{item.status},#{item.musicSheetUpdate.platformStatus},
			#{item.musicSheetId},#{item.musicSheetUpdate.musicSheetType},
			#{item.scoreType},#{item.isConvertibleScore},
			#{item.musicSheetUpdate.isAllSubject},
			#{item.musicSheetUpdate.alias},
			#{item.musicSheetUpdate.sortNum},
			#{item.musicSheetUpdate.sortGroup},
			#{item.musicSheetUpdate.sortNum2}
			)
		
	
	
		INSERT INTO sys_music_score_accompaniment (exam_song_id_)
		VALUES
		
			(#{item})
		
	
	
		
			ses.del_flag_ = 0 AND ses.cbs_music_sheet_id_ IS NOT NULL
			
				AND ses.cbs_music_categories_id_ IN
				
					#{item}
				
			
			
				AND (ses.cbs_music_sheet_id_ = #{search} OR ses.name_ LIKE CONCAT('%',#{search},'%'))
			
            
                AND ses.name_ LIKE CONCAT('%',#{name},'%')
            
			
				AND ses.show_flag_ = #{showFlag}
			
			
				AND ses.client_show_flag_ = #{clientShowFlag}
			
			
				AND ses.client_show_flag_ = true AND ses.show_flag_ = true
			
			
				AND ses.is_convertible_score_ = #{isConvertibleScore}
			
			
				AND ses.score_type_ = #{scoreType}
			
			
				AND (FIND_IN_SET(#{subjectId},ses.subject_ids_) OR ses.subject_ids_ IS NULL OR ses.subject_ids_ = '' OR ses.is_all_subject_)
			
			
				AND (INTE_ARRAY(#{subjectIds},ses.subject_ids_) OR ses.subject_ids_ IS NULL OR ses.subject_ids_ = '' OR ses.is_all_subject_)
			
			
				AND ses.client_type_ = #{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
			
			
				AND ses.type_ = #{type}
			
			
				
					AND (ses.type_ = 'COMMON' OR (ses.create_user_id_ = #{createUserId} AND ses.type_ = 'PERSON'))
				
			
			
				
					AND ses.type_ = #{type} AND ses.create_user_id_ = #{createUserId}
				
				
					AND ses.type_ = #{type}
				
			
			
				
					AND (ses.rank_ids_ IS NULL or ses.rank_ids_ = '')
				
				
					AND ses.rank_ids_ IS NOT NULL AND ses.rank_ids_ != ''
				
			
			
				
					AND ses.create_user_id_ = #{createUserId}
				
			
            
                AND ses.id_ != #{excludeMusicId}